Starting PACC Internship

Hello everyone,

My name is Kamila and I am an intern of the NU Private Academic Cloud Computing project.

I plan to work for about 7-8 hours a day, partially at home.

My research topics:

  • test&evaluate owncloud

  • italc

  • WOL

  • lab cloning and etc.

  • cybersecurity

Starting internship

Hello everyone, my name is Aset. I am an intern at NU Private Academic Cloud Computing project. I plan to work for about 5-6 hours a day.

My research topics:

  • transparent proxy

  • MS licences

  • cybersecurity

  • owncloud

Developing Android Application 2

Weekly Review:

Previous Problem:

First is running emulator of any type phone with pure Android OS. Advantage of this method that we can control all properties phone. On the other hand, it is very slow. Even turning on the virtual phone takes minimum 30 minutes. Also there always occur small errors.

Next method is running app on real devices. I tried to run my application on my phone(Galaxy S3) and did not succeed on it. I turned on developer options on my phone but when application runs it did not see device. Since I work on Ubuntu I don’t need to install extra usb drivers as Windows user will do.

Solutions:

I have chosen this problem by two methods:

1) Using another computer(I was working on laptop with weak parameters). On the lab's computer it took few minutes to compile virtual machine, when on my laptop it took 30 minutes.

2) Installing AndroVM(Android Virtual Machine), it is quite faster than SDK emulator. However, I did not succeed to run my application on it.

Next problem, I solved by following this link- http://developer.android.com/tools/device.html. You should properly follow described steps. The single problem was creating file on ubuntu via terminal. I wrote this codes:

$ sudo gedit /etc/udev/rules.d/51-android.rules

It will open file 51-android.rules where I wrote:

SUBSYSTEMS=="usb", ATTR{idVendor}=="04e8", MODE="0666", GROUP="plugdev"

