一直在想要是salt能够分组的使用自定义的脚本来完成批量部署就好了,最近在这方面做了比较深入的研究,终于实现了。
一、在master上配置nodegroup
1、在/etc/salt/master的最下面加上default_include: include/group.conf
2、vim include/group.conf
二、配置state
通过配置nodegroup,我们已经能够实现按组来分发命令。但是当我们需要做一系列操作的时候,这种依靠一条条命令的方式显然很慢,切容易出现操作上的失误。那好,我们怎么办?
对了,通过state来批量的执行脚本。
配置state
1、vim /srv/salt/top.sls
2、在/srv/salt下建立目录:(top.sls中的目录就是从这来的)
mkdir dnsmasq
mkdir -p myscript/{lvs-server,lvs-realserver}
mkdir -p myscript/lvs-realserver/config/
mkdir -p myscript/lvs-server/{config,install}
3、进入dnsmasq目录,编辑init.sls以及创建files目录
mkdir files
之后将你的dnsmasq.conf文件放到files目录下
vim init.sls
dnsmasq:
pkg:
– name: dnsmasq
– installed
service:
– running
– enable: True
– reload: True
– watch:
– file: /etc/dnsmasq.conf
/etc/dnsmasq.conf:
file.managed:
– source: salt://dnsmasq/files/dnsmasq.conf
– user: root
– group: root
– mode: 644
– require:
– pkg: dnsmasq
4、接下来就是我们的lvs了,用的都是脚本
先从lvs的install开始
进到刚刚建好的目录:/srv/salt/myscript/lvs-server/install
vim init.sls
install_lvs:
cmd.script:
– source: http://172.16.224.23/soft/lvs/install_lvs.sh
– unless: [ -f /tmp/test.passed ]
当你准备好脚本后,lvs的install部署就完成了。config和lvs真实服务的config也是一样,只是目录和脚本不一样。
6、我们命令行怎么用呢?
以lvs的install为例
salt -N 'lvs-server' state.sls myscript.lvs-server.install
done
转载于:https://blog.51cto.com/shanks/1306954