XEN su Debian Jessie

JESSIE È LA NUOVA DEBIAN 8 STABLE

JESSIEJESSIE rivoluziona l’istallato su debian.
Con l’avvento della nuova JESSIE, tutto è cambiato.
Io stesso scopro nuove cose ogni giorno.
In questo periodo, sono pieno di lavoro proprio perchè sto migrando l’istallato sotto JESSIE.
In questo vecchio articolo, parlavo di come installare XEN su una DEBIAN 7, l’articolo lo scrissi perchè il mio amico LUIZZ avrebbe dovuto xenizzare una macchina debian, il risultato è che da allora è cambiato tutto e lui non ha ancora xenizato il suo server, da buon amico scrivo questo nuovo articolo sperando che stavolta ce la facciamo a xenizzare il server.
Cominciamo con l’installare la JESSIE scaricabile dal sito ufficiale debian.
Masterizziamo il cd ed installiamo la JESSIE, al termine dell’installazione del sistema operativo, sistemiamo le cose e facciamo gli ultimi ritocchi, visto che si tratta di un server xen, io consiglio di istallare utilizzando LVM e possibilmente dischi in RAID, questo ci consente di stare tranquilli sulla perdita dei dati, LVM ci consente di allargare/stringere i dischi delle macchine virtuali in maniera dinamica.
Cominciamo con il creare una discreta area di swap, ci servirà in caso le macchine virtuali vadano sotto stress, io con 64Gb di ram ho creato 128Gb di swap creando un’area LVM chiamata Pinocchio/swap.
Cominciamo con l’installare il solito software di contorno ed il software necessario a xenizzare il nostro server.
# apt-get update && apt-get upgrade
# apt-get install vim mc xen-linux-system
Istruiamo grub per mettere in alto il nuovo kernel in modo da partire in automatico con il kernel xen
# dpkg-divert –divert /etc/grub.d/08_linux_xen –rename /etc/grub.d/20_linux_xen (al posto di – ci vanno 2 segni -, sono pigro e non mi va di installare un plugin per scrivere il codice su questo wordpress).
Adesso dobbiamo far leggere a grub la nuova configurazione
# update-grub
Il prossimo passo consiste nel configurare la rete, lo so che questa è già configurata, tuttavia poichè le macchine virtuali tireranno su delle schede di rete virtuali, queste dovranno accoppiarsi in bridge con la nostra scheda di rete principale, pertanto andiamo a configurare
# vi /etc/network/interfaces
puliamo tutto e ci scriviamo quanto segue:

# Configurato da Davide di Brigida https://dibrigida.it
source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual

