小编Mar*_*hev的帖子

如何使用执行期间生成的变量动态设置 Ansible playbook 中的主机字段?

我正在尝试使用 Ansible 提供的变量机制在家测试一些东西,我即将在我的工作项目之一中实现该机制。所以,现在已经搜索了一段时间,但似乎我无法让它那么容易地工作,即使到处都有其他人的解决方案。

我现在将通过在家中演示我的测试目录和文件结构来代表我的项目逻辑。情况如下,我有以下剧本:

main.yaml
pl1.yaml
pl2.yaml
Run Code Online (Sandbox Code Playgroud)

./main.yaml 的内容:

  - import_playbook: /home/martin/ansible/pl1.yaml
  - import_playbook: /home/martin/ansible/pl2.yaml
Run Code Online (Sandbox Code Playgroud)

./pl1.yaml 的内容:

- name: Test playbook 1
  hosts: localhost
  tasks:
  - name: Discovering the secret host
    shell: cat /home/martin/secret
    register: whichHostAd
  - debug:
      msg: "{{ whichHostAd.stdout }}"
  - name: Discovering my hostname
    shell: hostname
    register: myHostnameAd
  - set_fact:
      whichHost: "{{ whichHostAd.stdout }}"
      myHostname: "{{ myHostnameAd.stdout }}"
    cacheable: yes

- name: Test playbook 1 part 2
  hosts: "{{ hostvars['localhost']['ansible_facts']['whichHost'] }}"
  tasks:
  - name: Structuring info
    shell: …
Run Code Online (Sandbox Code Playgroud)

variables ansible ansible-awx devops

1
推荐指数
1
解决办法
3753
查看次数

标签 统计

ansible ×1

ansible-awx ×1

devops ×1

variables ×1