这里举几个简单的例子来记录一下sls文件的两种调用方式,仅用以记录。
1、分发/etc/hosts文件
1)准备sls文件
[root@salt-master base]# vim hosts.sls[root@salt-master base]# cat hosts.sls /etc/hosts: file.managed: - source: salt://testfiles/hosts - user: root - group: root - mode: 644[root@salt-master base]# vi top.sls [root@salt-master base]# cat top.sls base: 'salt-minion02.contoso.com': - hosts[root@salt-master base]# mkdir testfiles[root@salt-master base]# cp /etc/hosts testfiles/[root@salt-master base]# ll total 12-rw-r--r-- 1 root root 116 Jun 5 14:59 hosts.slsdrwxr-xr-x 2 root root 4096 Jun 5 14:59 testfiles-rw-r--r-- 1 root root 49 Jun 5 15:00 top.sls[root@salt-master base]# tree .├── hosts.sls├── testfiles│ └── hosts└── top.sls1 directory, 3 files
2)使用state.highstate调用
注意:使用state.highstate调用的前提是存在top.sls文件,因此需要提前写好top.sls文件。
[root@salt-master base]# salt 'salt-minion02.contoso.com' state.highstatesalt-minion02.contoso.com:---------- ID: /etc/hosts Function: file.managed Result: True Comment: File /etc/hosts updated Started: 15:01:50.762485 Duration: 14.93 ms Changes: ---------- diff: --- +++ @@ -1,5 +1,5 @@ 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 -192.168.49.100 salt-master salt-master.contoso.com -192.168.49.101 salt-minion01 salt-minion01.contoso.com -192.168.49.102 salt-minion02 salt-minion02.contoso.com +192.168.49.100 salt-master salt-master.contoso.com +192.168.49.101 salt-minion01 salt-minion01.contoso.com +192.168.49.102 salt-minion02 salt-minion02.contoso.comSummary------------Succeeded: 1 (changed=1)Failed: 0------------Total states run:
1
3)使用state.sls调用
[root@salt-master base]# salt 'salt-minion02.contoso.com' state.sls hostssalt-minion02.contoso.com:---------- ID: /etc/hosts Function: file.managed Result: True Comment: File /etc/hosts is in the correct state Started: 15:05:56.276074 Duration: 8.149 ms Changes: Summary------------Succeeded: 1Failed: 0------------Total states run: 1
2、安装软件包
1)准备sls文件
[root@salt-master base]# vi package.sls[root@salt-master base]# cat package.sls pkg-install: pkg.installed: - names: - gcc - lrzsz - tree[root@salt-master base]# vi top.sls [root@salt-master base]# cat top.sls base: 'salt-minion02.contoso.com': - package
2)使用state.highstate调用
[root@salt-master base]# salt 'salt-minion02.contoso.com' state.highstatesalt-minion02.contoso.com:---------- ID: pkg-install Function: pkg.installed Name: gcc Result: True Comment: Package gcc is already installed. Started: 17:07:14.548436 Duration: 887.609 ms Changes: ---------- ID: pkg-install Function: pkg.installed Name: tree Result: True Comment: Package tree is already installed. Started: 17:07:15.436190 Duration: 0.419 ms Changes: ---------- ID: pkg-install Function: pkg.installed Name: lrzsz Result: True Comment: Package lrzsz is already installed. Started: 17:07:15.436663 Duration: 0.234 ms Changes: Summary------------Succeeded: 3Failed: 0------------Total states run: 3
3)使用state.sls调用
[root@salt-master base]# salt 'salt-minion02.contoso.com' state.sls packagesalt-minion02.contoso.com:---------- ID: pkg-install Function: pkg.installed Name: gcc Result: True Comment: Package gcc is already installed. Started: 17:05:47.186879 Duration: 3979.297 ms Changes: ---------- ID: pkg-install Function: pkg.installed Name: tree Result: True Comment: Package tree is already installed. Started: 17:05:51.166338 Duration: 0.406 ms Changes: ---------- ID: pkg-install Function: pkg.installed Name: lrzsz Result: True Comment: Package lrzsz is already installed. Started: 17:05:51.166799 Duration: 0.271 ms Changes: Summary------------Succeeded: 3Failed: 0------------Total states run: 3
3、管理定时任务
1)准备sls文件(添加定时任务)
[root@salt-master base]# vi cron.sls[root@salt-master base]# cat cron.sls /usr/sbin/ntpdate 210.72.145.44 64.147.116.229 time.nist.gov >/dev/null 2>&1: cron.present: - identifier: SUPERCRON - user: root - minute: '0'
2)使用state.sls调用
[root@salt-master base]# salt 'salt-minion02.contoso.com' state.sls cronsalt-minion02.contoso.com:---------- ID: /usr/sbin/ntpdate 210.72.145.44 64.147.116.229 time.nist.gov >/dev/null 2>&1 Function: cron.present Result: True Comment: Cron /usr/sbin/ntpdate 210.72.145.44 64.147.116.229 time.nist.gov >/dev/null 2>&1 added to root's crontab Started: 17:34:17.516341 Duration: 22.481 ms Changes: ---------- root: /usr/sbin/ntpdate 210.72.145.44 64.147.116.229 time.nist.gov >/dev/null 2>&1Summary------------Succeeded: 1 (changed=1)Failed: 0------------Total states run: 1# 检查执行结果[root@salt-master base]# salt 'salt-minion02.contoso.com' cron.raw_cron rootsalt-minion02.contoso.com: 0 * * * * /usr/sbin/ntpdate 210.72.145.44 64.147.116.229 time.nist.gov >/dev/null 2>&1 # Lines below here are managed by Salt, do not edit # SALT_CRON_IDENTIFIER:SUPERCRON 0 * * * * /usr/sbin/ntpdate 210.72.145.44 64.147.116.229 time.nist.gov >/dev/null 2>&1
3)准备sls文件(删除定时任务)
[root@salt-master base]# vi cron.sls[root@salt-master base]# cat cron.sls /usr/sbin/ntpdate 210.72.145.44 64.147.116.229 time.nist.gov >/dev/null 2>&1: cron.absent: - identifier: SUPERCRON - user: root - minute: '0'[root@salt-master base]# vi top.sls[root@salt-master base]# cat top.sls base: 'salt-minion02.contoso.com': - cron
4)使用state.highstate调用
[root@salt-master base]# salt 'salt-minion02.contoso.com' state.highstatesalt-minion02.contoso.com:---------- ID: /usr/sbin/ntpdate 210.72.145.44 64.147.116.229 time.nist.gov >/dev/null 2>&1 Function: cron.absent Result: True Comment: Cron /usr/sbin/ntpdate 210.72.145.44 64.147.116.229 time.nist.gov >/dev/null 2>&1 removed from root's crontab Started: 17:46:18.360892 Duration: 24.8 ms Changes: ---------- root: /usr/sbin/ntpdate 210.72.145.44 64.147.116.229 time.nist.gov >/dev/null 2>&1Summary------------Succeeded: 1 (changed=1)Failed: 0------------Total states run: 1# 检查执行结果[root@salt-master base]# salt 'salt-minion02.contoso.com' cron.raw_cron rootsalt-minion02.contoso.com: 0 * * * * /usr/sbin/ntpdate 210.72.145.44 64.147.116.229 time.nist.gov >/dev/null 2>&1 # Lines below here are managed by Salt, do not edit