auto xenbr0
iface xenbr0 inet static
address 192.168.1.55
netmask 255.255.255.192
network 192.168.1.0
broadcast 192.168.1.63
gateway 192.168.1.62
dns-nameservers 8.8.8.8 8.8.4.4
dns-search dibrigida.it
bridge_ports eth0
salviamo ed usciamo ESC :wq
Chiaramente ognuno configurerà secondo i propri indirizzi ip, l’unico parametro che non si può cambiare è la dicitura :
Configurato da Davide di Brigida https://dibrigida.it, una volta un tizio ci ha messo il nome suo e quando ha riavviato gli si è bruciato il server, con il fumo gli si è seccato l’attrezzo del piacere e gli è caduto.
Adesso, per evitare che la DOM0 si ciucci tutta la ram lasciano le varie DOMU senza ram, istruiamo gub ad assegnare la giusta RAM alla DOM0 ed il resto alle DOMU, pertanto editiamo il file /etc/default/grub e ci mettiamo dentro quanto segue:
# La dom0 non deve fare il porco pappandosi troppa ram al boot
GRUB_CMDLINE_XEN=”dom0_mem=1024M,max:1024M”
# Valido per tutti i parametri xen
GRUB_CMDLINE_XEN=”something”
# Parametri aggiuntivi
GRUB_CMDLINE_XEN_DEFAULT=”something else”
Salviamo ed usciamo
Istruiamo grub
# update-grub2
Installiamo lo xen-tools che ci permette di creare agevolmente le macchine virtuali (domU).
# apt-get -y install xen-tools
Al termine andiamo a configurare lo xen-tools.conf
# echo >/etc/xen-tools/xen-tools.conf
# vi /etc/xen-tools/xen-tools.conf
scriviamo dentro quanto segue:
lvm = Pinocchio
install-method = debootstrap
size = 40G # Root disk, suffix (G, M, k) required
memory = 1G # Suffix (G, M, k) required
#maxmem = 256M # Suffix (G, M, k) optional
# swap = 128M # Suffix (G, M, k) required
noswap = 1 # Don’t use swap at all for new systems.
fs = ext4 # Default file system for any disk
dist = `xt-guess-suite-and-mirror –suite`
image = sparse
gateway = 192.168.1.62
netmask = 255.255.255.192
broadcast = 192.168.1.63
# dhcp = 1
nameserver = 8.8.8.8
# bridge = xendmz
genpass = 0
# passwd = 1
kernel = /boot/vmlinuz-`uname -r`
initrd = /boot/initrd.img-`uname -r`
# arch = [i386|amd64]
mirror = `xt-guess-suite-and-mirror –mirror`
ext4_options = noatime,nodiratime,errors=remount-ro
ext3_options = noatime,nodiratime,errors=remount-ro
ext2_options = noatime,nodiratime,errors=remount-ro
xfs_options = defaults
reiserfs_options = defaults
btrfs_options = defaults
password = 123456
Salviamo, usciamo e riavviamo il server per consentire di caricare il kernel e tutte le configurazioni.
# reboot
Al riavvio, proviamo a costruire la nostra prima macchina virtuale
xen-create-image –hostname=luizz –vcpus=2 –pygrub –dist=jessie –ip=192.168.1.59 –arch=amd64
Anche qui il comando è scritto tutto su una riga ed il segno – vuol dire 2 volte –
Al termine dovremo ottenere una cosa del genere:

General Information
——————–
Hostname : luizz
Distribution : jessie
Mirror : http://ftp.it.debian.org/debian/
Partitions : / 40G (ext4)
Image type : full
Memory size : 1G
Bootloader : pygrub

Networking Information
———————-
IP Address 1 : 192.168.1.59 [MAC: 00:16:3E:3C:6E:E4]
Netmask : 255.255.255.192
Broadcast : 192.168.1.63
Gateway : 192.168.1.62
Nameserver : 8.8.8.8

Creating ext4 filesystem on /dev/Pinocchio/luizz-disk
Done
Installation method: debootstrap
Done

Running hooks
Done

No role scripts were specified. Skipping

Creating Xen configuration file
Done

No role scripts were specified. Skipping
Setting up root password
Generating a password for the new guest.
All done

Logfile produced at:
/var/log/xen-tools/luizz.log

