我试图创建一个剧本来将行插入到/ 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 == ".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个域名时,我该怎么办? 有没有一种方法可以创建仅需完成一项任务的剧本?
答案 0 :(得分:0)
您在这里:
- 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 }}"