From 1b8f0f64f372b634c4c58b9c2dad157df5315d19 Mon Sep 17 00:00:00 2001 From: Mickael Asseline Date: Mon, 10 May 2021 15:16:04 +0000 Subject: [PATCH] docs: update Openstack/Ocicli --- Openstack/Ocicli.html | 83 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 80 insertions(+), 3 deletions(-) diff --git a/Openstack/Ocicli.html b/Openstack/Ocicli.html index 28011fb..cd8d753 100644 --- a/Openstack/Ocicli.html +++ b/Openstack/Ocicli.html @@ -2,7 +2,7 @@ title: Ocicli description: Installer un cluster Openstack avec ocicli sous Debian published: true -date: 2021-05-10T15:02:21.365Z +date: 2021-05-10T15:16:03.196Z tags: editor: ckeditor dateCreated: 2021-05-10T11:53:45.764Z @@ -316,5 +316,82 @@ ocicli machine-add CC swift01 swiftstore dc2-zone1

Calcul du ring Swift

Avant de commencer à installer les serveurs, le ring Swift doit être construit. Exécutez simplement cette commande:

ocicli swift-calculate-ring swift01
-

Notez que cela peut prendre très longtemps, en fonction de la taille de votre cluster. Ceci est attendu. Soyez juste patient.

-

 

+

Notez que cela peut prendre très longtemps, en fonction de la taille de votre cluster.C'est normal, soyez juste patient.

+

 

+

Installation des serveurs

+

Il n'y a pas (encore) de gros bouton «installer le cluster» sur l'interface Web ou sur la CLI. Au lieu de cela, les serveurs doivent être installés un par un:

+
ocicli machine-install-os C1
+ocicli machine-install-os C2
+ocicli machine-install-os C3
+

Il est conseillé d'installer d'abord les nœuds de contrôleur, de vérifier manuellement qu'ils sont correctement installés (par exemple, vérifier que "openstack user list" fonctionne), puis les nœuds de stockage Swift, puis les nœuds proxy Swift. Cependant, les nœuds du même type peuvent être installés en même temps. De plus, en raison de l'utilisation d'un VIP et d'un corosync / pacemaker, les nœuds de contrôleur doivent être installés à peu près en même temps.

+

Il est également possible de voir les dernières lignes du journal d'installation d'un serveur à l'aide de l'interface de ligne de commande:

+
ocicli machine-install-log C1
+

Cela affichera les journaux de l'installation du système à partir de /var/log/oci, puis une fois que le serveur aura redémarré, il affichera les journaux de Puppet depuis /var/log/puppet-first-run.

+

 

+

Vérification de votre installation

+

Connectez-vous sur un nœud de contrôleur. Pour ce faire, listez son IP:

+
CONTROLLER_IP=$(ocicli machine-list | grep C1 | awk '{print $2}')
+ssh root@${CONTROLLER_IP}
+

Une fois connecté au contrôleur, vous verrez les informations de connexion sous /root/oci-openrc.sh. Trouvez-le et essayez:

+
. /root/oci-openrc.sh
+openstack user list
+

Vous pouvez également essayer Swift:

+
. /root/oci-openrc.sh
+openstack container create foo
+echo "test" >bar
+openstack object create foo bar
+rm bar
+openstack object delete foo bar
+

 

+

Activation du chiffrement d'objets Swift

+

Localement sur le store Swift, Swift stocke l'objet sous une forme claire. Cela signifie que toute personne ayant un accès physique au centre de données peut extraire un disque dur et que les objets sont accessibles à partir du dossier /srv/node. Pour atténuer ce risque, Swift peut chiffrer les objets qu'il stocke. Les métadonnées (comptes, containters, etc.) seront toujours stockées sous une forme claire, mais au moins, les données stockées chiffrées.

+

La façon dont cela est implémenté dans OCI consiste à utiliser Barbican. C'est la raison pour laquelle Barbican est provisionné par défaut sur les nœuds du contrôleur. Par défaut, le chiffrement n'est pas activé. Pour l'activer, vous devez d'abord stocker la clé de chiffrement d'objet dans le store Barbican. Cela peut être fait de cette façon:

+
ENC_KEY=$(openssl rand -hex 32)
+openstack secret store --name swift-encryption-key \
+  --payload-content-type=text/plain --algorithm aes \
+  --bit-length 256 --mode ctr --secret-type symmetric \
+  --payload ${ENC_KEY}
+  
+	+---------------+--------------------------------------------------------------------------------------------+
+	| Field         | Value                                                                                      |
+	+---------------+--------------------------------------------------------------------------------------------+
+	| Secret href   | https://swift01-api.example.com/keymanager/v1/secrets/6ba8dd62-d752-4144-b803-b32012d707d0 |
+	| Name          | swift-encryption-key                                                                       |
+	| Created       | None                                                                                       |
+	| Status        | None                                                                                       |
+	| Content types | {'default': 'text/plain'}                                                                  |
+	| Algorithm     | aes                                                                                        |
+	| Bit length    | 256                                                                                        |
+	| Secret type   | symmetric                                                                                  |
+	| Mode          | ctr                                                                                        |
+	| Expiration    | None                                                                                       |
+	+---------------+--------------------------------------------------------------------------------------------+
+

Une fois cela fait, l'ID de clé (ici: 6ba8dd62-d752-4144-b803-b32012d707d0) doit être entré dans l'interface Web de l'OCI, dans la définition du cluster, sous "ID de clé de chiffrement Swift (vide: pas de chiffrement) :". Une fois que cela est fait, une autre exécution de Puppet est nécessaire sur les nœuds proxy Swift:

+
OS_CACERT=/etc/ssl/certs/oci-pki-oci-ca-chain.pem puppet agent --test --debug
+

Cela devrait activer le chiffrement. Notez que la clé de cryptage doit être stockée dans Barbican sous les services utilisateur swift et project, afin que Swift y ait accès.

+

 

+

Correction de node1 inutile dans corosync

+

Parfois, "node1" apparaît lors de l'exécution de "crm status". Pour nettoyer cela, faites simplement:

+
crm_node -R node1 --force
+

 

+

Correction de ceph -s

+

Cela corrige tous les avertissements Ceph après une configuration:

+
ceph osd pool application enable glance rbd
+ceph osd pool application enable nova rbd
+ceph osd pool application enable cinder rbd
+ceph osd pool application enable gnocchi rbd
+ceph osd pool application enable cinderback rbd
+ceph mon enable-msgr2
+

 

+

Variable de configuration initiale du cluster

+

Pour éviter de faire trop de choses lorsque le cluster est en production (comme, par exemple, démarrer MySQL pour faire la configuration initiale du cluster Galera), OCI a une variable appelée "initial-cluster-setup". Elle est activée par défaut lors des premières exécutions, et une fois que tous les contrôleurs ont signalé une exécution réussie à Puppet, cette variable est automatiquement définie sur no. Voici une liste (probablement non exhaustive) de choses qu'OCI ne fait que si initial-cluster-setup est défini sur yes :

+ +

A tout moment, il est possible de basculer la valeur sur yes ou no :

+
ocicli cluster-set z --initial-cluster-setup no
+

Cependant, il est fortement conseillé de définir la valeur sur no une fois que le cluster est en production.