我有一本剧本,将发行版本复制到Jumphosts
,并准备配置文件以部署在远程服务器上。
问题:import_playbook
无法与delegate_to
一起使用。如何在Jumphost
上运行带有生成的主机和发行版中的剧本的剧本?
更新:我无法控制Jumphost
,并且不能使用ssh转发。
Q:“如何使用发行版中生成的主机和剧本在'Jumphost'上运行剧本?”
A:可以使用模块add_host
创建动态库存组。例如,假设我们要部署所有运行Ubuntu Disco的Intranet主机。
创建库存
$ cat hosts
Host1 ansible_host=10.11.0.3
Host2 ansible_host=10.11.0.4
Host3 ansible_host=10.11.0.5
Host4 ansible_host=10.11.0.6
创建剧本以部署组my_ubuntu_disco_group
中的主机
$ cat deploy-Ubuntu-disco.yaml
- hosts: my_ubuntu_disco_group
tasks:
- debug:
var: inventory_hostname
运行一个创建动态组并导入该剧本的剧本。
- hosts: all
tasks:
- add_host:
name: "{{ item }}"
groups: my_ubuntu_disco
loop: "{{ groups.all }}"
when:
- hostvars[item].ansible_distribution == 'Ubuntu'
- hostvars[item].ansible_distribution_release == 'disco'
run_once: true
- import_playbook: deploy-Ubuntu-disco.yaml