5、SaltStack之项目实践
2017-11-17 14:29
120 查看
在实际生产项目中,我们可以来这样划分:
业务模块:根据具体的业务引用需要用到的功能模块(比如搭建LNMP环境)
功能模块:按照功能创建目录,里面对应的功能状态(比如zabbix,mysql,nginx,redis等等)
系统初始化模块:把它放在base环境下,这是我们定义每台机器都要执行的操作
我们来演示如何配置系统初始化模块,这里只是举例如何使用,具体的系统初始化工作可以根据自己的实际情况配置
base环境
我们可以再写个sls把以上的都包含进去,取个自己理解的名字,这样topfile就避免填写所有的状态
写完,我们需要测试。test=True,这个参数就是用来模拟测试,不会实际应用
测试OK,我们就可以真正的运行
因为安装haproxy会需要一些依赖包,可能其他模块也会用到,这里就把独立弄出一个模块功能
配置haproxy功能模块
启动脚本文件
# cat /srv/salt/prod/haproxy/install.sls
直接执行这个功能状态
注意:env=prod 指定环境,否则会使用默认的环境base
业务模块:根据具体的业务引用需要用到的功能模块(比如搭建LNMP环境)
功能模块:按照功能创建目录,里面对应的功能状态(比如zabbix,mysql,nginx,redis等等)
系统初始化模块:把它放在base环境下,这是我们定义每台机器都要执行的操作
我们来演示如何配置系统初始化模块,这里只是举例如何使用,具体的系统初始化工作可以根据自己的实际情况配置
base环境
[root@c1 ~]# cd /srv/salt/base/;ls init #这个是目录,用来存放系统初始化的状态 top.sls 1.dns配置 [root@c1 base]# cat init/dns.sls /etc/resolv.conf: file.managed: - source: salt://init/files/resolv.conf - user: root - group: root - mode: 644 [root@c1 base]# mkdir init/files [root@c1 base]# cat init/files/resolv.conf nameserver 114.114.114.114 2、history记录命令执行时间 [root@c1 base]# cat init/history.sls /etc/profile: file.append: <---------文件追加 - text: <---------下面是追加的内容 - export HISTTIMEFORMAT="%F %T `whoami`" 3、内核调优 [root@c1 base]# cat init/sysctl.sls vm.swappiness: sysctl.present: - value: 0 net.ipv4.ip_local_port_range: sysctl.present: - value: 10000 65000 fs.file-max: sysctl.present: - value: 100000
我们可以再写个sls把以上的都包含进去,取个自己理解的名字,这样topfile就避免填写所有的状态
[root@c1 base]# cat init/env_init.sls include: - init.dns - init.history - init.sysctl topfile只要写env_init.sls这一个就可以了 [root@c1 base]# cat /srv/salt/base/top.sls base: '*': - init.env_init
写完,我们需要测试。test=True,这个参数就是用来模拟测试,不会实际应用
salt '*' state.highstate test=True
测试OK,我们就可以真正的运行
salt '*' state.highstate
开写功能模块--haproxy
prod环境因为安装haproxy会需要一些依赖包,可能其他模块也会用到,这里就把独立弄出一个模块功能
[root@c1 ~]# mkdir /srv/salt/prod/pkg #专们用来安装基础依赖包的功能模块 [root@c1 ~]# cd /srv/salt/prod/pkg/ [root@c1 pkg]# cat pkg-init.sls pkg-init: pkg.installed: - names: - gcc - gcc-c++ - make - autoconf - openssl - openssl-devel
配置haproxy功能模块
[root@c1 ~]# mkdir /srv/salt/prod/haproxy [root@c1 ~]# mkdir /srv/salt/prod/haproxy/files //下载haproxy-1.6.3.tar.gz源码包放在haproxy/fiels目录中
启动脚本文件
把源码包中的haproxy.init第35行修改为 BIN=/usr/local/haproxy/sbin/$BASENAME cp haproxy-1.6.3/examples/haproxy.init /srv/salt/prod/haproxy/files/
# cat /srv/salt/prod/haproxy/install.sls
include: - pkg.pkg-init <------------把pkg-init包含进来, pkg.代表pkg目录 haproxy-install: <-------这个是自己定义的id,,一个id下面定义的模块只能出现一次,比如file file.managed: - name: /usr/local/src/haproxy-1.6.3.tar.gz <------目标文件(minion端) - source: salt://haproxy/files/haproxy-1.6.3.tar.gz <------源文件(master端,路径相对于环境prod目录) - user: root - group: root - mode: 755 cmd.run: - name: cd /usr/local/src && tar xf haproxy-1.6.3.tar.gz && cd haproxy-1.6.3 && make TARGET=linux2628 PREFIX=/usr/local/haproxy && make install PREFIX=/usr/local/haproxy - unless: test -d /usr/local/haproxy <----unless: <命令> 当命令结果返回false才执行name - require: <---------表示依赖下面的执行,只有下面的都执行成功,name才会执行 - pkg: pkg-init - file: haproxy-install <-----因为在一个id下的任何一个模块都只出现一次,所以可以直接定位到 haproxy-config-dir: file.directory: - name: /etc/haproxy - user: root - group: root - mode: 755 haproxy-init: file.managed: - name: /etc/init.d/haproxy - source: salt://haproxy/files/haproxy.init - user: root - group: root - mode: 755 - require: - cmd: haproxy-install cmd.run: - name: chkconfig --add haproxy - unless: chkconfig --list|grep haproxy - require: - file: haproxy-init net.ipv4.ip_nonlocal_bind: sysctl.present: - value: 1
直接执行这个功能状态
注意:env=prod 指定环境,否则会使用默认的环境base
# salt 'c2.heboan.com' state.sls haproxy.install env=prod
相关文章推荐
- saltstack布署实践 【配置文件管理-state模块】
- saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy
- (六)saltstack项目实战_系统初始化
- saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy的Keepalived
- (七)saltstack项目实战_安装nginx
- saltstack自动化运维系列⑦SaltStack实践配置管理安装zabbix
- saltstack自动化运维系列⑧SaltStack实践配置管理安装nginx-1.10.3
- (八)saltstack项目实战_安装mysql
- saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy
- saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy的Keepalived
- saltstack event 实践
- saltstack自动化运维系列⑦SaltStack实践配置管理安装zabbix
- saltstack布署实践 【安装】
- 实践SaltStack安装和配置管理
- <Docker + Bamboo + Saltstack持续集最佳实践 > 本周三晚在线公开课
- SaltStack 实践课程二 PHP+NGINX
- SaltStack实践(一)-- 安装配置HAproxy
- SaltStack 实践课程一
- saltstack自动化运维系列⑧SaltStack实践配置管理安装nginx-1.10.3
- 自动化运维之SaltStack实践视频教程