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