adlytaibi.sgws_config
sgws_config
この役割とモジュールは、NetApp StorageGRIDを構成するためのものです。以下のタスクを実行できます。
グリッド操作:
- グリッドトークンを取得するための認証
- API管理用の署名済みSSL証明書のインストール
- ストレージ管理用の署名済みSSL証明書のインストール
- IDプロバイダーの設定
- グリッド用のローカルまたはフェデレートされた管理グループの作成
- グリッド用のローカル管理ユーザーの作成
- 新しいテナントの作成
テナント操作:
- テナントトークンを取得するための認証(新しく作成したまたは既存のアカウントIDを使用)
- テナント用のIDプロバイダーの設定
- テナント用のローカルまたはフェデレートグループの作成
- テナント用のローカルユーザーの作成
- テナント用のS3キーの生成
- テナント用のバケットの作成
注意:
- IDプロバイダーの設定は、フェデレートグループを作成するための前提条件です。
- 一度にフェデレートグループとローカルグループを作成することができます。
- フェデレートグループのローカルユーザーは無視されます。
要件
役割変数
役割に設定可能な変数はroles/sgws_config/vars/main.yml
にあります。パスワードや認証情報はansible-vaultを使用して組み込まれています。その他の変数は、それぞれのタスクに対してroles/sgws_config/vars/
にあります。
署名済みAPI管理用SSL証明書をインストールするには、mgmt_cert.pem
、mgmt_cert.key
、およびchain.pem
の3つのファイルがroles/sgws_config/files
に存在する必要があります。ストレージAPIのSSL証明書ファイルはstor_cert.pem
、stor_cert.key
、およびchain.pem
です。ヘルパースクリプトも追加しました下記を参照。
roles/adlytaibi.sgws_config/tasks/main.yml
内のプレイを有効または無効にするには、該当の行をコメントアウトまたはコメント解除してください。
一部のプレイを使用する前に事前の作業が必要であるため、SSL証明書およびIDプロバイダープレイはデフォルトでコメントアウトされています。
依存関係
依存関係はありません。
使い方
ビデオを見る、バージョン1.1.xの時点で。
例のプレイブック
# ansible-playbook --vault-password-file ~/.passwd ~/.ansible/roles/adlytaibi.sgws_config/sgws_config.yml
PLAY [sgws] *********************************************************************************************************
TASK [adlytaibi.sgws_config : グリッド認証トークンを取得する] *********************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : 管理グループの変数をロードする] ***********************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : グリッドユーザーグループとユーザーを作成する] ****************************************************
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 : "Developers"グループが存在するか確認する] ***************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : 新しい管理者 "Developers"グループを作成する] *****************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : グループの一部であるユーザーを作成する] *******************************************************
included: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_users.yml for localhost
TASK [adlytaibi.sgws_config : ローカル管理ユーザーの変数をロードする] ****************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : 管理ユーザーのパスワードを作成して設定する] **********************************************
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 : "Developer Test User"ユーザーが存在するか確認する] *******************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : 新しい管理者ユーザー "Developer Test User"を作成する] **********************************
ok: [localhost]
TASK [adlytaibi.sgws_config : 管理者ユーザー "Developer Test User"のパスワードを設定する] ****************************
ok: [localhost]
TASK [adlytaibi.sgws_config : "Storage Test User"ユーザーが存在するか確認する] *********************************************
skipping: [localhost]
TASK [adlytaibi.sgws_config : 新しい管理者ユーザー "Storage Test User"を作成する] ************************************
skipping: [localhost]
TASK [adlytaibi.sgws_config : 管理者ユーザー "Storage Test User"のパスワードを設定する] ******************************
skipping: [localhost]
TASK [adlytaibi.sgws_config : "Storage"グループが存在するか確認する] ******************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : 新しい管理者 "Storage"グループを作成する] ********************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : グループの一部であるユーザーを作成する] *******************************************************
included: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_users.yml for localhost
TASK [adlytaibi.sgws_config : ローカル管理ユーザーの変数をロードする] ****************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : 管理ユーザーのパスワードを作成して設定する] **********************************************
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 : "Developer Test User"ユーザーが存在するか確認する] *******************************************
skipping: [localhost]
TASK [adlytaibi.sgws_config : 新しい管理者ユーザー "Developer Test User"を作成する] **********************************
skipping: [localhost]
TASK [adlytaibi.sgws_config : 管理者ユーザー "Developer Test User"のパスワードを設定する] ****************************
skipping: [localhost]
TASK [adlytaibi.sgws_config : "Storage Test User"ユーザーが存在するか確認する] *********************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : 新しい管理者ユーザー "Storage Test User"を作成する] ************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : 管理者ユーザー "Storage Test User"のパスワードを設定する] ******************************
ok: [localhost]
TASK [adlytaibi.sgws_config : アカウント変数をロードする] ***************************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : アカウントリストを収集する] *****************************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : アカウント "Widgets Unlimited"が存在するか確認する] ****************************************
skipping: [localhost]
TASK [adlytaibi.sgws_config : 新しいストレージテナントアカウント "Widgets Unlimited"を作成する] ********************************
ok: [localhost]
TASK [adlytaibi.sgws_config : 組織認証トークンを取得する] **********************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : テナントのユーザーグループの変数をロードする] ***************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : テナントのユーザーグループとユーザーを作成する] ************************************************
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 : テナントのグループ "Developers"が存在するか確認する] ******************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : 新しいテナントの "Developers"グループを作成する] ***********************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : グループの一部であるユーザーを作成する] *******************************************************
included: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_org_users.yml for localhost
TASK [adlytaibi.sgws_config : ローカルテナントユーザーの変数をロードする] *************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : テナントのユーザーのパスワードを作成して設定する] *******************************************
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 : "Developer Test User"ユーザーが存在するか確認する] *******************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : 新しいテナントユーザー "Developer Test User"を作成する] *****************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : テナントユーザー "Developer Test User"のパスワードを設定する] ***********************************
ok: [localhost]
TASK [adlytaibi.sgws_config : "Apps Test User"ユーザーが存在するか確認する] ************************************************
skipping: [localhost]
TASK [adlytaibi.sgws_config : 新しいテナントユーザー "Apps Test User"を作成する] **********************************************
skipping: [localhost]
TASK [adlytaibi.sgws_config : テナントユーザー "Apps Test User"のパスワードを設定する] ****************************************
skipping: [localhost]
TASK [adlytaibi.sgws_config : テナントのグループ "Apps"が存在するか確認する] ************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : 新しいテナントの "Apps"グループを作成する] *****************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : グループの一部であるユーザーを作成する] *******************************************************
included: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_org_users.yml for localhost
TASK [adlytaibi.sgws_config : ローカルテナントユーザーの変数をロードする] *************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : テナントのユーザーのパスワードを作成して設定する] *******************************************
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 : "Developer Test User"ユーザーが存在するか確認する] *******************************************
skipping: [localhost]
TASK [adlytaibi.sgws_config : 新しいテナントユーザー "Developer Test User"を作成する] *****************************************
skipping: [localhost]
TASK [adlytaibi.sgws_config : テナントユーザー "Developer Test User"のパスワードを設定する] ***********************************
skipping: [localhost]
TASK [adlytaibi.sgws_config : "Apps Test User"ユーザーが存在するか確認する] ************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : 新しいテナントユーザー "Apps Test User"を作成する] **********************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : テナントユーザー "Apps Test User"のパスワードを設定する] ****************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : テナント変数のS3アクセスキーをロードする] **********************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : S3キーを生成する] *********************************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : S3キーを保存するディレクトリ] ***********************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : 生成したS3キーを保存する] ***************************************************************
changed: [localhost]
TASK [adlytaibi.sgws_config : テナント変数のバケットをロードする] *****************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : バケットを作成する] **********************************************************************
ok: [localhost]
PLAY RECAP **********************************************************************************************************
localhost : ok=53 changed=1 unreachable=0 failed=0 skipped=13 rescued=0 ignored=0
ansible-vaultの使用法
自由に自分のものにして構いませんが、これはあくまでスタートのためのものです。
ファイル~/.passwd
は、ボルトのパスワードを含みます。
# echo -n NetApp123 > ~/.passwd
上記のボルトパスワードを使用して、任意の値を暗号化し、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
暗号化された値を確認したい場合。
# cat vault.txt|ansible-vault decrypt --vault-password-file ~/.passwd
復号化に成功しました
netapp01
ヘルパースクリプト
スクリプトディレクトリは、~/.ansible/roles/adlytaibi.sgws_config/files/scripts
にあり、管理用SSL証明書(mgmt_ssl.cnf)とストレージ用SSL証明書(stor_ssl.cnf)のファイルがあります。これらを修正して、グリッド管理インターフェイスおよびゲートウェイに適合させてください。
SSLキーを保存するディレクトリに移動し、プライベートキーとCSRを作成する2つのスクリプトを実行します。
# cd ~/.ansible/roles/adlytaibi.sgws_config/files
# scripts/mgmt_sign
# scripts/stor_sign
SSL証明書に署名が完了したら、それぞれをmgmt_cert.pem
およびstor_cert.pem
にリネームし、~/.ansible/roles/adlytaibi.sgws_config/files
ディレクトリにチェーンバンドルcertnew.p7b
と一緒にコピーしてください。次に、p7bからpemに変換するbundle
スクリプトを実行します。
# scripts/bundle
これらはAnsibleで使用するファイルです。
# chain.pem CAバンドル
# mgmt_cert.pem API管理用の署名済み証明書
# mgmt_cert.key 上記証明書用のプライベートキー
# stor_cert.pem ストレージ管理用の署名済み証明書
# stor_cert.key 上記証明書用のプライベートキー
ライセンス
GPL
著者情報
- Adly Taibi
ansible-galaxy install adlytaibi.sgws_config