5.2. Satellite Ansible コレクションのモジュールを使用した Playbook の作成
Satellite Ansible Collection からの Ansible モジュールは、HTTPS 経由で Satellite API と通信できる必要があります。Playbook に、API への接続を有効にするために認証方法を指定するパラメーターを含めます。
ユーザー名とパスワードなどの機密認証情報は、Playbook または環境変数に直接保存しないでください。以下の例では、Ansible Vault を使用して機密データを管理します。
前提条件
- Satellite にユーザーアカウントがあり、Playbook で定義したアクションを実行する権限がある。
そのユーザーの認証情報として、以下のいずれかを利用できる。
- ユーザー名およびパスワード
- ユーザー名および Personal Access Token
Playbook の実行対象とするシステム。以下の例では
localhost
を使用しています。このシステムは Satellite API にアクセスできる必要があります。以下の中から選択できます。
- Satellite API に直接アクセスできるシステム。環境内の Satellite Server、Capsule Server、またはその他のシステムを使用できます。
- Satellite API に直接接続せず、HTTP プロキシーを使用して Satellite に接続するシステム。
手順
機密性の高い変数を暗号化されたファイルに保存します。
Ansible Vault を作成します。たとえば、My_Vault.yml という名前の vault を作成するには、以下を実行します。
ansible-vault create My_Vault.yml
$ ansible-vault create My_Vault.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ansible-vault create
コマンドでエディターが開いたら、必要なパラメーターを key: value 形式で入力します。Satellite のユーザー名とパスワードで認証する場合:
My_Username: My_Admin_User_Account My_Password: My_Admin_Password My_Server_URL: https://satellite.example.com
My_Username: My_Admin_User_Account My_Password: My_Admin_Password My_Server_URL: https://satellite.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Satellite ユーザー名と Personal Access Token (PAT) を使用して認証する場合:
My_Username: My_Admin_User_Account My_Password: My_PAT My_Server_URL: https://satellite.example.com
My_Username: My_Admin_User_Account My_Password: My_PAT My_Server_URL: https://satellite.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow HTTP プロキシーを使用して Satellite API にアクセスする場合は、そのプロキシーも vault に保存します。
My_HTTP_Proxy: "http://proxy.example.com:8080"
My_HTTP_Proxy: "http://proxy.example.com:8080"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 変更を保存してエディターを閉じます。Ansible は vault 内のデータを暗号化します。
vault ファイルを参照する Playbook ファイルを作成します。
注記次の YAML スニペットには、Playbook で使用される redhat.satellite.satellite グループのすべてのモジュールにボールト変数をパラメーターとして渡す
module_defaults
キーワードが含まれています。モジュールのデフォルトグループを使用すると、各モジュールにパラメーターを個別に渡すのではなく、モジュールのグループに共通のパラメーターを定義できるため、パラメーター管理が簡素化されます。Satellite API への認証方法を説明します。
Satellite のユーザー名とパスワード、または PAT で認証する場合は、
username
、password
、およびserver_url
パラメーターを My_Vault.yml の内容にマッピングします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow HTTP プロキシーを使用して Satellite API にアクセスする必要がある場合は、
https_proxy
環境変数を設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
tasks:
セクションで、Playbook が実行するタスクを定義します。
Playbook の構文を検証します。
ansible-playbook --syntax-check --ask-vault-pass My_Playbook.yml
$ ansible-playbook --syntax-check --ask-vault-pass My_Playbook.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは構文の検証のみを行うことに注意してください。設定が有効ではあるが、間違っている場合には、保護されません。
Playbook を実行します。
ansible-playbook --ask-vault-pass My_Playbook.yml
$ ansible-playbook --ask-vault-pass My_Playbook.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
例5.1 Ansible Playbook の例: Satellite にドメイン new.example.com
が存在することを確認する
redhat.satellite.domain
モジュールは、ドメインを作成、更新、および削除できます。このサンプル Playbook では、redhat.satellite.domain
を使用して、名前が new.example.com
のドメインが存在し、Satellite によって管理されていることを確認します。追加の例は、「Satellite Ansible Collection のモジュールに基づく Playbook の例」 を参照してください。
サンプル Playbook で指定されている設定は次のとおりです。
vars_files
-
My_Username
、My_Password
、およびMy_Server_URL
変数を保存する vault ファイルの名前です。 module_defaults
-
vault ファイルの変数を
username
、password
、およびserver_url
モジュールパラメーターにマッピングするモジュールデフォルトのグループ。 name
- Satellite 内に存在する必要があるドメインの名前。
詳細は、ansible-doc redhat.satellite.domain
の Ansible モジュールのドキュメントを参照してください。
関連情報
- Ansible vault の使用は、Ansible コミュニティードキュメント の Protecting sensitive data with Ansible vault を参照してください。
- モジュールのデフォルトの使用方法は、Ansible コミュニティードキュメント の モジュールのデフォルト を参照してください。