04e8 – is personal code for Samsung devices(you may get it other codes fromhttp://developer.android.com/tools/device.html )

I decided to stop learning Java from http://mobile.tutsplus.com/tutorials/android/java-tutorial/ due to complexity. If you want to finish this tutorial, you will be asked to have more than basic knowledge of Android.

I wrote application on Android from http://www.youtube.com/watch?v=SUOWNXGRc6g&list=EC2F07DBCDCC01493A tutorials by which user can write hateful message, take a photo and set it as wallpaper and you can enter word where Java functions will identify word similarity and gave specific properties.

Also I met some problem when I installed Android on lab's computer, where adb was not installed properly. I solved by installing ia32 library:

~$ sudo apt-get install ia32-libs

PACC: Week 2-3

During the past two weeks I was sick most of the time. I attended only on Monday in week 2 and on Thursday-Friday in week 3.

The following is what I did during those three days:

Installed and used VNC on two computers in the lab.

Tried out using Epoptes instead of Italc. Epoptes showed itself to work well, however it doesn't have some features that Italc does. That is letting a student to show demo. However. Epoptes also have a thing that Italc does not; and that is freely using a terminal without any additional commands.

I also set WOL (wake-on-lan) to work using Epoptes. I firstly changed BIOS settings so that remote wake was enabled. Then I used and changed some of the ethtool settings and used powerwake to test WOL. Later, I found out that when using Epoptes, WOL only needs the changes in BIOS in order to work. So now, every presented function of Epoptes works well, including WOL, reboot, shutdown and others.

Now, I am planning to try setting up Italc 2 (the one that prof. Norbisrath recently compiled).

PACC: meeting 3 notes

Notes from PACC meeting

Date: 06.06.2013

Ilya & Damir

  • Programming in android studio, created application

  • Found resources for in class tutorials

  • Developing in eclipse

  • Read getting started Android, noticed that it is not productive

TO DO:

  • Collect all resources in googleDoc

  • Look at AndroVM x86 + Houdini + gapps  and compare with current emulator

  • Create application with android toast screen messages and compare IDE results

Alexandra:

-  Look to  alternatives of italc

TODO:

- Work with Temirlan on epoptes

**Alexandr**

- Installed M23 on virtual network

- Managed system control over VN

- Get stacked on giving m23 VM access to network

TODO:
-  Figure out how to use VB images
-  Get m23 acess to network

**Temirlan**
- Worked on VM staff
- Bridge connection on VM

- Problem on secure connection

TODO:

- Continue working on topic

-Cooperate with Alexandra on Epoptes

**Assulan**

- Trying make SSH ttunnels connection

- Found Sshuttle - allow establish SSH tunnels

- Instaled and connected Sshuttle on VM

- Tryed SSH -d / -l /-r tunneling
TODO:
- Prepare for group work on tunneling and VM access

Tomorrow at 13-00 SSH group meeting

PACC: Week I & II

Past two weeks I've worked on remote administration and software deployment on OS Linux computer networks.

Stages:

  1. Exploring the way how rsync script works & finding alternatives

  2. Finding software that meets project criteria ( CFEngine & m23)

  3. Installation and testing CFEngine

  4. Switching to m23

  5. m23 VM & network configuration

During 1st week of PACC, I've searched for alternatives for rsync, as the way of deploying software and files to client machines. Initially I found programs "Chief" and "Puppet", but they are not meet project criteria. So the next step was seeking for open source alternatives, that was showed CFEngine software. CFEngine showed itself a bit complicated, and absolutely impossible to work with it without learning it's script language and it's syntax, in addition you need to install client part manually on every machine.

Therefore next step was finding more convenient programs, that meet project requirements. After some time of searching program called m23 was found. Main advantages of it: only server-side installation and GUI. I've found that after installation of m23 on Ubuntu running machine it completely removes all system command applications (for example apt and etc). Two machine systems was completely destroyed,  and recovered with rsync from other machine. By that effect on hosted OS, it was decided to create following architecture: server system running VM(Virtual Machine) with pre-installed Debian image configured with m23, and that VM connected with server machine network via bridge mode. That scheme show itself working when I've tried it on my own laptop, with virtual network across two VM without bridging. But when I tried to apply that in class, that VM was unreachible.

The last step before completion of that task is figuring out how to configure bridge to make m23 VM interact with other computers.

PACC: Week II

Summary:

For the past week, I was studying about the types of networks and tried to solve problem with managing VMs appeared after using SSH(Secured Shell)

Here some short notes about those types:

1)Host-only only permits network operations with the Host OS. The network communication of this mode is limited between the host and the VMs on the same adapter. Those VMs cannot make a connection beyond the host; thus there is no internet access capability. They remain hidden behind the host.

2)NAT mode will mask all network activity as if it came from your Host OS, although the VM can access external resources. All VMs using the adapter form a private network with the host. They all have internet access capability, but they are not visible to others beyond the host as if they are sitting behind their own firewall with the host.

3)In Bridged mode the virtual machine (VM) acts as if a regular PC ran on the same physical network. You can go Internet and do whatever you want unless your software is hardware dependent. Bridged mode replicates another node on the physical network and your VM will receive it's own IP address if DHCP is enabled in the network.

Also here the link for comparison of the all types of networks in table http://vmfaq.com/entry/34/

Also in order to resolve problem with connection of clients and server node with VMs, I was looking for the software which might be helpful for that. Finally, I found this one

PuTTY It is client program for working with network protocols like SSH, Telnet, SCP, SFTP, for connection to COM port.

Description

Use an SSH (Secure Shell) client, to create a secure connection. It encrypts the entire connection--including the part where you type your password--so snoops can't listen in. This free utility doesn't just work for SSH connections. According to the vendor, PuTTY also works for the Telnet and Rlogin network protocols. These protocols are all used to run a remote session on a computer, over a network.

