web-dev-qa-db-ja.com

タスク名にansible use inventory_hostnameまたはansible_hostname

私はローリングアップグレードプレイブックを書いており、アップグレードされた現在のホストのホスト名を印刷したいと思います。

置いた inventory_hostnameおよびansible_hostnameタスク名に含まれていますが、機能しませんでした

- name: upgrade softare on {{inventory_hostname}}
- name: current Host is {{ansible_hostname}}

デバッグは正常に動作します

- name: Test a variable
  debug: var=inventory_hostname

TASK: [Test a variable] ******************************************************* 
ok: [SERV14] => {
    "var": {
        "inventory_hostname": "SERV14"
    }
}

したがって、タスク名の説明でこれらの変数を使用できるようにするにはどうすればよいですか。

ありがとう

20
Ask and Learn

Ansibleはv2.0以降、タスク/ハンドラー名の変数置換をサポートしています: https://github.com/ansible/ansible/issues/10347 なので、これらの例は期待どおりに機能します。

- name: upgrade software on {{inventory_hostname}}
- name: current Host is {{ansible_hostname}}
30
anlar

{{ ansible_hostname }} 後に tasks:、それ以前はまだ事実を収集していないため、結果を出すことができません。コンセプトは間違っているかもしれませんが、実際には成功しました。

tasks:
  - name: Install the httpd on {{ ansible_hostname }}
    yum: 
      name: httpd 
      state: latest

playbook

play output

0
pranav kumar