SaltStack之项目实践
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SaltStack之项目实践相关的知识,希望对你有一定的参考价值。
在实际生产项目中,我们可以来这样划分:
业务模块:根据具体的业务引用需要用到的功能模块(比如搭建LNMP环境)
功能模块:按照功能创建目录,里面对应的功能状态(比如zabbix,mysql,nginx,redis等等)
系统初始化模块:把它放在base环境下,这是我们定义每台机器都要执行的操作
我们来演示如何配置系统初始化模块,这里只是举例如何使用,具体的系统初始化工作可以根据自己的实际情况配置
base环境
[[email protected] ~]# cd /srv/salt/base/;ls init #这个是目录,用来存放系统初始化的状态 top.sls 1.dns配置 [[email protected] base]# cat init/dns.sls /etc/resolv.conf: file.managed: - source: salt://init/files/resolv.conf - user: root - group: root - mode: 644 [[email protected] base]# mkdir init/files [[email protected] base]# cat init/files/resolv.conf nameserver 114.114.114.114 2、history记录命令执行时间 [[email protected] base]# cat init/history.sls /etc/profile: file.append: <---------文件追加 - text: <---------下面是追加的内容 - export HISTTIMEFORMAT="%F %T `whoami`" 3、内核调优 [[email protected] 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就避免填写所有的状态
[[email protected] base]# cat init/env_init.sls include: - init.dns - init.history - init.sysctl topfile只要写env_init.sls这一个就可以了 [[email protected] base]# cat /srv/salt/base/top.sls base: ‘*‘: - init.env_init
写完,我们需要测试。test=True,这个参数就是用来模拟测试,不会实际应用
salt ‘*‘ state.highstate test=True
测试OK,我们就可以真正的运行
salt ‘*‘ state.highstate
以上是关于SaltStack之项目实践的主要内容,如果未能解决你的问题,请参考以下文章
<Docker + Bamboo + Saltstack持续集最佳实践 > 本周三晚在线公开课