Some features of PuTTY are:

  • The storing of hosts and preferences for later use.

  • Control over the SSH encryption key and protocol version.

  • Control over port forwarding with SSH (local, remote or dynamic port forwarding), including built-in handling of X11 forwarding.

  • Support for local serial port connections.

  • Self-contained executable requires no installation.

Managing Linux Systems with m23

Returning to the topic of maximum automatization and visualisation of remotely administrated computers running  OS Linux. Up to now, we have a lot of solutions: SSH + BASH, cron, rsync and the pre-written scripts. Also for this task   solutions such as Puppet, Cfengine shows very helpful. But this way of administration is difficult by some aspects and that is important non-visualizible. In this article  software distribution system named  "m23" (m23.sourceforge.net) will be described. This system simplifies many aspects of the administration of Linux, from deployment to daily maintenance.

Features of m23 M23 is actually built on  several open source projects-phpMyAdmin, OpenLDAP, BackupPC, Etherboot, DHCP, ATFTP, Squid, BusyBox, SSH, GnuGPG, par2, web server Apache (as the interface and the server file access), PHP, MySQL (used for storage configurations), a few utilities to burn CD in Linux and some others. This system uses a client-server architecture. On the client side is currently supported deployment and management of Debian, Ubuntu, Fedora, OpenSUSE, and clones of these distributions. The client is here defined as any version of the OS, which we will manage: it can be both desktop and server version. All of the settings are made using the intuitive web-based interface.

The main functions provided by the server m23 are:

  • Remote administration of any number of client machines using the web interface (including TightVNC Java Viewer) or SSH (if the browser supports the ssh :/ /);

  • Aassimilation to the m23 client machines already working Debian or Ubuntu;

  • Mass deployment of client systems with the possibility of customization, including - creating and formatting partitions on the selected file systems,  installation and removal of software;

  • Support of all popular Linux file systems and Software RAID (0, 1, 4, 5, 6 and 10)

  • Creation and management of groups - administrators can manage not a separate system, and combine the same type of system in the group, whose members through a virtual "model client" apply new settings (software update, restore, tasks, etc.)

  • Account management via LDAP

  • Storage of user data (/ home) in NFS

  • Scripting and packages for client-side installation;

  • Caching installed packages (using Squid),  checking before installation, and the ability to create  own, local repository to install without access to the Internet;

  • Backup and recovery client and server machines

  • Compression and encryption (using GnuGPG) backups;

  • desktop KDE4, Gnome, XFce, TDE or without X11 (for the server);

  • Integrated suite of virtualization VirtualBox OSE, allowing you to create one-click virtual machines on the server and clients m23.

Interface also as the main features of software can be modified using the design tool MDK (m23 Development Kit), freely available. Special Tools halfSister offers installation of pre-configured distribution of the compressed image.For the installation project offers a CD (based on Debian), the Debian package repository and a way with the VM VirtualBox installation. Moreover, the developers recommend that primarily use that CD as the easiest option. Installation it can be used to produce both on a physical server or a virtual machine (officially VMware, VirtualBox, and KVM).

M23 interface Interface of m23 can be called as traditional. At the very top is the status bar, on the left side - the menu bar and in the center its settings. Menu items are grouped by theit purposes:

  • Server - server configuration file management of images, LDAP, launch services, redundancy, monitoring the administrator accounts, etc. In a separate sub-menu is activated "Remote Assistance» - "Remote administration service".

  • Clients - customer management.

  • Virtual clients - the creation of virtual machines / clients based on VirtualBox OSE;

  • Groups - managing groups of clients;

  • Packages - create, delete, edit, package installation;

  • Mass tools - the creation of a master client whose settings will be used for the other as a reference;

  • Tools - Creating a boot disk for clients that do not support PXE;

  • Plugins - overview and installation of plug-ins;

  • Support - a reference to a variety of support resources.

1

