saltstack的配置管理分环境管理:
①.base为基础环境,一般会存放一些所有服务器都使用的配置管理信息。
②.dev为开发测试环境,一般会存放一些开发测试服务器使用的配置管理信息。
③.pro为线上环境,一般会存放线上服务器使用的配置管理信息。
saltstack的配置管理的state文件入口为top.sls,建议每个环境配置一个top.sls文件。
saltstack之系统初始化实战案例:
1.修改node1上master配置文件,定义base环境。
[root@node1 base]# egrep -A 2 ^file_roots /etc/salt/master file_roots: base: - /srv/salt/base
2.编写state文件,最终的目录树如下所示:
[root@node1 base]# tree /srv/salt/base/ /srv/salt/base/ ├── init │ ├── dns.sls │ ├── env_init.sls │ ├── files │ │ ├── hosts │ │ └── zabbix_agentd.conf │ ├── history.sls │ ├── sysctl.sls │ └── zabbix_agent.sls └── top.sls 2 directories, 8 files
3.state文件的详细内容:
*注释:由于配置文件过多,直接定义在top.sls文件中显得过于臃肿,故定义了一个env_init.sls文件,将所有的state文件include进去,详见最后一个文件内容。
[root@node1 base]# cat top.sls base: '*': - init.env_init [root@node1 base]# cat init/dns.sls dns-service: file.managed: - name: /etc/hosts - source: salt://init/files/hosts - user: root - group: root - mode: 644 [root@node1 base]# cat init/history.sls /etc/profile: file.append: - text: - export HISTTIMEFORMAT="%F %T `whoami`" [root@node1 base]# cat init/sysctl.sls net.ipv4.ip_forward: sysctl.present: - value: 1 vm.swappiness: sysctl.present: - value: 1 [root@node1 base]# cat init/zabbix_agent.sls zabbix-agent: pkg.installed: - name: zabbix-agent file.managed: - name: /etc/zabbix/zabbix_agentd.conf - source: salt://init/files/zabbix_agentd.conf - user: root - group: root - mode: 644 - template: jinja - defaults: HOST: 192.168.3.1 ----此处要记得配置模板文件 {{ HOST }},如果不记得使用方法,参考配置管理state文章。 - require: - pkg: zabbix-agent service.running: - name: zabbix-agent - enable: true - watch: - file: zabbix-agent [root@node1 base]# cat init/env_init.sls include: - init.dns - init.sysctl - init.history - init.zabbix_agent
4.在node1上master端执行配置管理的state文件,可以先执行测试,测试通过后再执行。
[root@node1 ~]# salt '*' state.highstate env=base test ---加test参数后,模拟执行操作,不会真正执行。
[root@node1 ~]# salt '*' state.highstate env=base