Ansible:跨主机块的set_fact变量

时间:2018-05-30 11:40:17

标签: ansible ansible-facts ansible-template

不重复: 这与访问其他主机的yaml数据不同,如here所述。这是在执行期间设置我自己的变量,并希望以后访问它

我正在使用ansible-playbook在2个vm池上执行某项任务。

假设我在vms1池中只有一个主机。 我尝试动态地从该系统获取主机名,并且我希望在同一文件中的另一个hosts块中重用相同的变量。

我收到的错误是,

  

失败! => {“msg”:“任务包含一个未定义的选项   变量。 错误是:'myHostname'未定义

我的playbook yml文件看起来有点像这样,

- hosts: vms1
  tasks:
    - name: Getting hostname
      shell: hostname
      register: shellOutput

    - set_fact:
        myHostname: "{{ shellOutput.stdout }}"

- hosts: vms2
  tasks:
    - name: Pinging
      shell: "ping {{ myHostname }} -n 2 >> /tmp/otherHosts.txt"

0 个答案:

没有答案