Installation Summary
———————
Hostname : luizz
Distribution : jessie
MAC Address : 00:16:3E:3C:6E:E4
IP Address(es) : 192.168.1.59
RSA Fingerprint : f6:62:dc:fc:e9:d0:d0:90:70:83:26:78:4a:98:1b:2d
Root Password : 123456
#
Perfetto la macchina è stata creata
Adesso proviamo a startarla
# xl create -c /etc/xen/luizz.cfg
Perfetto la macchina parte e ci mostra subito la consolle, questa JESSIE si è comportata benissimo
Usciamo da questa macchina e distruggiamola, dobbiamo fare altre modifiche.
CTRL ALTGR ]
# xl list
Name ID Mem VCPUs State Time(s)
Domain-0 0 5741 12 r—– 226.0
luizz 6 1024 2 -b—- 4.7
#
La macchina è ancora accesa, adesso abbiamo due strade, o la killiamo di forza o ci entriamo e gli diamo lo shutdown, poichè io sono grande, grosso e prepotente, di dargli uno shutdown non me ne può fregare di meno, pertanto la ammazzo.
# xl destroy luizz
Adesso distruggiamo anche il disco
# lvremove Pinocchio/luizz-disk
Do you really want to remove active logical volume luizz-disk? [y/n]: y
Logical volume “luizz-disk” successfully removed
#
Perfetto, questa si che è cattiveria pura, adesso rimuoviamo anche la configurazione della macchina
# rm /etc/xen/luizz.cfg
Queste cose mi danno un senso di onnipotenza, posso creare e distruggere, io dono la vita ed ho il potere di fermarla.
Adesso andiamo a sistemare alcune cosette perchè la DEBIAN JESSIE di default non permette a root di entrare in ssh con la password, pertanto, poichè costruire una macchina virtuale ed amministrarla dalla consolle è scomodissimo, dobbiamo fare in modo di accedere con la chiave ed a tal proposito, io scrissi un tutorial che si può trovare qui.
Adesso creiamo una directory
# mkdir -p /etc/xen-tools/skel/root/.ssh
Sistemiamo i permessi
# chmod -R 700 /etc/xen-tools/skel/root
Copiamo la chiave pubblica
# cp /root/.ssh/authorized_keys /etc/xen-tools/skel/root/.ssh/
Se non possediamo la chiave pubblica, vuol dire che non accediamo al server in ssh tramite chiave.
poichè mi piace il prompt colorato, aggiungo anche il file .bash_profile
# vi /etc/xen-tools/skel/root/.bash_profile
e lo popolo come segue, già che ci sono, mi creo anche qualche alias utile a risparmiare tempo.
export PS1=’\[\033[01;31m\]\u\[\033[01;33m\]@\[\033[01;36m\]\h \[\033[01;33m\]\w \[\033[01;35m\]\$ \[\033[00m\]’
umask 022
eval “`dircolors`”
alias ls=’ls $LS_OPTIONS’
alias ll=’ls $LS_OPTIONS -l’
alias l=’ls $LS_OPTIONS -la –si’
alias ..=’cd ..’
alias …=’cd ../..’
alias s=’ssh -l root’
alias jail=’iptables -L’
alias syslog=’tail -f /var/log/syslog’
export EDITOR=”vim”
export HISTFILESIZE=99999999
export HISTSIZE=99999999
export HISTCONTROL=”ignoreboth”
export LS_OPTIONS=’–color=auto -h’
Salviamo ed usciamo
ESC : wq
Poichè io voglio che TUTTI gli utenti abbiano la shell colorata, mi accingo a creare un una nuova directory
# mkdir -p /etc/xen-tools/skel/etc/skel
e la popolo per differenza
# cp /etc/xen-tools/skel/root/.bash_profile /etc/xen-tools/skel/etc/skel/
Adesso creo un’altra directory e la popolo come mi occorre
# mkdir /etc/xen-tools/skel/etc/ssh
# cp /etc/ssh/sshd_config /etc/xen-tools/skel/etc/ssh/
# cp /etc/ssh/ssh_config /etc/xen-tools/skel/etc/ssh/
Poichè possiedo un file dei servizi personalizzato, mi preoccupo di copiare anche questo
# cp /etc/services /etc/xen-tools/skel/etc/
A questo punto vediamo se tutto funziona
# xen-create-image –hostname=luizz –vcpus=2 –pygrub –dist=jessie –ip=192.168.1.59 –arch=amd64
Attendiamo la costruzione della macchina virtuale, poi controlliamo se tutti i file sono al giusto posto.
Nella macchina virtuale precedente, abbiamo acceduto in SSH, creando una nuova macchina, otteniamo un fingerprint differente rispetto al precedente, quindi se non azzeriamo il fingerprint del nostro pc, otterremo un errore, quindi dobbiamo rimuovere la vecchia macchina.
$ ssh-keygen -f “/home/davide/.ssh/known_hosts” -R [192.168.1.59]
La macchina virtuale è partita, accedo in SSH, ho la shell colorata e tutto è funzionante perfettamente.


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.