Questo esercizio si concentra sulla creazione di due container Docker (uno basato su Ubuntu e l'altro su Rocky Linux) configurati per permettere l'accesso tramite SSH. I container vengono gestiti tramite Ansible utilizzando i playbook build-ubuntu-container.yml
e build-rockylinux-container.yml
.
- Git: per clonare il repository.
- Docker: per costruire ed eseguire i container.
- Ansible: per eseguire il playbook.
- Chiavi SSH: per autenticarsi sui container.
Clonare il repository formazione_cm
:
git clone https://github.com/lucacis8/formazione_cm
cd formazione_cm
All’interno del repository troverai i seguenti file e cartelle:
build-ubuntu-container.yml
: il playbook Ansible per costruire ed eseguire il container Ubuntu.build-rockylinux-container.yml
: il playbook Ansible per costruire ed eseguire il container Rocky Linux.ubuntu-dockerfile/
: contiene il Dockerfile per il container Ubuntu.rockylinux-dockerfile/
: contiene il Dockerfile per il container Rocky Linux.
Per permettere l’accesso ai container tramite SSH, devi creare una coppia di chiavi SSH. Esegui il seguente comando per generare le chiavi:
ssh-keygen -t rsa -b 4096 -C "[email protected]" -f id_key_genericuser
Successivamente, è possibile inserire una password per una maggiore sicurezza.
Il comando creerà due file:
id_key_genericuser
: la chiave privata.id_key_genericuser.pub
: la chiave pubblica.
Passaggi successivi:
- Sposta la chiave pubblica nelle directory di ciascun Dockerfile:
cp id_key_genericuser.pub ./ubuntu-dockerfile/
cp id_key_genericuser.pub ./rockylinux-dockerfile/
- Sposta la chiave privata nella directory SSH del tuo utente locale:
cp id_key_genericuser ~/.ssh/
chmod 600 ~/.ssh/id_key_genericuser
Esegui i seguenti playbook Ansible per costruire ed eseguire i container:
sudo ansible-playbook build-ubuntu-container.yml
sudo ansible-playbook build-rockylinux-container.yml
Questi playbook utilizzerano i Dockerfile per creare i container e configurarli per l’accesso SSH.
Dopo aver eseguito con successo i playbook, puoi accedere ai container tramite SSH. Utilizza i seguenti comandi per accedere ai container:
Container Ubuntu
ssh -i ~/.ssh/id_key_genericuser -p 22 genericuser@localhost
Container Rocky Linux
ssh -i ~/.ssh/id_key_genericuser -p 2222 genericuser@localhost
Se incontri un errore del tipo “REMOTE HOST IDENTIFICATION HAS CHANGED!”, puoi rimuovere la chiave host precedente dal file dei localhost conosciuti. Usa questo comando generico per eliminare la chiave problematica:
sed -i '' '<numero-linea>d' ~/.ssh/known_hosts
Sostituisci <numero-linea>
con il numero di linea corrispondente al messaggio d’errore. Dopo aver rimosso la chiave, riprova ad accedere al container.
Questo esercizio è stato progettato per familiarizzare con:
- La configurazione di container Docker con SSH.
- L’uso di Ansible per automatizzare la creazione e gestione dei container.
- La gestione di chiavi SSH per autenticazioni sicure.