针对本地脚本返回的主机名的ansible运行角色

时间:2019-05-16 16:26:45

标签: ansible

我有一个本地脚本,该脚本向我返回需要在其上进行安装的主机的名称。如何获取此脚本的结果并使用它来设置主机?这是我认为可以编写以实现此目的的那种代码的示例:

---
 - hosts: localhost
   roles:
    - getHostScript # running this sets a variable called hostname

 - hosts: "{{{hostvars.localhost.hostname}}"
   roles:
    - install # this runs the install script

正确的方法是什么?

1 个答案:

答案 0 :(得分:0)

使用add_host模块将新的主机添加到您的广告资源,然后在另一场比赛中将该主机作为目标:

---
- hosts: localhost
  roles:
    - getHostScript # running this sets a variable called hostname
  tasks:
    - name: add new host to inventory
      add_host:
        name: "{{ hostname }}"
        groups: target

- hosts: target
  roles:
   - install # this runs the install script

在这里,我要将新主机添加到名为target的组中,这样我就可以引用组名,而无需在接下来的播放中知道实际的主机名。