Commit a36c1675 authored by Simone Piccardi's avatar Simone Piccardi
Browse files

Documentazione per creare l'immagine di cloud init

parent 6f321225
**************
Immagini cloud-init
*************
A partire da FUSS 10 (Debian Buster) si genereranno delle immagini complete
per macchina virtuale del server nel formato dei dump della piattaforma
Proxmox adottata dal progetto, in modo da semplificare l'installazione e la
configurazione iniziale di un FUSS server.
Le immagini si appoggiano a ``cloud-init`` in modo da consentire la gestione
della rete direttamente dall'interfaccia web, una volta che le si siano
importate e gli si sia associato un volume per ``cloud-init`` (i dettagli sono
illustrati nella fuss-tech-guide.
Creazione dell'immagine
=====
Creazione macchina virtuale
-------
Si crei una nuova macchina virtuale (VM) su Proxmox, in fase iniziale è
sufficiente l'interfaccia di rete singola creata dal wizard, si usi il bridge
associato alla rete esterna: la seconda interfaccia per la rete esterna, e la
eventuale terza per il captive portal possono essere aggiunte in un secondo
tempo.
Sulla macchina virtuale si deve fare una installazione ordinaria di Debian con
*netinstall* (ci si procuri l'ultima versione della ISO e la si carichi dentro
``/var/lib/vz/template/iso``)::
cd /var/lib/vz/template/iso/
wget https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-10.3.0-amd64-netinst.iso
Nella creazione si utilizzi la precedente immagine come CDROM e per il resto
si usino i valori di default per tutto, compresi i 32 G di dimensione del
disco, avendo però cura di fare installare quest'ultimo sullo storage
``local`` in formato *qcow* (che consente eventualmente di distribuire
direttamente il file che si otterrà come immagine del disco per l'uso da parte
di altre piattaforme).
Installare Debian
-------
Si esegua l'installazione in maniera ordinaria; per la rete si può anche usare
un eventuale DHCP, la configurazione scelta in fase di installazione verrà
comunque sovrascritta da quella che si imposterà in fase di deploy con
``cloud-init``.
Le operazioni specifiche che occorre fare in fase di installazione sono:
- si imposti per ``root`` la password di default: ``fuss``
- si usi un utente normale: ``fuss`` (o altro, andrà comunque cancellato)
- si configuri la rete nella maniera più semplice per accedere sulla macchina
- scegliere il partizionamento manuale del disco,
- creare una prima partizione primaria di 4G come swap
- creare una seconda partizione primaria con resto del disco come
radice
- nella schermata *Selezione del software* scegliere solo *Server SSH* e
*Utilità di sistema standard* (il resto si installerà dopo).
Configurazione di ``cloud-init``
-------
Una volta completata l'installazione base si potrà passare a preparare il
server. Dato che l'installazione di default blocca l'accesso in SSH a root, o
si usa l'utente normale provvisorio creato in fase di installazione e si usa
``su`` o ``sudo``, o ci si collega sulla console via web.
Il primo passo è abilitare da subito l'accesso di SSH a root, inserendo dentro
``/etc/ssh/sshd_config``::
#PermitRootLogin prohibit-password
PermitRootLogin yes
e riavviare ``sshd`` con ``service ssh restart``; non è necessario configurare
in questa fase l'uso di chiavi in ``authorized_keys``, queste possono essere
impostate in qualunque momento successivo tramite ``cloud-init``.
Si rimuova poi l'utente creato in fase di installazione con::
userdel -r fuss
Occorrerà anzitutto installare ``cloud-init`` e ``gnupg`` (che serve per poter
importare le chiavi di APT di FUSS)::
apt install cloud-init gnupg
La configurazione di default installata da ``cloud-init`` prevede la creazione
di un utente di default ed il blocco dell'accesso come ``root``. La scelta del
progetto è di fornire un accesso diretto a ``root`` a chiavi, con la
possibilità di usare una password, per questo vanno fatte alcune modifiche in
``/etc/cloud/cloud.cfg``. Anzitutto si devono commentare in le due righe
relative alla gestione degli utenti locali creati di default come nell'esempio
seguente::
# A set of users which may be applied and/or used by various modules
# when a 'default' entry is found it will reference the 'default_user'
# from the distro configuration specified below
#users:
# - default
e poi bisogna evitare che venga applicata la configurazione che disabilita
l'uso dell'utente ``root``, configurando ``disable_root`` a ``false`` come
in::
# If this is set, 'root' will not be able to ssh in and they
# will get a message to login instead as the above $user (debian)
disable_root: false
infine si aggiungano poi in coda al file le ulteriori configurazioni, che
consente ``cloud-init`` di gestire ``/etc/hosts``::
manage_etc_hosts: true
Si aggiunga poi sotto ``/etc/cloud/cloud.cfg.d/`` il file ``10_fuss.cfg``,
con il contenenuto seguente (le spaziature **non** devono contenere
tabulazioni)::
apt:
sources:
fuss-buster.list:
source: "deb http://archive.fuss.bz.it/ buster main"
key: |
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1
mQENBFhBb9EBCACuiJWfhUrHmECgdfWgjX44YB4XXRJBvWmRAsZevUQL8TeMw2fr
5W3mkMzcfuZlye2ewIEqF9dN/ql9px92MhEkHacMiqdYN+2k2F4dvkgca3L0KSDM
3VIPT643aY9DlVmgyx9X+y5nqTNHdT92VOhfiAJS7f2escA6L+TXHhqXe6KO6Svo
RzeMGzHwtupFRt+3i45iaxiXOiEjXdZo8shc+6hXQWsN/zRe6MiW1yPEEceQT92z
NzQsN2LO1YxprpxRlBiatNHId7PmEetm9nX4Rp56bwBn8wxF6QTCLeIKa4GX+3Ka
hiMqGOJyDPAJW01Huhwho+/WJ+/KChCohMRnABEBAAG0LUZ1c3MgUGFja2FnZSBS
ZXBvc2l0b3J5IDxwYWNrYWdlc0BmdXNzLmJ6Lml0PokBOAQTAQIAIgUCWEFv0QIb
AwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQIpz3qHHHyCPGJQf/ZSv4JWYL
F2uoI7+S/HETOTYa/47mAJr5UuggGMZlBU3C/ySzoe2F43tF83WqyY6LWVd8Gi0S
FM0ZiF6I8OwKwXoWzyT0nj+Ukm+tWonllSvkLgXMfPWYqCi5zrotmq8nNT8zKeXT
/0likZL/8y0+LwNnrwlQWdnXi08lVX1GZn5z2jWJL6s0g6XBXdh+QyN1b3FDzVEz
7Twrc4mwlt7mPk4nzqUsJQY//yzh4HsWLewnriQ58qO8tVauzPxwrxLi7A5tZIHP
6nljxBZiide5MnR2vjv8vLSntwwZE7r/Ex93e1+r3nx/oRC69kVdVLnMyrKoxCsY
DNq6rPu1oi0YiLkBDQRYQW/RAQgAqR7cBTusW/NSqOetDw2QszNNkTc7OaI9+iQu
0QBG0+QYzEs7M6jZBjGReqCpQ6mquPVU2q0xAYnVNG6J+4W+QsGhOsOO8jQOxMTi
3BUsjItgzWhEEyQaMMjEL8/HuQ2uzp7jv19HF6KnDSJ74thCI+Pc/8BRf2fRIja0
nyndAFfSpDI3gLRFGqFzqF8sQQ61vCyue0UtlkzDpCPqVqKrty26QZT9fzoKSLkc
VzSXJ/IYW5+9J8vfWzRadY02MdpTzR+9p5L4Jfr+nUVlM8G7lc0KHjvQz+FsKrwV
otBuMGu+EN4D74JowjB5AwGyEMfzP+qiKLy2jklHUx904wKkEQARAQABiQEfBBgB
AgAJBQJYQW/RAhsMAAoJECKc96hxx8gjHZsH/jMJE4HDRA0mBSVuU81hxxNaF1T/
vpxk0r+VlUcuDAo/GdnIMkMchki6Fv72DslxkoXRfD2Mues/eE4YV5824MUQDGkf
nNYs9X3wdQNITMdwfkVArly8dm7Jo2UaJtGoZeHKG7TcVv/UwYA+0PxZUynaQxW+
LBNA5lQUIryaFCqz0NaNojFMqrBf665ws95HKEqBSdY6+fPZtoPkUlFra4GTiZlf
Hythrz0bh1b0+N/MlWMIegmgGgVaNq6942zAjwy8oHr+wwA5b2s4YY3NbTQinI+v
jg3H27aWWlxME27u63o/gm4zXGk4taPBph81WvbORP50ztDAk2UfIVTWCeQ=
=fwLI
-----END PGP PUBLIC KEY BLOCK-----
fuss-proposed-updates.list:
source: "deb http://archive.fuss.bz.it/ buster-proposed-updates main"
key: |
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1
mQENBFhBb9EBCACuiJWfhUrHmECgdfWgjX44YB4XXRJBvWmRAsZevUQL8TeMw2fr
5W3mkMzcfuZlye2ewIEqF9dN/ql9px92MhEkHacMiqdYN+2k2F4dvkgca3L0KSDM
3VIPT643aY9DlVmgyx9X+y5nqTNHdT92VOhfiAJS7f2escA6L+TXHhqXe6KO6Svo
RzeMGzHwtupFRt+3i45iaxiXOiEjXdZo8shc+6hXQWsN/zRe6MiW1yPEEceQT92z
NzQsN2LO1YxprpxRlBiatNHId7PmEetm9nX4Rp56bwBn8wxF6QTCLeIKa4GX+3Ka
hiMqGOJyDPAJW01Huhwho+/WJ+/KChCohMRnABEBAAG0LUZ1c3MgUGFja2FnZSBS
ZXBvc2l0b3J5IDxwYWNrYWdlc0BmdXNzLmJ6Lml0PokBOAQTAQIAIgUCWEFv0QIb
AwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQIpz3qHHHyCPGJQf/ZSv4JWYL
F2uoI7+S/HETOTYa/47mAJr5UuggGMZlBU3C/ySzoe2F43tF83WqyY6LWVd8Gi0S
FM0ZiF6I8OwKwXoWzyT0nj+Ukm+tWonllSvkLgXMfPWYqCi5zrotmq8nNT8zKeXT
/0likZL/8y0+LwNnrwlQWdnXi08lVX1GZn5z2jWJL6s0g6XBXdh+QyN1b3FDzVEz
7Twrc4mwlt7mPk4nzqUsJQY//yzh4HsWLewnriQ58qO8tVauzPxwrxLi7A5tZIHP
6nljxBZiide5MnR2vjv8vLSntwwZE7r/Ex93e1+r3nx/oRC69kVdVLnMyrKoxCsY
DNq6rPu1oi0YiLkBDQRYQW/RAQgAqR7cBTusW/NSqOetDw2QszNNkTc7OaI9+iQu
0QBG0+QYzEs7M6jZBjGReqCpQ6mquPVU2q0xAYnVNG6J+4W+QsGhOsOO8jQOxMTi
3BUsjItgzWhEEyQaMMjEL8/HuQ2uzp7jv19HF6KnDSJ74thCI+Pc/8BRf2fRIja0
nyndAFfSpDI3gLRFGqFzqF8sQQ61vCyue0UtlkzDpCPqVqKrty26QZT9fzoKSLkc
VzSXJ/IYW5+9J8vfWzRadY02MdpTzR+9p5L4Jfr+nUVlM8G7lc0KHjvQz+FsKrwV
otBuMGu+EN4D74JowjB5AwGyEMfzP+qiKLy2jklHUx904wKkEQARAQABiQEfBBgB
AgAJBQJYQW/RAhsMAAoJECKc96hxx8gjHZsH/jMJE4HDRA0mBSVuU81hxxNaF1T/
vpxk0r+VlUcuDAo/GdnIMkMchki6Fv72DslxkoXRfD2Mues/eE4YV5824MUQDGkf
nNYs9X3wdQNITMdwfkVArly8dm7Jo2UaJtGoZeHKG7TcVv/UwYA+0PxZUynaQxW+
LBNA5lQUIryaFCqz0NaNojFMqrBf665ws95HKEqBSdY6+fPZtoPkUlFra4GTiZlf
Hythrz0bh1b0+N/MlWMIegmgGgVaNq6942zAjwy8oHr+wwA5b2s4YY3NbTQinI+v
jg3H27aWWlxME27u63o/gm4zXGk4taPBph81WvbORP50ztDAk2UfIVTWCeQ=
=fwLI
-----END PGP PUBLIC KEY BLOCK-----
packages:
- fuss-server
Generazione dell'immagine
----------------
Una volte effettuate le configurazioni precedenti, si fermi la macchina
virtule e se ne esegua un backup, chiedendo la compressione. Si troverà il
file del backup sotto ``/var/lib/vz/dump`` (o nella directory che si è
configurato come storage di backup) nella forma::
vzdump-qemu-VMID-ANNO_ME_GI-OR_MI_SE.vma.lzo
e questo potrà essere caricato sul repository per il download da parte degli
utilizzatori.
......@@ -15,6 +15,7 @@ Il presente manuale è una guida alla manutenzione ed allo sviluppo della distri
metapacchetti
fuss-server
fuss-client
cloud-init-image
iso
nuova-versione-debian
macchine-virtuali-libvirt-qemu-kvm
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment