adlytaibi.sgws_config
sgws_config
Rola i moduły mają na celu skonfigurowanie systemu NetApp StorageGRID. Wykonywane zadania to:
Zagadnienia sieciowe:
- Autoryzacja do uzyskania tokena sieciowego
- Instalacja podpisanych certyfikatów SSL do zarządzania API
- Instalacja podpisanych certyfikatów SSL do zarządzania pamięcią
- Konfiguracja dostawcy tożsamości
- Tworzenie lokalnych lub federacyjnych grup administracyjnych dla sieci
- Tworzenie lokalnych użytkowników administracyjnych dla sieci
- Tworzenie nowego najemcy
Zagadnienia najemcy:
- Autoryzacja do uzyskania tokena najemcy (przy użyciu nowo utworzonego lub istniejącego identyfikatora konta)
- Konfiguracja dostawcy tożsamości dla najemcy
- Tworzenie lokalnych lub federacyjnych grup dla najemcy
- Tworzenie lokalnych użytkowników dla najemcy
- Generowanie kluczy S3 dla najemcy
- Tworzenie bucketu dla najemcy
Uwaga:
- Konfiguracja dostawcy tożsamości jest warunkiem wstępnym do tworzenia grup federacyjnych.
- Możliwość tworzenia grup federacyjnych i lokalnych w jednym kroku.
- Lokalne użytkownicy grupy federacyjnej będą ignorowani.
Wymagania
Zmienne roli
Zmienna do ustawienia dla roli znajduje się w roles/sgws_config/vars/main.yml
. Hasła i dane uwierzytelniające są wprowadzane przy użyciu ansible-vault lub przeczytaj poniżej. Inne zmienne znajdują się w roles/sgws_config/vars/
dla swoich odpowiednich zadań.
Zainstalowanie podpisanych certyfikatów SSL do zarządzania API wymaga trzech plików mgmt_cert.pem
, mgmt_cert.key
i chain.pem
, które muszą znajdować się w roles/sgws_config/files
. Pliki certyfikatów SSL dla Storage API to stor_cert.pem
, stor_cert.key
i chain.pem
. Dodałem skrypty pomocnicze przeczytaj poniżej.
Włącz lub wyłącz zagrzebania w roles/adlytaibi.sgws_config/tasks/main.yml
, komentując lub odkomentowując odpowiednie linie.
Ponieważ są zadania wstępne do wykonania przed użyciem niektórych zadań, domyślnie skrypty SSL i dostawcy tożsamości są zakomentowane.
Zależności
Brak zależności.
Jak
Obejrzyj wideo, jeśli wolisz (od wersji 1.1.x).
Przykład wykorzystywania
# ansible-playbook --vault-password-file ~/.passwd ~/.ansible/roles/adlytaibi.sgws_config/sgws_config.yml
PLAY [sgws] *********************************************************************************************************
TASK [adlytaibi.sgws_config : Uzyskaj token autoryzacji sieci] ****************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Załaduj zmienne grupy adminów] ******************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Tworzenie grup użytkowników i użytkowników sieci] ***********************************
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 : Sprawdź, czy grupa "Programiści" istnieje] *****************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Tworzenie nowej grupy administratorów "Programiści"] **********************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Tworzenie użytkowników przynależących do grupy] ***************************************
included: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_users.yml for localhost
TASK [adlytaibi.sgws_config : Załaduj zmienne lokalnych użytkowników administracyjnych] *****************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Tworzenie i ustawianie hasła dla użytkowników administracyjnych] ***********************
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 : Sprawdź, czy użytkownik "Programista Testowy" istnieje] *******************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Tworzenie nowego użytkownika administracyjnego "Programista Testowy"] *****************
ok: [localhost]
TASK [adlytaibi.sgws_config : Ustawianie hasła dla użytkownika administracyjnego "Programista Testowy"] ****************
ok: [localhost]
TASK [adlytaibi.sgws_config : Sprawdź, czy użytkownik "Testowy Użytkownik Pamięci" istnieje] ***********************
skipping: [localhost]
TASK [adlytaibi.sgws_config : Tworzenie nowego użytkownika administracyjnego "Testowy Użytkownik Pamięci"] **********
skipping: [localhost]
TASK [adlytaibi.sgws_config : Ustawianie hasła dla użytkownika administracyjnego "Testowy Użytkownik Pamięci"] ********
skipping: [localhost]
TASK [adlytaibi.sgws_config : Sprawdź, czy grupa "Storage" istnieje] ***********************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Tworzenie nowej grupy administratorów "Storage"] *************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Tworzenie użytkowników przynależących do grupy] ***************************************
included: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_users.yml for localhost
TASK [adlytaibi.sgws_config : Załaduj zmienne lokalnych użytkowników administracyjnych] *****************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Tworzenie i ustawianie hasła dla użytkowników administracyjnych] ***********************
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 : Sprawdź, czy użytkownik "Programista Testowy" istnieje] *******************************
skipping: [localhost]
TASK [adlytaibi.sgws_config : Tworzenie nowego użytkownika administracyjnego "Programista Testowy"] *****************
skipping: [localhost]
TASK [adlytaibi.sgws_config : Ustawianie hasła dla użytkownika administracyjnego "Programista Testowy"] ***************
skipping: [localhost]
TASK [adlytaibi.sgws_config : Sprawdź, czy użytkownik "Testowy Użytkownik Pamięci" istnieje] ***********************
ok: [localhost]
TASK [adlytaibi.sgws_config : Tworzenie nowego użytkownika administracyjnego "Testowy Użytkownik Pamięci"] **********
ok: [localhost]
TASK [adlytaibi.sgws_config : Ustawianie hasła dla użytkownika administracyjnego "Testowy Użytkownik Pamięci"] ********
ok: [localhost]
TASK [adlytaibi.sgws_config : Załaduj zmienne konta] ****************************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Zbieranie listy kont] ***************************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Sprawdzanie, czy konto "Widgets Unlimited" istnieje] **********************************
skipping: [localhost]
TASK [adlytaibi.sgws_config : Tworzenie nowego konta najemcy "Widgets Unlimited"] **********************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Uzyskaj token autoryzacji organizacji] ***********************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Załaduj zmienne grupy użytkowników najemcy] *********************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Tworzenie grup użytkowników i użytkowników najemcy] ***********************************
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 : Sprawdź, czy grupa najemcy "Programiści" istnieje] *************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Tworzenie nowej grupy najemcy "Programiści"] *********************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Tworzenie użytkowników przynależących do grupy] ***************************************
included: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_org_users.yml for localhost
TASK [adlytaibi.sgws_config : Załaduj zmienne lokalnych użytkowników najemcy] ***************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Tworzenie i ustawianie hasła dla użytkowników najemcy] *******************************
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 : Sprawdź, czy użytkownik "Programista Testowy" istnieje] *******************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Tworzenie nowego użytkownika najemcy "Programista Testowy"] ***************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Ustawianie hasła dla użytkownika najemcy "Programista Testowy"] ***********************
ok: [localhost]
TASK [adlytaibi.sgws_config : Sprawdź, czy użytkownik "Testowy Użytkownik Aplikacji" istnieje] **********************
skipping: [localhost]
TASK [adlytaibi.sgws_config : Tworzenie nowego użytkownika najemcy "Testowy Użytkownik Aplikacji"] ******************
skipping: [localhost]
TASK [adlytaibi.sgws_config : Ustawianie hasła dla użytkownika najemcy "Testowy Użytkownik Aplikacji"] *****************
skipping: [localhost]
TASK [adlytaibi.sgws_config : Sprawdź, czy grupa najemcy "Aplikacje" istnieje] ***************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Tworzenie nowej grupy najemcy "Aplikacje"] **********************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Tworzenie użytkowników przynależących do grupy] ***************************************
included: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_org_users.yml for localhost
TASK [adlytaibi.sgws_config : Załaduj zmienne lokalnych użytkowników najemcy] ***************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Tworzenie i ustawianie hasła dla użytkowników najemcy] *******************************
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 : Sprawdź, czy użytkownik "Programista Testowy" istnieje] *******************************
skipping: [localhost]
TASK [adlytaibi.sgws_config : Tworzenie nowego użytkownika najemcy "Programista Testowy"] ***************************
skipping: [localhost]
TASK [adlytaibi.sgws_config : Ustawianie hasła dla użytkownika najemcy "Programista Testowy"] ***********************
skipping: [localhost]
TASK [adlytaibi.sgws_config : Sprawdź, czy użytkownik "Testowy Użytkownik Aplikacji" istnieje] **********************
ok: [localhost]
TASK [adlytaibi.sgws_config : Tworzenie nowego użytkownika najemcy "Testowy Użytkownik Aplikacji"] ******************
ok: [localhost]
TASK [adlytaibi.sgws_config : Ustawianie hasła dla użytkownika najemcy "Testowy Użytkownik Aplikacji"] *****************
ok: [localhost]
TASK [adlytaibi.sgws_config : Załaduj zmienne dostępu S3 dla najemcy] ***********************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Generowanie kluczy S3] *****************************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Katalog docelowy do przechowywania kluczy S3] ******************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Zapisywanie wygenerowanych kluczy S3] ******************************************************
changed: [localhost]
TASK [adlytaibi.sgws_config : Załaduj zmienne bucketu dla najemcy] ***********************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Tworzenie bucketu] *****************************************************************
ok: [localhost]
PLAY RECAP **********************************************************************************************************
localhost : ok=53 changed=1 unreachable=0 failed=0 skipped=13 rescued=0 ignored=0
Użycie ansible-vault
Czuj się swobodnie, aby dostosować do własnych potrzeb, poniżej znajdziesz tylko wprowadzenie.
Plik ~/.passwd
zawiera hasło do skarbca.
# echo -n NetApp123 > ~/.passwd
Używając powyższego hasła do skarbca, możesz zaszyfrować dowolną wartość i włączyć ją do plików 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
Jeśli chcesz zweryfikować zaszyfrowane wartości.
# cat vault.txt|ansible-vault decrypt --vault-password-file ~/.passwd
Decryption successful
netapp01
Skrypty pomocnicze
Katalog skryptów znajduje się w ~/.ansible/roles/adlytaibi.sgws_config/files/scripts
i zawiera pliki mgmt_ssl.cnf i stor_ssl.cnf dla Twojej wygody, zmodyfikuj je w celu dopasowania do interfejsu zarządzania Grid i swojej bramy.
Przejdź do katalogu, w którym będą przechowywane klucze SSL. Wykonaj dwa skrypty, które utworzą klucz prywatny i CSR.
# cd ~/.ansible/roles/adlytaibi.sgws_config/files
# scripts/mgmt_sign
# scripts/stor_sign
Po podpisaniu certyfikatów SSL, upewnij się, że zmienisz ich nazwy na mgmt_cert.pem i stor_cert.pem odpowiednio, a następnie skopiuj je do katalogu ~/.ansible/roles/adlytaibi.sgws_config/files
wraz z łańcuchem certnew.p7b
. Możesz teraz wykonać skrypt bundle
, który przekonwertuje łańcuch z p7b na pem.
# scripts/bundle
To są pliki, które będą używane przez Ansible.
# chain.pem CA bundle
# mgmt_cert.pem Podpisany certyfikat do zarządzania API
# mgmt_cert.key Klucz prywatny dla powyższego certyfikatu
# stor_cert.pem Podpisany certyfikat do zarządzania pamięcią
# stor_cert.key Klucz prywatny dla powyższego certyfikatu
Licencja
GPL
Informacje o autorze
- Adly Taibi
ansible-galaxy install adlytaibi.sgws_config