在 ansible 中为下一组更改组变量

Change group vars in ansible for next group

我有这样的库存:

[app]
10.10.10.10

[web]
10.10.10.11

还有一本剧本:

- hosts: all
  tasks:
    - name: Change ssh port
    .....

- hosts: web
  tasks:
    - name: Some other stuff

第二次播放失败,因为第一次 ssh 端口更改了,我该如何将此更改传递给第二次播放?

谢谢!

您可以在清单中定义自定义端口:

[app]
10.10.10.10
[web]
10.10.10.11
[all:vars]
ansible_port=10022

并且在您的剧本中 运行 第一个使用标准端口硬编码的剧本:

- hosts: all
  vars:
    ansible_port: 22
  tasks:
    - name: Change ssh port
    .....

- hosts: web
  tasks:
    - name: Some other stuff

这样 Ansible 将在第一次播放时通过 22 端口连接到主机,在第二次播放时通过 10022 端口连接到主机。