HOS 2.1 Installation de Ceph avec personnalisation du réseau (5 sur 8)
2016-01-23
Machine-translated — the English original is authoritative.
Il est maintenant temps de lancer le déploiement.
Comme j'ai protégé la clé SSH avec une phrase de passe, je dois exécuter les commandes suivantes pour éviter de devoir saisir la phrase de passe à chaque tentative de connexion d'Ansible aux nœuds clients (j'en ai parlé plus tôt dans le blog, mais il m'a fallu plusieurs jours, des déconnexions et des redémarrages pour en arriver là, et je dois le refaire 😉 ) :
eval $(ssh-agent)
ssh-add ~/.ssh/id_rsa

Si HOS 2.1 se trouve derrière un pare-feu et qu'un serveur proxy est requis pour accéder à Internet, ajoutez les détails du proxy pour Sherpa comme suit :
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] – Il existe actuellement un problème avec le nom d'Elasticsearch qui nécessite de le modifier dans le fichier de configuration de la journalisation avant de poursuivre l'installation.
sed -i "s/default='elasticsearch'/default='bananas'/" ~/helion/hos/ansible/roles/logging-common/defaults/main.yml
Si vous devez chiffrer vos mots de passe iLO, vous pouvez utiliser le script fourni dans un article de blog précédent qui chiffrera tous les mots de passe en une seule fois dans le fichier servers.xml comme suit :
export HOS_USER_PASSWORD_ENCRYPT_KEY=SomeSecretKey
python hosencryptfile.py -fe ~/helion/my_cloud/definition/data/servers.yml

Maintenant que toute la configuration est terminée, nous devons valider tous les changements dans le dépôt comme suit :
cd ~/helion/hos/ansible
git add -A
git commit -m "Basic cloud model updates configured"

Approvisionnement des nœuds bare metal
La commande suivante vérifiera que tous les mots de passe sont corrects et que votre réseau de configuration (réseau de gestion dans ce scénario) communique correctement avec le réseau IPMI.
export HOS_USER_PASSWORD_ENCRYPT_KEY=SomeSecretKey
ansible-playbook -i hosts/localhost bm-power-status.yml

Déploiement de Cobbler sur le HLM
On vous demandera un mot de passe qui sera utilisé pour accéder initialement aux nœuds – [Note pour moi-même : j'ai utilisé « helion »].
ansible-playbook -i hosts/localhost cobbler-deploy.yml

Vérifiez la liste des nœuds qui vont être installés – vous ne devriez pas voir le déploiement/contrôleur1 dans cette liste.
sudo cobbler system find --netboot-enabled=1

Démarrez une session screen si vous ne travaillez pas directement sur la console –
Installez screen puis lancez-le comme suit
sudo apt-get install screen
screen
export HOS_USER_PASSWORD_ENCRYPT_KEY=SomeSecretKey
Comme j'ai utilisé une phrase de passe sur ma clé SSH, je dois exécuter les commandes suivantes pour éviter de devoir saisir la phrase de passe à plusieurs reprises.
eval $(ssh-agent)
ssh-add ~/.ssh/id_rsa
Exécutez maintenant la commande suivante pour installer la base hLinux sur ces nœuds :
cd ~/helion/hos/ansible
ansible-playbook -i hosts/localhost bm-reimage.yml
ou
ansible-playbook -i hosts/localhost bm-reimage.yml -e nodelist=all
s'il s'agit d'une réinstallation

Nous exécutons maintenant le processeur de configuration qui validera effectivement notre modèle.
Encore une fois, on nous demandera un mot de passe si nous souhaitons chiffrer les données sensibles traitées par cette étape. Je vais utiliser « H3lionhelion! » pour changer.
cd ~/helion/hos/ansible
ansible-playbook -i hosts/localhost config-processor-run.yml


Nous allons maintenant créer un certificat auto-signé pour configurer TLS sur les points de terminaison publics.
Note : Dans une configuration de production, votre équipe de sécurité/PKI devrait pouvoir s'en charger pour vous.
Examinez le fichier ~/helion/my_cloud/info/address_info.yml pour obtenir l'adresse IP du point de terminaison public

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
Il est maintenant nécessaire de combiner le contenu de my-public-cert.key et my-public-cert.crt dans un seul fichier qui est utilisé par l'installateur HLM et de le copier dans ~/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

Modifiez le fichier network_groups.yml pour inclure cette nouvelle configuration TLS

Nous pouvons maintenant re-valider tout et relancer le processeur de configuration.
Note : J'ai également ajouté hos2.allthingscloud.eu à mon fichier /etc/hosts car je n'utilise pas de serveur DNS.

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

Nous sommes enfin prêts à déployer le cloud
ansible-playbook -i hosts/localhost ready-deployment.yml

Comme ces serveurs ont été utilisés pour des déploiements précédents, je dois effacer toutes les configurations de disque existantes comme suit :
ansible-playbook -i hosts/verb_hosts wipe_disks.yml --ask-vault-pass
Nous obtenons quelques échecs pour les nœuds de calcul, ce qui est acceptable – ils n'ont aucun disque supplémentaire assigné – si je formatais le disque OS, je devrais recommencer 🙂

Lançons maintenant le déploiement du cloud à proprement parler
ansible-playbook -i hosts/verb_hosts site.yml --ask-vault-pass

Je n'ai jamais vu cet avertissement auparavant – j'espère qu'il est sûr de l'ignorer – cela ressemble à un avertissement de bonne pratique d'Ansible …

Cela ressemble à une installation réussie.
Originally published on allthingscloud.eu (2016-01-23).