saltstack初窥——state实战

state模块介绍:http://docs.saltstack.com/ref/modules/all/salt.modules.state.html

下面来介绍通过state安装/卸载/升级安装包的方法:

1. 调用state模块

安装:

salt ‘*’ state.high ‘{“vim”: {“pkg”: [“installed”]}}’

salt ‘*’ state.single pkg.installed name=vim

卸载:

salt ‘*’ state.high ‘{“vim”: {“pkg”: [“removed”]}}’

salt ‘*’ state.single pkg.removed name=vim

升级:

salt ‘*’ state.high ‘{“vim”: {“pkg”: [“latest”]}}’

salt ‘*’ state.single pkg.latest name=vim
 

2. 通过sls配置文件

安装:

/srv/salt/top.sls:

test:
‘minion1’:

- match: nodegroup 
- httpd</pre>

/srv/salt/test/httpd.sls:

httpd:
pkg:

- installed

service:

- running
- watch:
  - pkg: httpd
  - user: httpd

user.present:

- uid: 1000
- gid: 1000
- home: /home/httpd
- shell: /sbin/nologin
- require:
  - group: httpd

group.present:

- gid: 1000
- require:
  - pkg: httpd</pre>

salt ‘minion1’ state.highstate

更新配置文件,并重启服务:

/srv/salt/top.sls:

test:
‘minion1’:

- match: nodegroup 
- httpd</pre>

/srv/salt/test/httpd.sls:

httpd:
service:

- running
- reload: True
- watch:
  - file: /etc/httpd/conf/httpd.conf

/etc/httpd/conf/httpd.conf:
file.managed:

- source: salt://files/httpd.conf
- mode: 644
- user: root
- group: root</pre>

 

/srv/salt/test/files/httpd.conf:
………..

salt ‘minion1’ state.highstate

卸载:

/srv/salt/top.sls:

test:
‘minion1’:

- match: nodegroup 
- httpd</pre>

/srv/salt/test/httpd.sls:

httpd:
pkg:

- removed</pre>

salt ‘minion1’ state.highstate

升级:

/srv/salt/top.sls:

test:
‘minion1’:

- match: nodegroup 
- httpd</pre>

/srv/salt/test/httpd.sls:

httpd:
pkg:

- latest</pre>

salt ‘minion1’ state.highstate