Saltstack生产案例之系统初始化
把之前的配置打个包
zip -r salt.zip *
拷贝到/root/tools目录
博客园文件里面也保留一份,删除之前所有的salt配置文件重新开始
想
1,系统初始化
2,功能模块:设置单独的目录haproxy nginx php mysql memcached
3,业务模块:根据业务类型,例如web 服务 论坛 bbs
include
做
1,salt环境配置
开发,测试(功能测试环境,性能测试环境) 预生产 生成
base 基础环境
init目录,环境初始化 1.dns配置 2history记录时间 3记录命令操作 4内核参数优化 5安装yum仓库 6安装Zabbix-agent
2,prod生成环境
vim /etc/salt/master
mkdir -p /srv/salt/base
mkdir -p /srv/salt/prod
mkdir -p /srv/pillar/base
mkdir -p /srv/pillar/prod
重启
systemctl restart salt-master
cd /srv/salt/base/
mkdir init
cd init
vim dns.sls
1 2 3 4 5 6 | / etc / resolv.conf: file .managed: - source: salt: / / init / files / resolv.conf - user: root - gourp: root - mode: 644 |
新建文件命令,拷贝配置文件
mkdir files
cp /etc/resolv.conf files/
vim history.sls
1 2 3 4 | / etc / profile: file .append: - text: - export HISTTIMEFORMAT = "%F %T `whoami` " |
PS:在/etc/profile 末尾追加一行显示执行时间以及执行者
vim audit.sls
1 2 3 4 | / etc / bashrc: file .append: - text: - export PROMPT_COMMAND = '{ msg=$(history 1 | { read x y; echo $y; });logger "[euid=$(whoami)]":$(who am i):[`pwd`]"$msg"; }' |
PS:记录命令的操作即命令审计
vim sysctl.sls
1 2 3 4 5 6 7 8 9 10 11 12 | net.ipv4.ip_local_port_range: sysctl.present: - value: 10000 65000 fs. file - max : sysctl.present: - value: 2000000 net.ipv4.ip_forward: sysctl.present: - value: 1 vm.swappiness: sysctl.present: - value: 0 |
PS:内核参数优化
net.ipv4.ip_local_port_range: 本地可用端口范围 作为客户端发起连接的时候
net.ipv4.ip_forward: 开启转发
sysctl.present:交换分区使用权重为0是尽量不使用
vim epel.sls
1 2 3 4 | yum_repo_release: pkg.installed: - sources: - epel - release: http: / / mirrors.aliyun.com / epel / epel - release - latest - 7.noarch .rpm |
vim zabbix-agent.sls
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | zabbix - agent: pkg.installed: - name: zabbix - agent file .managed: - name: / etc / zabbix / zabbix_agentd.conf - source: salt: / / init / files / zabbix_agentd.conf - template: jinja - defaults: Server: {{ pillar[ 'zabbix-agent' ][ 'Zabbix_Server' ] }} - require: - pkg: zabbix - agent service.running: - enable: True - watch: - pkg: zabbix - agent - file : zabbix - agent zabbix_agentd.conf.d: file .directory: - name: / etc / zabbix / zabbix_agentd.conf.d - watch_in: - service: zabbix - agent - require: - pkg: zabbix - agent - file : zabbix - agent |
拷贝配置文件
cp /etc/zabbix/zabbix_agentd.conf files/
vim files/zabbix_agentd.conf
PS:这里{}内变量名称Server要和/srv/salt/base/init/zabbix-agent.sls 一样为Server
直接执行出错
因为没有配置pillar
cd /srv/pillar/base/
mkdir zabbix
cd zabbix/
vim agent.sls
1 2 | zabbix - agent: Zabbix_Server: 10.8 . 45.27 |
这样设置还不行,需要master指定给
vim /srv/pillar/base/top.sls
1 2 3 | base: '*' : - zabbix.agent |
salt '*' state.sls init.zabbix-agent
执行状态成功了
到此初始化写完了
cd /srv/salt/base/init
vim init.sls
1 2 3 4 5 6 7 | include: - init.dns - init.history - init.audit - init.sysctl - init.epel - init.zabbix - agent |
执行salt '10-8-86-172' state.sls init.init
成功了
这个是执行单个配置文件 高级状态是定义top.sls
cd /srv/salt/base
vim top.sls
1 2 3 | base: '*' : - init.init |
先tree一下
使用salt '*' state.highstate 执行top.sls 因为这里定的是 * init.init 其实效果和上面的是一样的
PS:使用backup: minion可以在配置文件有更新的时候把原始配置文件备份
‘
一旦配置文件有更新会把原始配置文件备份一遍
参考文档
https://github.com/unixhot/saltbook-code/blob/master/salt/
1 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!