adlytaibi.sgws_config

sgws_config

Ce rôle et ces modules sont destinés à configurer un stockage NetApp StorageGRID. Les tâches suivantes peuvent être effectuées :

Tâches de grille :

  • Autoriser l'obtention d'un jeton de grille
  • Installer des certificats SSL signés pour la gestion de l'API
  • Installer des certificats SSL signés pour la gestion du stockage
  • Configurer un fournisseur d'identité
  • Créer des groupes d'administrateurs locaux ou fédérés pour la grille
  • Créer des utilisateurs administrateurs locaux pour la grille
  • Créer un nouveau locataire

Tâches de locataire :

  • Autoriser l'obtention d'un jeton de locataire (en utilisant l'ID de compte nouvellement créé ou existant)
  • Configurer un fournisseur d'identité pour le locataire
  • Créer des groupes locaux ou fédérés pour le locataire
  • Créer des utilisateurs locaux pour le locataire
  • Générer des clés S3 pour le locataire
  • Créer un bucket pour le locataire

Remarque :

  • La configuration du fournisseur d'identité est une condition préalable à la création de groupes fédérés.
  • Possibilité de créer des groupes fédérés et locaux en une seule exécution.
  • Les utilisateurs locaux d'un groupe fédéré seront ignorés.

Exigences

Variables du rôle

Les variables définissables pour le rôle se trouvent dans roles/sgws_config/vars/main.yml. Les mots de passe et les identifiants sont intégrés via ansible-vault ou lisez ci-dessous. D'autres variables se trouvent dans roles/sgws_config/vars/ pour leurs tâches respectives.

L’installation des certificats SSL signés pour la gestion de l'API nécessite trois fichiers : mgmt_cert.pem, mgmt_cert.key et chain.pem dans le répertoire roles/sgws_config/files. Les fichiers de certificat SSL pour Storage API sont stor_cert.pem, stor_cert.key et chain.pem. Des scripts d'aide ont été ajoutés voir ci-dessous.

Activez ou désactivez les tâches dans roles/adlytaibi.sgws_config/tasks/main.yml en commentant ou décommentant les lignes respectives.

Étant donné qu'il y a du travail préalable à effectuer avant d'utiliser certaines tâches, les tâches de certificats SSL et de fournisseur d'identité sont commentées par défaut.

Dépendances

Il n'y a pas de dépendances.

Comment

Regardez une vidéo si vous préférez (à partir de la version 1.1.x).

Exemple de Playbook

# ansible-playbook --vault-password-file ~/.passwd ~/.ansible/roles/adlytaibi.sgws_config/sgws_config.yml

PLAY [sgws] *********************************************************************************************************

TASK [adlytaibi.sgws_config : Obtenir le jeton d'autorisation de la grille] *****************************************
ok: [localhost]

TASK [adlytaibi.sgws_config : Charger les variables du groupe administrateur] ****************************************
ok: [localhost]

TASK [adlytaibi.sgws_config : Créer des groupes d'utilisateurs et des utilisateurs de la grille] ********************
inclus : /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_group.yml pour localhost
inclus : /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_group.yml pour localhost

TASK [adlytaibi.sgws_config : Vérifier si le groupe "Développeurs" existe] ******************************************
ok: [localhost]

TASK [adlytaibi.sgws_config : Créer le nouveau groupe d'administrateurs "Développeurs"] *****************************
ok: [localhost]

TASK [adlytaibi.sgws_config : Créer des utilisateurs faisant partie du groupe] ****************************************
inclus : /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_users.yml pour localhost

TASK [adlytaibi.sgws_config : Charger les variables des utilisateurs administrateurs locaux] ***************************
ok: [localhost]

TASK [adlytaibi.sgws_config : Créer et définir le mot de passe pour les utilisateurs administrateurs] *****************
inclus : /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_user.yml pour localhost
inclus : /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_user.yml pour localhost

TASK [adlytaibi.sgws_config : Vérifier si l'utilisateur "Utilisateur Test Développeur" existe] ***********************
ok: [localhost]

TASK [adlytaibi.sgws_config : Créer un nouvel utilisateur administrateur "Utilisateur Test Développeur"] ***********
ok: [localhost]

TASK [adlytaibi.sgws_config : Définir le mot de passe pour l'utilisateur administrateur "Utilisateur Test Développeur"] 
*****************************************************************
ok: [localhost]

TASK [adlytaibi.sgws_config : Vérifier si l'utilisateur "Utilisateur Test Stockage" existe] ***************************
skipping: [localhost]

TASK [adlytaibi.sgws_config : Créer un nouvel utilisateur administrateur "Utilisateur Test Stockage"] ****************
skipping: [localhost]

TASK [adlytaibi.sgws_config : Définir le mot de passe pour l'utilisateur administrateur "Utilisateur Test Stockage"] ****
skipping: [localhost]

TASK [adlytaibi.sgws_config : Vérifier si le groupe "Stockage" existe] ***********************************************
ok: [localhost]

TASK [adlytaibi.sgws_config : Créer le nouveau groupe d'administrateurs "Stockage"] *********************************
ok: [localhost]

TASK [adlytaibi.sgws_config : Créer des utilisateurs faisant partie du groupe] ****************************************
inclus : /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_users.yml pour localhost

TASK [adlytaibi.sgws_config : Charger les variables des utilisateurs administrateurs locaux] ***************************
ok: [localhost]

TASK [adlytaibi.sgws_config : Créer et définir le mot de passe pour les utilisateurs administrateurs] *****************
inclus : /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_user.yml pour localhost
inclus : /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_user.yml pour localhost

TASK [adlytaibi.sgws_config : Vérifier si l'utilisateur "Utilisateur Test Développeur" existe] ***********************
skipping: [localhost]

TASK [adlytaibi.sgws_config : Créer un nouvel utilisateur administrateur "Utilisateur Test Développeur"] *************
skipping: [localhost]

TASK [adlytaibi.sgws_config : Définir le mot de passe pour l'utilisateur administrateur "Utilisateur Test Développeur"] 
*****************************************************************
skipping: [localhost]

TASK [adlytaibi.sgws_config : Vérifier si l'utilisateur "Utilisateur Test Stockage" existe] ***************************
ok: [localhost]

TASK [adlytaibi.sgws_config : Créer un nouvel utilisateur administrateur "Utilisateur Test Stockage"] ****************
ok: [localhost]

TASK [adlytaibi.sgws_config : Définir le mot de passe pour l'utilisateur administrateur "Utilisateur Test Stockage"] ****
ok: [localhost]

TASK [adlytaibi.sgws_config : Charger les变量 des comptes] **************************************************************
ok: [localhost]

TASK [adlytaibi.sgws_config : Rassembler la liste des comptes] *************************************************************
ok: [localhost]

TASK [adlytaibi.sgws_config : Vérifier si le compte "Widgets Unlimited" existe] ***************************************
skipping: [localhost]

TASK [adlytaibi.sgws_config : Créer un nouveau compte de locataire "Widgets Unlimited"] *******************************
ok: [localhost]

TASK [adlytaibi.sgws_config : Obtenir le jeton d'autorisation d'organisation] *****************************************
ok: [localhost]

TASK [adlytaibi.sgws_config : Charger les variables du groupe d'utilisateurs du locataire] *****************************
ok: [localhost]

TASK [adlytaibi.sgws_config : Créer des groupes et des utilisateurs du locataire] **************************************
inclus : /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_org_group.yml pour localhost
inclus : /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_org_group.yml pour localhost

TASK [adlytaibi.sgws_config : Vérifier si le groupe "Développeurs" du locataire existe] ********************************
ok: [localhost]

TASK [adlytaibi.sgws_config : Créer un nouveau groupe "Développeurs" du locataire] *************************************
ok: [localhost]

TASK [adlytaibi.sgws_config : Créer des utilisateurs faisant partie du groupe] ****************************************
inclus : /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_org_users.yml pour localhost

TASK [adlytaibi.sgws_config : Charger les variables des utilisateurs locaux du locataire] *******************************
ok: [localhost]

TASK [adlytaibi.sgws_config : Créer et définir le mot de passe pour les utilisateurs du locataire] **********************
inclus : /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_org_user.yml pour localhost
inclus : /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_org_user.yml pour localhost

TASK [adlytaibi.sgws_config : Vérifier si l'utilisateur "Utilisateur Test Développeur" existe] ***********************
ok: [localhost]

TASK [adlytaibi.sgws_config : Créer un nouvel utilisateur du locataire "Utilisateur Test Développeur"] ******************
ok: [localhost]

TASK [adlytaibi.sgws_config : Définir le mot de passe pour l'utilisateur du locataire "Utilisateur Test Développeur"] ****
ok: [localhost]

TASK [adlytaibi.sgws_config : Vérifier si l'utilisateur "Utilisateur Test Apps" existe] *******************************
skipping: [localhost]

TASK [adlytaibi.sgws_config : Créer un nouvel utilisateur du locataire "Utilisateur Test Apps"] ************************
skipping: [localhost]

TASK [adlytaibi.sgws_config : Définir le mot de passe pour l'utilisateur du locataire "Utilisateur Test Apps"] *************
skipping: [localhost]

TASK [adlytaibi.sgws_config : Vérifier si le groupe "Apps" du locataire existe] ************************************
ok: [localhost]

TASK [adlytaibi.sgws_config : Créer un nouveau groupe "Apps" du locataire] **********************************
ok: [localhost]

TASK [adlytaibi.sgws_config : Créer des utilisateurs faisant partie du groupe] ****************************************
inclus : /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_org_users.yml pour localhost

TASK [adlytaibi.sgws_config : Charger les variables des utilisateurs locaux du locataire] *******************************
ok: [localhost]

TASK [adlytaibi.sgws_config : Créer et définir le mot de passe pour les utilisateurs du locataire] **********************
inclus : /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_org_user.yml pour localhost
inclus : /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_org_user.yml pour localhost

TASK [adlytaibi.sgws_config : Vérifier si l'utilisateur "Utilisateur Test Développeur" existe] ***********************
skipping: [localhost]

TASK [adlytaibi.sgws_config : Créer un nouvel utilisateur du locataire "Utilisateur Test Développeur"] ******************
skipping: [localhost]

TASK [adlytaibi.sgws_config : Définir le mot de passe pour l'utilisateur du locataire "Utilisateur Test Développeur"] ****
skipping: [localhost]

TASK [adlytaibi.sgws_config : Vérifier si l'utilisateur "Utilisateur Test Apps" existe] *******************************
ok: [localhost]

TASK [adlytaibi.sgws_config : Créer un nouvel utilisateur du locataire "Utilisateur Test Apps"] ************************
ok: [localhost]

TASK [adlytaibi.sgws_config : Définir le mot de passe pour l'utilisateur du locataire "Utilisateur Test Apps"] ************
ok: [localhost]

TASK [adlytaibi.sgws_config : Charger la clé d'accès S3 pour les variables du locataire] ******************************
ok: [localhost]

TASK [adlytaibi.sgws_config : Générer les clés S3] *********************************************************************
ok: [localhost]

TASK [adlytaibi.sgws_config : Répertoire de destination pour stocker les clés S3] *************************************
ok: [localhost]

TASK [adlytaibi.sgws_config : Sauvegarder les clés S3 générées] **********************************************************
changed: [localhost]

TASK [adlytaibi.sgws_config : Charger le bucket pour les variables du locataire] ***************************************
ok: [localhost]

TASK [adlytaibi.sgws_config : Créer un bucket] ************************************************************************
ok: [localhost]

PLAY RECAP **********************************************************************************************************
localhost                  : ok=53   changed=1    unreachable=0    failed=0    skipped=13   rescued=0    ignored=0

Utilisation d'ansible-vault

N'hésitez pas à l'adapter, ceci est juste pour vous aider à démarrer. Le fichier ~/.passwd contient le mot de passe du coffre.

# echo -n NetApp123 > ~/.passwd

Avec le mot de passe du coffre ci-dessus, vous pouvez chiffrer n'importe quelle valeur et l'intégrer dans des fichiers yml.

# echo -n netapp01 | ansible-vault encrypt --vault-password-file ~/.passwd > vault.txt
# cat vault.txt
$ANSIBLE_VAULT;1.1;AES256
62383435316236346137383364373438623661653665363939616231376464643762333364663733
3430313661363761386536373135663733323764666561630a383736363562363864393037646531
61383566333332356339376561336239396634626433666434306566386134343031653339333531
3964356263643134610a346138616566643533346365326662343762346432386563393331306239
3835

Si vous souhaitez vérifier les valeurs chiffrées.

# cat vault.txt | ansible-vault decrypt --vault-password-file ~/.passwd
Déchiffrement réussi
netapp01

Scripts d'aide

Le répertoire des scripts situé dans ~/.ansible/roles/adlytaibi.sgws_config/files/scripts contient les fichiers mgmt_ssl.cnf et stor_ssl.cnf pour votre commodité. Modifiez-les pour correspondre à votre interface de gestion de la grille et votre passerelle. Changez de répertoire vers l'endroit où les clés SSL seront stockées. Exécutez les deux scripts qui vont créer une clé privée et une CSR.

# cd ~/.ansible/roles/adlytaibi.sgws_config/files
# scripts/mgmt_sign
# scripts/stor_sign

Après avoir signé les certificats SSL, assurez-vous de les renommer en mgmt_cert.pem et stor_cert.pem respectivement, puis copiez-les dans le répertoire ~/.ansible/roles/adlytaibi.sgws_config/files avec le bundle de chaînes certnew.p7b. Vous pouvez maintenant exécuter le script bundle qui va convertir la chaîne de p7b à pem.

# scripts/bundle

Voici les fichiers qui seront utilisés par Ansible.

# chain.pem      CA bundle
# mgmt_cert.pem  Certificat signé pour la gestion de l'API
# mgmt_cert.key  Clé privée pour le certificat ci-dessus
# stor_cert.pem  Certificat signé pour la gestion du stockage
# stor_cert.key  Clé privée pour le certificat ci-dessus

Licence

GPL

Informations sur l'auteur

  • Adly Taibi
À propos du projet

StorageGRID configuration

Installer
ansible-galaxy install adlytaibi.sgws_config
Licence
gpl-3.0
Téléchargements
90
Propriétaire