制作简单初始化模块(在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
参考文档: