1、编写pillar,根据不同版本匹配需要同步的文件名
# vim /srv/pillar/yum/init.sls
files:
{% if grains['osmajorrelease'] == '5' %}
base: CentOs_5.11.repo
saltstack: saltstack-rhel5.repo
{% elif grains['osmajorrelease'] == '6' %}
base: rhel-server-6.6.repo
saltstack: saltstack-rhel6.repo
{% endif %}
# cat /srv/pillar/top.sls
base:
'*':
- vhost
- yum
2、根据pillar返回文件名,在指定目录匹配文件同步
# vim /srv/salt/init/yum.sls/etc/yum.repos.d/{{ pillar['files']['base'] }} :
file.managed:
- source: salt://init/files/{{ pillar['files']['base'] }}
/etc/yum.repos.d/{{ pillar['files']['saltstack'] }} :
file.managed:
- source: salt://init/files/{{ pillar['files']['saltstack'] }}
3、编写init.sls
# vim /srv/salt/init/init.sls
include:
- init.yum
4、执行测试命令查看
# salt -L 'slave01,kbsonlong' state.sls init.yum test=True
slave01:
----------
ID: /etc/yum.repos.d/rhel-server-6.6.repo
Function: file.managed
Result: None
Comment: The file /etc/yum.repos.d/rhel-server-6.6.repo is set to be changed
Started: 14:39:10.142633
Duration: 45.558 ms
Changes:
----------
ID: /etc/yum.repos.d/saltstack-rhel6.repo
Function: file.managed
Result: None
Comment: The file /etc/yum.repos.d/saltstack-rhel6.repo is set to be changed
Started: 14:39:10.188461
Duration: 4.233 ms
Changes:
Summary for slave01
------------
Succeeded: 2 (unchanged=2)
Failed: 0
------------
Total states run: 2
Total run time: 49.791 ms
kbsonlong:
----------
ID: /etc/yum.repos.d/CentOs_5.11.repo
Function: file.managed
Result: None
Comment: The file /etc/yum.repos.d/CentOs_5.11.repo is set to be changed
Started: 14:36:51.961683
Duration: 130.673 ms
Changes:
----------
ID: /etc/yum.repos.d/saltstack-rhel5.repo
Function: file.managed
Result: None
Comment: The file /etc/yum.repos.d/saltstack-rhel5.repo is set to be changed
Started: 14:36:52.092626
Duration: 15.437 ms
Changes:
Summary for kbsonlong
------------
Succeeded: 2 (unchanged=2)
Failed: 0
------------
Total states run: 2
Total run time: 146.110 ms