SaltStack快速入门(4)-SaltStack配置管理
Salt使用State模块文件进行配置管理,使用YAML编写,以.sls结尾。如果进行配置管理首先需要再Master的配置文件中指定”file roots”的选项,Salt支持环境的配置,比如开发环节、测试环境、生产环境,但是base环境是必须的。而且Base环境必须包含入口文件top.sls。
第一步:设置file_roots
修改Master配置文件,指定File_roots。
创建相应的目录 [root@master ~]# mkdir -p /srv/salt 重启Salt Master [root@master ~]# /etc/init.d/salt-master restart Stopping salt-master daemon: [ OK ] Starting salt-master daemon: [ OK ] 第二步:设置top.sls 在top.sls入口文件设置环境(如生产、开发、测试对应不同的minion和模块)。[root@master ~]# vim /etc/salt/master file_roots: base: - /srv/salt
解释:所有的Minion均执行base目录下的init模块下的pkg-init.sls。我们可以把很多的sls放在一个目录中,方便管理。在top.sls只需要指定目录结构即可。 第三步:编写状态文件[root@master ~]# vim /srv/salt/top.sls base: '*': - apache
第四步:执行状态 [root@master ~]# salt '*' state.highstate 根据上面的设置,执行完状态后。Salt会检查Minion上是否有上面编写的三个软件包。如果没有就会自动使用Yum安装上。[root@master ~]# vim /srv/salt/apache.sls apache-install: pkg.installed: - names: - httpd - httpd-devel apache-service: service.running: - enable: True - reload: True
2 个评论
下面是我生产安装Haproxy的案例,使用的源码,你参考下。
haproxy-install:
file.managed:
- name: /usr/local/src/haproxy-1.5.3.tar.gz
- source: salt://haproxy/files/haproxy-1.5.3.tar.gz
- mode: 755
- user: root
- group: root
cmd.run:
- name: cd /usr/local/src && tar zxf haproxy-1.5.3.tar.gz && cd haproxy-1.5.3 && make TARGET=linux26 PREFIX=/usr/local/haproxy && make install PREFIX=/usr/local/haproxy
- unless: test -d /usr/local/haproxy
- require:
- file: haproxy-install
/etc/init.d/haproxy:
file.managed:
- source: salt://haproxy/files/haproxy.init
- mode: 755
- user: root
- group: root
- require:
- cmd: haproxy-install
net.ipv4.ip_nonlocal_bind:
sysctl.present:
- value: 1
haproxy-config-dir:
file.directory:
- name: /etc/haproxy
- mode: 755
- user: root
- group: root
haproxy-init:
cmd.run:
- name: chkconfig --add haproxy
- unless: chkconfig --list | grep haproxy
- require:
- file: /etc/init.d/haproxy