Ansible hostsファイルで定義されている現在のマシンのホスト名を取得するにはどうすればよいですか?


166

いくつかのサーバーをセットアップするために、Ansibleプレイブックをセットアップしています。現在のホストが私のローカルdevホストであり、私のhostsファイルで「local」という名前の場合にのみ実行したいタスクがいくつかあります。これどうやってするの?ドキュメントのどこにも見つかりません。

私はこのwhenステートメントを試しましたansible_hostnameが、ホストファイルで定義したホスト名ではなく、マシンの作成時に生成されたホスト名に解決されるため、失敗します。

- name: Install this only for local dev machine
  pip: name=pyramid
  when: ansible_hostname == "local"

回答:



2

インベントリの特別なホストラベル「ローカル」に依存せずに、プレイのホストヘッダーを変更することで、プレイブックの範囲を制限できます。Localhostはインベントリに特別な行を必要としません。

- name: run on all except local
  hosts: all:!local

hosts: !localhostたぶん、たとえば、--limit '!dev'うまくいく
ティムディエル

0

これは代替手段です:

- name: Install this only for local dev machine
  pip: name=pyramid
  delegate_to: localhost
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.