Ansible 动态库存

Ansible Dynamic Inventory

我是 运行 一个包含多个角色的剧本,目标是多个主机

目标是部署一个 VM 并使用它的 IP 来部署一个应用程序。

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

- hosts: linux
  become: true

  roles:
  - build_vm

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

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

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

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