基本的に、次のような単純な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_prompt
ansible
もっと良い方法がありますか?現在のアプローチでは、重要な変数を未定義のままにしておくことができ、プレイブックが失敗する可能性があります。
答え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