Ansible动态库存

时间:2016-10-21 17:12:37

标签: ansible ansible-playbook

我正在运行一个包含多个角色的游戏手册,目标是多个主机

目标是部署VM并使用它来部署应用程序。

我的剧本,有两个角色,使用" build_vm"角色我能够通过调试显示IP地址,但是当将ipaddr变量传递给第二个角色时,Ansible会抱怨该变量未定义

- hosts: linux
  become: true

  roles:
  - build_vm

    - tasks:
       - debug: msg="{{ ipaddr }}"      

- hosts: "{{ ipaddr }}"
  roles:
  - deploy_app

我已经使用了set_fact并遇到了同样的问题,我想知道我应该在这里使用什么?动态库存?我在网上搜索了稀疏的文档,但我找不到一个直观的例子。

1 个答案:

答案 0 :(得分:2)

使用add_host的方法有很多种。在此示例中,我将新主机添加到组中,并在以后的播放中使用它。

- hosts: linux
  become: true

  roles:
  - build_vm

    - tasks:
       - debug: msg="{{ ipaddr }}"  
       - name: Add ipaddr to host inventory
         add_host: name="{{ ipaddr }}" group=NewHostGroup    

- hosts: NewHostGroup
  roles:
  - deploy_app