这里举几个简单的例子来记录一下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