adlytaibi.sgws_config
sgws_config
Diese Rolle und Module sind dafür gedacht, einen NetApp StorageGRID zu konfigurieren. Die folgenden Aufgaben können durchgeführt werden:
Grid-Aktionen:
- Berechtigung anfordern, um ein Grid-Token zu erhalten
- Unterzeichnete SSL-Zertifikate für API-Verwaltung installieren
- Unterzeichnete SSL-Zertifikate für Speicherverwaltung installieren
- Einen Identitätsanbieter einrichten
- Eine lokale oder föderierte Administratorgruppe für das Grid erstellen
- Lokale Administrationsbenutzer für das Grid erstellen
- Einen neuen Mandanten erstellen
Mandanten-Aktionen:
- Berechtigung anfordern, um ein Mandanten-Token zu erhalten (mit neu erstellter oder bestehender Konto-ID)
- Einen Identitätsanbieter für den Mandanten einrichten
- Lokale oder föderierte Gruppen für den Mandanten erstellen
- Lokale Benutzer für den Mandanten erstellen
- S3-Schlüssel für den Mandanten generieren
- Einen Bucket für den Mandanten erstellen
Hinweis:
- Die Einrichtung eines Identitätsanbieters ist eine Voraussetzung, um föderierte Gruppen zu erstellen.
- Möglichkeit, föderierte und lokale Gruppen in einem Durchgang zu erstellen.
- Lokale Benutzer in einer föderierten Gruppe werden ignoriert.
Anforderungen
Rollenvariablen
Die einstellbaren Variablen für die Rolle befinden sich in roles/sgws_config/vars/main.yml
. Passwörter und Anmeldeinformationen werden mit ansible-vault integriert oder siehe unten. Weitere Variablen finden Sie unter roles/sgws_config/vars/
für ihre jeweiligen Aufgaben.
Das Installieren von unterzeichneten SSL-Zertifikaten für die API-Verwaltung erfordert drei Dateien: mgmt_cert.pem
, mgmt_cert.key
und chain.pem
, die sich in roles/sgws_config/files
befinden müssen. Die SSL-Zertifikatdateien für die Speicherung sind stor_cert.pem
, stor_cert.key
und chain.pem
. Ich habe Hilfsskripte hinzugefügt siehe unten.
Schalten Sie die Aktionen in roles/adlytaibi.sgws_config/tasks/main.yml
ein oder aus, indem Sie die entsprechenden Zeilen auskommentieren oder einkommentieren.
Da einige Aktionen Voraussetzungen erfordern, sind die SSL-Zertifikat- und Identitätsanbieteraktionen standardmäßig auskommentiert.
Abhängigkeiten
Es gibt keine Abhängigkeiten.
Wie
Sehen Sie sich ein Video an, falls Sie es bevorzugen (ab Version 1.1.x).
Beispiel-Playbook
# ansible-playbook --vault-password-file ~/.passwd ~/.ansible/roles/adlytaibi.sgws_config/sgws_config.yml
PLAY [sgws] *********************************************************************************************************
TASK [adlytaibi.sgws_config : Grid-Autorisierungstoken abrufen] **************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Variablen der Administrativgruppe laden] *********************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Benutzergruppen und Benutzer für das Grid erstellen] **********************************
included: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_group.yml for localhost
included: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_group.yml for localhost
TASK [adlytaibi.sgws_config : Überprüfen, ob die Gruppe "Entwickler" existiert] ************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Neue Administratorgruppe "Entwickler" erstellen] *************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Benutzer der Gruppe erstellen] *******************************************************
included: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_users.yml for localhost
TASK [adlytaibi.sgws_config : Variablen lokaler Administratorbenutzer laden] ****************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Erstellen und Passwort für Administratorbenutzer setzen] *****************************
included: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_user.yml for localhost
included: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_user.yml for localhost
TASK [adlytaibi.sgws_config : Überprüfen, ob der Benutzer "Entwickler Test Benutzer" existiert] *******************
ok: [localhost]
TASK [adlytaibi.sgws_config : Neuen Administratorbenutzer "Entwickler Test Benutzer" erstellen] *********************
ok: [localhost]
TASK [adlytaibi.sgws_config : Passwort für Administratorbenutzer "Entwickler Test Benutzer" setzen] ***************
ok: [localhost]
TASK [adlytaibi.sgws_config : Überprüfen, ob der Benutzer "Speicher Test Benutzer" existiert] **********************
skipping: [localhost]
TASK [adlytaibi.sgws_config : Neuen Administratorbenutzer "Speicher Test Benutzer" erstellen] ***********************
skipping: [localhost]
TASK [adlytaibi.sgws_config : Passwort für Administratorbenutzer "Speicher Test Benutzer" setzen] ****************
skipping: [localhost]
TASK [adlytaibi.sgws_config : Überprüfen, ob die Gruppe "Speicher" existiert] *************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Neue Administratorgruppe "Speicher" erstellen] ****************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Benutzer der Gruppe erstellen] *******************************************************
included: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_users.yml for localhost
TASK [adlytaibi.sgws_config : Variablen lokaler Administratorbenutzer laden] ****************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Erstellen und Passwort für Administratorbenutzer setzen] *****************************
included: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_user.yml for localhost
included: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_user.yml for localhost
TASK [adlytaibi.sgws_config : Überprüfen, ob der Benutzer "Entwickler Test Benutzer" existiert] *******************
skipping: [localhost]
TASK [adlytaibi.sgws_config : Neuen Administratorbenutzer "Entwickler Test Benutzer" erstellen] *********************
skipping: [localhost]
TASK [adlytaibi.sgws_config : Passwort für Administratorbenutzer "Entwickler Test Benutzer" setzen] ***************
skipping: [localhost]
TASK [adlytaibi.sgws_config : Überprüfen, ob der Benutzer "Speicher Test Benutzer" existiert] **********************
ok: [localhost]
TASK [adlytaibi.sgws_config : Neuen Administratorbenutzer "Speicher Test Benutzer" erstellen] ***********************
ok: [localhost]
TASK [adlytaibi.sgws_config : Passwort für Administratorbenutzer "Speicher Test Benutzer" setzen] ****************
ok: [localhost]
TASK [adlytaibi.sgws_config : Kontovariablen laden] ****************************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Kontoliste sammeln] *****************************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Überprüfen, ob das Konto "Widgets Unlimited" existiert] *****************************
skipping: [localhost]
TASK [adlytaibi.sgws_config : Neues Speicher-Mandantenkonto "Widgets Unlimited" erstellen] ***********************
ok: [localhost]
TASK [adlytaibi.sgws_config : Org-Autorisierungstoken abrufen] *****************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Variablen der Benutzergruppe des Mandanten laden] ************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Benutzergruppen und Benutzer des Mandanten erstellen] *******************************
included: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_org_group.yml for localhost
included: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_org_group.yml for localhost
TASK [adlytaibi.sgws_config : Überprüfen, ob die Gruppe des Mandanten "Entwickler" existiert] *********************
ok: [localhost]
TASK [adlytaibi.sgws_config : Neue Mandantengruppe "Entwickler" erstellen] *****************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Benutzer der Gruppe erstellen] *******************************************************
included: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_org_users.yml for localhost
TASK [adlytaibi.sgws_config : Variablen lokaler Benutzer der Mandanten laden] ***************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Erstellen und Passwort für Mandantenbenutzer setzen] ********************************
included: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_org_user.yml for localhost
included: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_org_user.yml for localhost
TASK [adlytaibi.sgws_config : Überprüfen, ob der Benutzer "Entwickler Test Benutzer" existiert] ********************
ok: [localhost]
TASK [adlytaibi.sgws_config : Neuen Mandantenbenutzer "Entwickler Test Benutzer" erstellen] ***********************
ok: [localhost]
TASK [adlytaibi.sgws_config : Passwort für Mandantenbenutzer "Entwickler Test Benutzer" setzen] ******************
ok: [localhost]
TASK [adlytaibi.sgws_config : Überprüfen, ob der Benutzer "Apps Test Benutzer" existiert] *************************
skipping: [localhost]
TASK [adlytaibi.sgws_config : Neuen Mandantenbenutzer "Apps Test Benutzer" erstellen] *****************************
skipping: [localhost]
TASK [adlytaibi.sgws_config : Passwort für Mandantenbenutzer "Apps Test Benutzer" setzen] **************************
skipping: [localhost]
TASK [adlytaibi.sgws_config : Überprüfen, ob die Gruppe des Mandanten "Apps" existiert] ***************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Neue Mandantengruppe "Apps" erstellen] ***********************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Benutzer der Gruppe erstellen] *******************************************************
included: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_org_users.yml for localhost
TASK [adlytaibi.sgws_config : Variablen lokaler Benutzer der Mandanten laden] ***************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Erstellen und Passwort für Mandantenbenutzer setzen] ********************************
included: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_org_user.yml for localhost
included: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_org_user.yml for localhost
TASK [adlytaibi.sgws_config : Überprüfen, ob der Benutzer "Entwickler Test Benutzer" existiert] ********************
skipping: [localhost]
TASK [adlytaibi.sgws_config : Neuen Mandantenbenutzer "Entwickler Test Benutzer" erstellen] ***********************
skipping: [localhost]
TASK [adlytaibi.sgws_config : Passwort für Mandantenbenutzer "Entwickler Test Benutzer" setzen] ******************
skipping: [localhost]
TASK [adlytaibi.sgws_config : Überprüfen, ob der Benutzer "Apps Test Benutzer" existiert] *************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Neuen Mandantenbenutzer "Apps Test Benutzer" erstellen] *****************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Passwort für Mandantenbenutzer "Apps Test Benutzer" setzen] **************************
ok: [localhost]
TASK [adlytaibi.sgws_config : S3-Zugriffs-Schlüssel für Mandantenvariablen laden] *********************************
ok: [localhost]
TASK [adlytaibi.sgws_config : S3-Schlüssel generieren] ************************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Zielverzeichnis zur Speicherung der S3-Schlüssel] *************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Generierte S3-Schlüssel speichern] ****************************************************
changed: [localhost]
TASK [adlytaibi.sgws_config : Bucket für Mandantenvariablen laden] ***************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Einen Bucket erstellen] ****************************************************************
ok: [localhost]
PLAY RECAP **********************************************************************************************************
localhost : ok=53 changed=1 unreachable=0 failed=0 skipped=13 rescued=0 ignored=0
Verwendung von ansible-vault
Fühlen Sie sich frei, es nach Ihren Wünschen zu gestalten, dies dient nur als Ausgangspunkt.
Die Datei ~/.passwd
enthält das Passwort für den Vault.
# echo -n NetApp123 > ~/.passwd
Mit dem obigen Vault-Passwort können Sie jeden Wert verschlüsseln und in yml
-Dateien integrieren.
# 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
Wenn Sie die verschlüsselten Werte überprüfen möchten.
# cat vault.txt|ansible-vault decrypt --vault-password-file ~/.passwd
Decryption successful
netapp01
Hilfsskripte
Das Skripteverzeichnis, das sich in ~/.ansible/roles/adlytaibi.sgws_config/files/scripts
befindet, enthält die Dateien mgmt_ssl.cnf und stor_ssl.cnf zu Ihrer Bequemlichkeit. Ändern Sie diese so, dass sie mit Ihrer Grid-Verwaltungsoberfläche und Ihrem Gateway übereinstimmen.
Wechseln Sie in das Verzeichnis, in dem die SSL-Schlüssel gespeichert werden sollen. Führen Sie die beiden Skripte aus, die einen privaten Schlüssel und CSR erstellen.
# cd ~/.ansible/roles/adlytaibi.sgws_config/files
# scripts/mgmt_sign
# scripts/stor_sign
Nachdem Sie die SSL-Zertifikate signiert haben, benennen Sie sie entsprechend in mgmt_cert.pem und stor_cert.pem um und kopieren Sie sie in das Verzeichnis ~/.ansible/roles/adlytaibi.sgws_config/files
zusammen mit dem Chain-Bundle certnew.p7b
. Sie können nun das Skript bundle
ausführen, das die Kette von p7b nach pem konvertiert.
# scripts/bundle
Dies sind die Dateien, die von Ansible verwendet werden.
# chain.pem CA-Bundle
# mgmt_cert.pem Unterzeichnetes Zertifikat für API-Verwaltung
# mgmt_cert.key Privater Schlüssel für das obige Zertifikat
# stor_cert.pem Unterzeichnetes Zertifikat für Speicherverwaltung
# stor_cert.key Privater Schlüssel für das obige Zertifikat
Lizenz
GPL
Autoreninformationen
- Adly Taibi
ansible-galaxy install adlytaibi.sgws_config