Ansible 在一个任务中不同的行填充到不同的域
我试图创建一个剧本,在/etc/hosts中插入行。 棘手的部分是——主机域的确切线路不同。 我以以下(工作)剧本结束,其中包含两项任务:Ansible 在一个任务中不同的行填充到不同的域,ansible,Ansible,我试图创建一个剧本,在/etc/hosts中插入行。 棘手的部分是——主机域的确切线路不同。 我以以下(工作)剧本结束,其中包含两项任务: - hosts: all tasks: - name: "Add line to /etc/hosts -UK" lineinfile: path=/etc/hosts line='192.168.1.2 hostname.uk.com' when: ansible_domain ==
- hosts: all
tasks:
- name: "Add line to /etc/hosts -UK"
lineinfile: path=/etc/hosts
line='192.168.1.2 hostname.uk.com'
when: ansible_domain == ".uk.com"
- name: "Add line to /etc/hosts -US"
lineinfile: path=/etc/hosts
line='192.168.255.255 hostname.us'
when: ansible_domain == "us"
但我就是不喜欢:)
当我有10个域名时,我该怎么办?
有没有一种方法可以创建一个只有一个任务的剧本来实现同样的效果 给你:
- hosts: all
vars:
my_mapping:
.uk.com:
ip: 192.168.1.2
fqdn: hostname.uk.com
us:
ip: 192.168.255.255
fqdn: hostname.us
tasks:
- name: Add line to /etc/hosts
lineinfile:
path: /etc/hosts
line: "{{ my_mapping[ansible_domain].ip }} {{ my_mapping[ansible_domain].fqdn }}"
- 创建字典以映射以域为键的值
- 请参阅模块参数中的字典值