我正在使用 Ansible 和 PowerShell 脚本为 Windows 服务器上的软件设置集群。设置包括安装和配置。
我使用 Starfleet 门户来运行作业,我们将逗号分隔的主机名存储在 Jinja 文件 (InputHosts.j2) 中。例如主机名 1、主机名 2、主机名 3。主机名可以是 2 个或更多。截至目前,我只使用两个主机
我将主机名存储在 ansible 变量中
vars:
file_contents: "{{lookup('file', './files/InputHosts.j2')}}"
central: "{{ file_contents.split(',')[0] }}"
rim: "{{ file_contents.split(',')[1] }
我为上面提到的每个步骤创建了一个单独的剧本,每个剧本都在调用 powershell 脚本。
我为每个步骤 1、2、3 和 4 定义了角色,我在我的主要剧本中调用这些角色,如下所示。我在 InputHosts.j2 中提到的所有服务器上运行主剧本
- hosts: all
vars_files:
- vars/vault_vars.yml
- vars/automation.yml
roles:
- { role: central, when: "ansible_nodename == central" }
- { role: license, when: "ansible_nodename == central" }
- { role: rim, when: ansible_nodename != central and ansible_nodename in file_contents }
- { role: addrim, when: ansible_nodename != central and ansible_nodename in file_contents }
问题:
我不知道如何在从节点上等待安装,直到在步骤3中提到的主节点上启用许可证