12

ネットワーク設定を再構成する Ansible の新しいマシン用のブートストラップ プレイブックを作成したいと考えています。最初の実行時に、ターゲット マシンには DHCP によって割り当てられたアドレスが割り当てられます。

プレイブックを実行することになっているユーザーは、新しいマシンの割り当てられた IP アドレスを知っています。ユーザーに値を要求したいと思います。

vars_promptモジュールはユーザーからの入力を許可しますが、hostsセクションで定義されているため、ホストアドレスが必要な値として効果的に防止されます。

インベントリ ファイルを変更するラッパー スクリプトを使用せずに可能ですか?

4

4 に答える 4

6

代わりに渡すことができますextra-vars

hostsセクションを次のような変数{{ hosts_prompt }}にしてから、次のようにコマンド ラインでホストを渡すだけです。

ansible-playbook -i inventory/environment playbook.yml --extra-vars "hosts_prompt=192.168.1.10"

または、デフォルトのインベントリ ファイルの場所を使用している場合は、次の/etc/ansible/hostsように単純に使用できます。

ansible-playbook playbook.yml --extra-vars "hosts_prompt=192.168.1.10"
于 2015-10-14T07:32:30.813 に答える
3

免責事項:受け入れられた回答は、問題に対する最良の解決策を提供します。これは機能していますが、ハックに基づいているため、参照として残します。

/パラメータの値をホストのアドホックリストに変換する、現在文書化されていないハック(投稿を指摘してくれたBruce Pの功績)を使用できることがわかりました(参照)。ホスト名/IP アドレスと末尾のスペース (以下のように) だけで、インベントリ ファイルが存在する必要のない単一のホストを参照します。-i--inventory

指示:

ansible-playbook -i "192.168.1.21," playbook.yml

したがってplaybook.yml、すべてのホストに対して実行できます (上記の例では、単一のホストと同じになります192.168.1.21)。

- hosts: all 

リストには複数の IP アドレスが含まれている可能性があります-i "192.168.1.21,192.168.1.22"

于 2015-10-26T14:20:12.550 に答える