我正在运行一个包含多个角色的游戏手册,目标是多个主机
目标是部署VM并使用它来部署应用程序。
我的剧本,有两个角色,使用" build_vm"角色我能够通过调试显示IP地址,但是当将ipaddr变量传递给第二个角色时,Ansible会抱怨该变量未定义
- hosts: linux
become: true
roles:
- build_vm
- tasks:
- debug: msg="{{ ipaddr }}"
- hosts: "{{ ipaddr }}"
roles:
- deploy_app
我已经使用了set_fact并遇到了同样的问题,我想知道我应该在这里使用什么?动态库存?我在网上搜索了稀疏的文档,但我找不到一个直观的例子。
答案 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