Purpose of many parameters is intuitive, although the order of the settings need to understand a little bit. To learn how to do with and configuration of all the basic functions provided by m23, you need to spend 1-2 days, and after, in  future activities, it will be will  be hard to imagine network administration without this handy tool.

Reference

Official web-site -  http://m23.sourceforge.net/

Developing Android applications

Weekly review:

The first task, which I did, was choosing IDE for developing applications android. With Ilya we decided to test different IDE. I have focused on Eclipse. The reasons of choosing  this IDE are:

1) Most tutorials use Eclipse** **

2) I had some difficulties with installing virtual machine on Android Studio

3) To better understand Android Studio, you should have some basic knowledge on Eclipse(particularly Eclipse for Android application)

Then I started learning Android from http://developer.android.com/training/index.html. At first glance, their tutorials are not easy to understand. But later by analysing other sources, I found it quite interesting. Large database of this course can give full explanation for each part of development. For example, when they explain creating linear layout, they give link to read what layout is. Also other tutorial uses http://developer.android.com/training/index.html as foundation for their lessons. For example: http://developer.alexanderklimov.ru/android/.  Another effective course to learn is video tutorials from New Boston on You-Tube. Here is a link. http://www.youtube.com/watch?v=SUOWNXGRc6g&list=EC2F07DBCDCC01493A

Later I decided to learn XML and Java. From w3school tutorials, I understood that XML used in web and XML used in Android are different,  However previous knowledge  of HTML gave enough understanding of XML. So, I started to observe Java and came to decision that programmer is not obligated to have full understanding of language. Tutorials which I studied are from  http://mobile.tutsplus.com/tutorials/android/java-tutorial/. Another good source to learn is http://see.stanford.edu/see/lecturelist.aspx?coll=824a47e1-135f-4508-a5aa-866adcae1111, where you can get full explanation of Java. I found Java very similar to C/C++ and did not have problems with it's syntax. The method I liked in my tutorial is intanceof(which I have not met in C/C++). This method checks for what type object belongs.

  1. void checkforTextView(View v)

  2. {

  3. if(v instanceof TextView)

  4. {

  5. // This is a TextView control

  6. } else {

  7. // This is not a TextView control

  8. }

  9. }  So it detects that object v is TextView type subclass. By using Ctr+Shift+O command we can automatically import missing classes.

The problem which I met was running application. We have method for testing our application:

First is running emulator of any type phone with pure Android OS. Advantage of this method that we can control all properties phone. On the other hand, it is very slow. Even turning on the virtual phone takes minimum 30 minutes. Also there always occur small errors.

Next method is running app on real devices. I tried to run my application on my phone(Galaxy S3) and did not succeed on it. I turned on developer options on my phone but when application runs it did not see device. Since I work on Ubuntu I don't need to install extra usb drivers as Windows user will do.

In addition, I only downloaded Eclipse and SDK from developer.android.com and did not installed it by terminal.(I have already installed jre and java).

'PACC: meeting 2 notes'

Notes from PACC meeting

Date: 28.05.2013

Ilya & Damir - Evaluate Android studio & Eclipse - Coordinate with each other

Goal: application with server side

Alexandr - CFEngine3, requires installation on client side - M23 only server side installation - Uses static IP for server machine. Elaborate on this. - Has GUI

TODO:
- M23 further examination & integration plan
- Write scenario about usage of the remote administration & deployment.

Temirlan
- Documentation about installing Epoptes
- Remote connection of VMs with ssh tunnel
- Textual description of GUI (like scenario)

TODO:
- Email Ulrich about GUI chapter & scenario feedback
- Amend scenario with sketches

Yerkanat
- Has looked at OpenStack cloud system

TODO (unofficial):
- Ubuntu enterprise cloud feedback

Assulan
TODO
- look into ssh tunnel and host networking in VMs

Ulrich also clarified VM networking modes.

Good overview of KVM networking modes: https://help.ubuntu.com/community/KVM/Networking