1. ホーム
  2. ansible

[解決済み] Ansible playbook の hosts 変数をコマンドラインからオーバーライドする

2022-06-22 02:47:18

質問

これは私が使っているプレイブックの断片です( server.yml ):

- name: Determine Remote User
  hosts: web
  gather_facts: false
  roles:
    - { role: remote-user, tags: [remote-user, always] }

私のhostsファイルには、例えば、異なるサーバーのグループがあります。

[web]
x.x.x.x

[droplets]
x.x.x.x

次に ansible-playbook -i hosts/<env> server.yml を実行し hosts: web から server.yml に対してこのプレイブックを実行するために [droplets] .

を編集せずに、一度だけオーバーライドすることは可能ですか? server.yml を直接編集することなく、一度だけ上書きすることはできますか?

ありがとうございます。

どのように解決するのですか?

Ansibleはこの機能を提供するべきだと思いますが、提供していません。ここで、あなたができることがあります。

hosts: "{{ variable_host | default('web') }}"

を渡すと variable_host をコマンドラインから、あるいは vars ファイルから渡すことができます。

ansible-playbook server.yml --extra-vars "variable_host=newtarget(s)"