saltstack之(七)配置管理系统初始化init

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

posted @ 2016-05-11 18:18  xkops  阅读(1411)  评论(0编辑  收藏  举报