Ansible: プロンプトの役割変数

Ansible: プロンプトの役割変数

基本的に、次のような単純なansibleプレイブックがあります(単純化)。setup.yml

- hosts: my-server-to-setup
  remote_user: [REDACTED]
  become: yes
  #vars_prompt:
  #  - name: "zbxusername"
  #    prompt: "Zabbix Username"
  #    private: no    
  #  - name: "zbxpw"
  #     prompt: "Zabbix Passwort"
  #     private: yes
      roles:
       - basic
  #     - zabbix

このzabbix役割には、zabbixホストサーバーにアクセスするにはユーザー名とパスワードが必要です。資格情報は異なり、各ユーザーには独自のアカウントがあります。

役割をインストールするには、役割内でメッセージを表示することは許可されていないため、そのセクションのzabbixコメントを外す必要があります。vars_promptansible

もっと良い方法がありますか?現在のアプローチでは、重要な変数を未定義のままにしておくことができ、プレイブックが失敗する可能性があります。

ベストアンサー1

スクリプトの作成top.ymlインポートスクリプトbasic.ymlそしてzabix.yml。インポートしたプレイブックを選択的に実行するには、タグを使用してください。

ansible-playbook -t basic top.yml
ansible-playbook -t zabix top.yml

スクリプトtop.yml

- name: Run basic
  import_playbook: basic.yml
  tags: [basic, never]

- name: Run zabix
  import_playbook: zabix.yml
  tags: [zabix, never]

basic.ymlスクリプト

- hosts: my-server-to-setup
  remote_user: [REDACTED]
  become: yes
  roles:
    - basic

scriptzabix.yml

- hosts: my-server-to-setup
  remote_user: [REDACTED]
  become: yes
  vars_prompt:
    - name: "zbxusername"
      prompt: "Zabbix Username"
      private: no    
    - name: "zbxpw"
      prompt: "Zabbix Passwort"
      private: yes
  roles:
    - zabbix

ノート

商標never誤って両方の役割を実行するのを防ぐのに役立ちます。タグを指定しないと、インポートしたプレイブックは実行されません。次のコマンドは何もしません。

ansible-playbook top.yml

おすすめ記事