martedì 15 dicembre 2015

Guida all'uso di OSGeo-Live in macchina virtuale per utenti windows

OSGeo-Live e` un progetto basato su Lubuntu, che comprende un DVD, unita` USB o immagine disco virtuale, che permette di provare una grande varietà di software libero senza la necessita` di installarlo. Il progetto e` interamente basato su software libero, che permette di duplicarlo e ridistribuirlo liberamente.

In questa breve guida vediamo come e` possibile  utilizzare l'immagine disco in una virtual machine installata su windows.

Una chiarificazione sulla terminologia. Definiamo "host" il sistema operativo che ospita l'altro Nel nostro caso l'host è windows. Definiamo invece "guest" il sistema operativo che viene ospitato. In questo caso il guest è ubuntu (64 bit).


Ottenere l'immagine disco di OSGeo-live

L'immagine disco della OSGeo-Live si trova a questo URL, scegliere l'ultimo link - download virtual machine. 




Secondo la velocità della vostra connessione, il download potrebbe durare alcune ore. Alla fine, decomprimere il file usando l'utility 7zip.


Ottenere e installare la virtual machine

Installeremo la Virtual Box di Oracle, che e` disponibile a questo URL. L'ultima versione è:
  • VirtualBox 5.0.10 for Windows hosts o ultima versione disponibile, e
  • VirtualBox 5.0.10 Oracle VM VirtualBox Extension Pack > All supported platforms
Quest'ultimo pacchetto permette di estendere le funzionalita` della macchina virtuale, ad esempio ingrandire lo schermo, condividere una cartella, ecc.




Attenzione: l'ultima versione della macchina virtuale potrebbe avere qualche problema di compatibilità con Windows 10. In questo caso, scaricate la versione 4.2 (e il pacchetto Extension Pack relativo alla stessa versione)

Per installare, fare doppio click e seguire le istruzioni dell'installer, prima per la virtual box e poi l'estensione. Lasciare le impostazioni di default.


Creazione della macchina virtuale

Avviare VirtualBox. Cliccare su "Nuova" per creare una nuova macchina virtuale.



Dare un nome alla macchina virtuale che stiamo creando, ad es. OSGeo-Live. Scegliamo tipo: Linux, versione: Ubuntu (64 bit).

Clicchiamo "Avanti". Siamo chiamati a decidere quanta memoria vogliamo destinare alla macchina virtuale, deve essere almeno 1024, di più se il vostro computer ha più di 4 GB di RAM. Questa scelta dipende dalle caratteristiche del nostro computer. Un buon compromesso è assegnare non più della metà della memoria disponibile.

Nella prossima finestra ci viene chiesto se abbiamo già un'immagine disco o vogliamo crearne una. Noi l'abbiamo (OSGeo-Live) dunque scegliamo la terza opzione, "Usa un file virtuale di disco fisso esistente". Cliccando sulla cartellina gialla, andiamo a selezionare l'immagine disco nel nostro computer.





Una volta selezionato il file, clicchiamo "Crea".





 Abbiamo creato la macchina virtuale, ma non abbiamo finito. Clicchiamo su "Impostazioni".





 Andiamo su "Generale" > "Avanzate". Impostiamo "bidirezionale" in entrambe le caselle. Questo ci permette di copiare e incollare e trascinare oggetti tra la macchina guest e la macchina host e viceversa.




Nella sezione "Schermo", andiamo ad impostare la memoria video assegnata alla macchina virtuale a 64 MB.



Ora dobbiamo creare un canale di comunicazione fra guest e host, in cui si possano condividere i dati in maniera bidirezionale. Senza tale cartella, tutti i dati creati nella macchina guest, rimarrebbero all'interno del file immagine della macchina virtuale e non potrebbero uscire da questo ambiente "isolato". 
Per fare questo, sulla macchina host (Windows) creiamo una cartella ad hoc, per esempio la chiamo "Cartella_Condivisa". 
Dalle impostazioni della macchina virtuale mi sposto sul tab "Cartelle condivise", e clicco sull'icona col + verde, che aggiunge una nuova cartella condivisa.


Da "Percorso della cartella" andiamo a cercare la Cartella_condivisa appena creata nell'host. 




Spuntiamo "Montaggio automatico".




Ora avviamo la macchina virtuale cliccando sul bottone avvia.




Risoluzione di possibili problemi

Se a questo punto si verifica un errore come:
VT-x is disabled in the BIOS for both all CPU modes (VERR_VMX_MSR_ALL_VMX_DISABLED).
bisogna accedere al bios, per molti computer all'accensione premere F2, quindi andare in Configuration --> Intel Virtual Technology: [Enabled].


Avvio

Se tutto è andato a buon fine, dovremmo avere la seguente schermata. Andiamo nel menu "Dispositivi" e clicchiamo l'ultima opzione "Installa guest addition".



Montare la cartella condivisa 

Nel guest, creiamo una cartella condivisa, e montiamo la cartella condivisa dell'host. Apriamo un terminale e scriviamo:

mkdir /home/user/cartella_condivisa 
sudo mount -t vboxsf Cartella_condivisa \
/home/user/cartella_condivisa

La password per user è user.  





giovedì 10 dicembre 2015

Docker quickstart

Docker is a powerful virtualization environment that permits to deploy your applications seamlessly respect to the "container", e.g. it is agnostic to the operating system, version, libraries installed and so on.

Here is a quickstart. Not all the steps are necessary, e.g. using the Docker Hub, and by the way, docker offers much more options for different user's  needs. For different use cases, refer to the documentation on Docker web site directly.

1 Create your profile on Docker Hub

On Docker Hub, you can store your disk images. Simply create a profile, and don't forget your credentials (username, email, password). Also, create a repository following the simple instructions given by the website. Let's assume we want to create a customized image of CentOS. I'm going to name my repository my_repository.

2 Install Docker

The instructions for the installation depend on the host operating system, and can be found here. In my case, my platform is CentOS (do not make confusion: this refers to the host operating system. By chance, also the image I want to build upon is based on CentOS, but can be whatever).
So I'm following the instructions given here.

# update the system
sudo yum update

# add the yum repo
sudo tee /etc/yum.repos.d/docker.repo <<-'EOF'
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
 
# Install Docker
sudo yum install docker-engine
 
# Start the docker daemon
sudo service docker start
 
# try the installation 
sudo docker run hello-world
 

3 Add my user to the docker group

Docker can be run by root and by docker group. You need to add your user to the docker group.

sudo usermod -aG docker my_username

4 Configure docker daemon to start at boot

sudo chkconfig docker on

5 Search for the image that you want to build upon, and pull it

I need to build upon a CentOS image (in this case I refer to the "guest" operating system).
First, I need to log in (I use the credentials that I used in the docker hub so to be able to push it there).

# log in
docker log in 

# search centos
docker search centos
# pull centos (latest version)
docker pull centos

6 Run Docker

docker run -i -t centos /bin/bash

This way you'll enter the guest machine. You will be logged something like my_username@machine_ID. Take note of this machine_ID, because you will use it when you commit / push.
Now do some changes to your virtual environment, like updating, installing something, etc.

7 Commit and, if you like, push

Eventually, you commit the changes and push to the docker hub.

# commit the changes
docker commit -m "this is a message" -a "the author" machine_ID \
my_username/my_repository 

# push to the docker hub repository (online)
docker push my_username/my_repository