|
起因:
阿里云新扩容一批机器,要对上面的flume配置做修改
之前的inventory是这样子的
[user@vip10-ali-tj-console host_vars]$ sdiff vip10-ali-tj-mm10.yml vip10-ali-tj-mm11.yml
------
hostname: vip10-ali-tj-mm10 |hostname: vip10-ali-tj-mm11
monit_ipaddr: "{{ hostname }}"monit_ipaddr: "{{ hostname }}"
machineid: 590 |machineid: 591
platformname: vip10platformname: vip10
mm_version: 16.09.1mm: 16.09.1
lvm_create:lvm_create:
- vg: "data" - vg: "data"
pv: "/dev/vdb" pv: "/dev/vdb"
lv: "apps" lv: "apps"
mount_point: "/data" mount_point: "/data"
[user@vip10-ali-tj-console host_vars]$ cat ../vip10.yml |grep mm
[mm]
vip10-ali-tj-mm10:22
vip10-ali-tj-mm11:22
对上面做一下说明
定义了一个主机组叫mm,这个组下面有两台机器
上面的host_vars分别对每台机器做了配置,其实可以看到配置大部分都相同, 我用sdiff都列出来了,就两个地方不同
所以就要思考了,我要是扩容100台机器,难不成我要生成100个文件...
下面是经过改良过的
在host_vars中用一个模板文件代替每个主机一份配置的方法
[user@vip10-ali-tj-console host_vars]$ cat mm.yml
---
hostname: {{ inventory_hostname }}
monit_ipaddr: "{{ hostname }}"
machineid: {{ hostvars[inventory_hostname].machineid }}
platformname: vip10
mm_version: 16.08.6
lvm_create:
- vg: "data"
pv: "/dev/vdb"
lv: "apps"
mount_point: "/data"
在主机定义文件中设置主机的个性化参数
[user@vip10-ali-tj-console host_vars]$ cat ../vip10.yml |grep mm
[mm]
vip10-ali-tj-mm-10:22 machineid=580
vip10-ali-tj-mm-11:22 machineid=581
然后就可以愉快的测试了,先跑一台看看效果
ansible-playbook -i inventory/vip10/vip10.yml playbooks/vip10/flume/mm.yml --limit vip10-ali-tj-mm-10
Done. |
|
|