制作简单初始化模块(在minion主机安装软件):
1.定义master配置文件file_roots
[root@localhost~]# cat /etc/salt/master
file_roots:
  base:
    - /etc/salt/states
  prod:
    - /etc/salt/states/prod
创建目录:
mkdir -p /etc/salt/states mkdir -p /etc/salt/states/prod mkdir -p /etc/salt/states/init
重启salt服务:
/etc/init.d/salt-master restart
salt-master目录结构如下图:
[root@localhost states]# pwd /etc/salt/states [root@localhost states]# ll 总用量 12 drwxr-xr-x 2 root root 4096 2月 10 11:52 init drwxr-xr-x 2 root root 4096 2月 10 10:44 prod -rw-r--r-- 1 root root 43 2月 10 11:08 top.sls [root@localhost states]# tree . ├── init │?? └── package.sls ├── prod └── top.sls 2 directories, 2 files
定义top.sls文件。
[root@localhost states]# cat top.sls  	//top.sls定义了运行环境以及需要运行的sls
base:						      //基础环境
  ‘SN100-128‘:						  //主机,如果全部主机可以用‘*‘
    - init.package					 //使用init目录下,一个叫做package的状态文件.
定义package.sls 文件.
[root@localhost states]# cat init/package.sls 
package.init:									//定义名字,id的声明(名字可以随意定义).
  pkg.installed:								//pkg模块名.方法
  #pkg.removed:
    - names:
      - lrzsz
      - mtr
      - nmap
      - nc
执行(在SN100-128主机安装lrzsz,mtr,nmap,nc软件):
[root@localhost states]# salt ‘SN100-128‘ state.sls init.package
2.管理文件(统一管理/etc/security/limits.conf文件,是各minion保持配置文件的一致性.)
定义top.sls文件
[root@localhost states]# cat /etc/salt/states/top.sls   //top.sls定义了运行环境以及需要运行的sls
base:
  #‘SN100-128‘:
  ‘*‘:
    - init.package
    - init.limit				#在top.sls文件中增加limit.
定义limit.sls 文件
[root@localhost init]# cat /etc/salt/states/init/limit.sls    
limit-conf-config:
  file.managed:
    - name: /etc/security/limits.conf    				//节点需要管理的文件
    - source: salt://init/files/limits.conf				//要载入到节点的源文件,源文件路径可以有多个,以第一个为主,如果第一个不存在则尝试第二个.
    - user: root							//子节点上文件属主
    - group: root						        //子节点上文件属组
    - mode: 644								//文件属性
执行(配置文件limits.conf会同步到各minion中):
[root@localhost states]#salt ‘*‘ state.highstate
参考文档:
原文:http://www.cnblogs.com/saneri/p/6386964.html