HOS 2.1 Installazione di Ceph con personalizzazione della rete (5 di 8)
2016-01-23
Machine-translated — the English original is authoritative.
È ora di iniziare il deployment.
Avendo protetto la chiave SSH con una passphrase, devo eseguire i seguenti comandi per evitare di dover inserire la passphrase ad ogni tentativo di connessione di Ansible ai nodi client (ne ho già parlato in precedenza in questo blog, ma mi sono voluti diversi giorni, disconnessioni e riavvii per arrivare a questo punto del post e devo rifarlo 😉 ):
eval $(ssh-agent)
ssh-add ~/.ssh/id_rsa

Se HOS 2.1 si trova dietro un firewall ed è necessario un server proxy per accedere a Internet, aggiungere i dettagli del proxy per Sherpa come segue:
sed -i 's$sherpa_http_proxy$http://172.16.1.5:8080$' ~/helion/my_cloud/config/sherpa/sherpa.conf.j2
sed -i 's$sherpa_https_proxy$http://172.16.1.5:8080$' ~/helion/my_cloud/config/sherpa/sherpa.conf.j2
sed -i 's$sherpa_no_proxy$localhost$' ~/helion/my_cloud/config/sherpa/sherpa.conf.j2

[WORKAROUND] – Attualmente è presente un problema con il nome di Elasticsearch che richiede di modificarlo nel file di configurazione del logging prima di procedere con l'installazione.
sed -i "s/default='elasticsearch'/default='bananas'/" ~/helion/hos/ansible/roles/logging-common/defaults/main.yml
Se è necessario crittografare le password iLO, è possibile utilizzare lo script fornito in un precedente blog che crittogherà tutte le password contemporaneamente nel file servers.xml come segue:
export HOS_USER_PASSWORD_ENCRYPT_KEY=SomeSecretKey
python hosencryptfile.py -fe ~/helion/my_cloud/definition/data/servers.yml

Ora che tutta la configurazione è completa, dobbiamo impegnare (commit) tutte le modifiche nel repository come segue:
cd ~/helion/hos/ansible
git add -A
git commit -m "Basic cloud model updates configured"

Provisioning dei nodi bare metal
Il comando seguente verificherà che tutte le password siano corrette e che la rete di configurazione (in questo scenario la rete di gestione) comunichi correttamente con la rete IPMI.
export HOS_USER_PASSWORD_ENCRYPT_KEY=SomeSecretKey
ansible-playbook -i hosts/localhost bm-power-status.yml

Deploy di Cobbler sull'HLM
Verrà richiesta una password che verrà utilizzata per accedere inizialmente ai nodi – [Nota per me stesso: ho usato “helion”].
ansible-playbook -i hosts/localhost cobbler-deploy.yml

Verificare l'elenco dei nodi che verranno installati – non si dovrebbe vedere il deployer/controller1 in questo elenco.
sudo cobbler system find --netboot-enabled=1

Iniziare una sessione screen se non si sta lavorando direttamente sulla console –
Installare screen e quindi eseguirlo come segue
sudo apt-get install screen
screen
export HOS_USER_PASSWORD_ENCRYPT_KEY=SomeSecretKey
Perché ho usato una passphrase sulla mia chiave SSH, devo eseguire i seguenti comandi per evitare di dover digitare ripetutamente la passphrase.
eval $(ssh-agent)
ssh-add ~/.ssh/id_rsa
Ora eseguire il comando seguente per installare la base hLinux su questi nodi:
cd ~/helion/hos/ansible
ansible-playbook -i hosts/localhost bm-reimage.yml
oppure
ansible-playbook -i hosts/localhost bm-reimage.yml -e nodelist=all
se si tratta di una reinstallazione

Ora eseguiamo il processore di configurazione che convaliderà efficacemente il nostro modello.
Ancora una volta, se desideriamo crittografare i dati sensibili elaborati da questo passaggio, ci verrà richiesta una password. Userò ‘H3lionhelion!’ per cambiare un po'.
cd ~/helion/hos/ansible
ansible-playbook -i hosts/localhost config-processor-run.yml


Ora creeremo un certificato self-signed per configurare TLS sugli endpoint pubblici.
Nota: In un ambiente di produzione, il team Security/PKI dovrebbe potersi occupare di questo per te.
Esaminare il file ~/helion/my_cloud/info/address_info.yml per ottenere l'indirizzo IP dell'endpoint pubblico

openssl req -nodes -newkey rsa:2048 -keyout my-public-cert.key -out my-public-cert.csr -text -subj '/C=US/O=Helion Test Certificate/CN=hos2.allthingscloud.eu/emailaddress=admin@ficticious.org/'
cat > v3_ext.cnf << *EOF*
[ v3_req ]
subjectAltName=DNS:hos2.allthingscloud.eu,DNS:172.16.61.5, IP:172.16.61.5
*EOF*
openssl x509 –days 365 -extfile v3_ext.cnf -extensions v3_req -in my-public-cert.csr -signkey my-public-cert.key -req -text -out my-public-cert.crt
Ora è necessario combinare i contenuti di my-public-cert.key e my-public-cert.crt in un unico file che viene utilizzato dall'installer HLM e copiarlo in ~/helion/my_cloud/config/tls/certs/
cat my-public-cert.key my-public-cert.crt > allthingscloud-certs
cp allthingscloud-certs ~/helion/my_cloud/config/tls/certs/allthingscloud-certs

Modificare il file network_groups.yml per includere questa nuova configurazione TLS

Ora possiamo impegnare nuovamente tutto e rieseguire il processore di configurazione.
Nota: Ho anche aggiunto hos2.allthingscloud.eu al mio file /etc/hosts poiché non sto utilizzando un server DNS.

cd ~/helion/hos/ansible
git add -A
git commit -m "Added TLS configuration"
ansible-playbook -i hosts/localhost config-processor-run.yml

Ora siamo finalmente pronti a deployare la cloud
ansible-playbook -i hosts/localhost ready-deployment.yml

Poiché questi server sono stati utilizzati per deployment precedenti, devo cancellare tutte le configurazioni dei dischi esistenti come segue:
ansible-playbook -i hosts/verb_hosts wipe_disks.yml --ask-vault-pass
Si ottengono alcuni fallimenti per i nodi compute, il che è accettabile – non hanno dischi extra assegnati – se cancellassi il disco OS dovrei ricominciare 🙂

Ora avviamo il vero e proprio deployment della cloud
ansible-playbook -i hosts/verb_hosts site.yml --ask-vault-pass

Non ho mai visto questo avviso prima – speriamo sia sicuro ignorarlo – sembra un avviso sulle best practice di Ansible …

Questo sembra un'installazione riuscita.
Originally published on allthingscloud.eu (2016-01-23).