项目实例:系统初始化安装

功能模块:设置单独的目录
haproxy nginx php mysql memcached
1、系统初始化
2、功能模块
3、业务模块:根据业务类型划分,例如web服务器、论坛BBS
salt环境配置:
1、base 基础环境
2、prod 生产环境
1、修改基础环境配置
[root@master_server /]# vim /etc/salt/master
2、创建文件对应的文件夹
[root@master_server ~]# mkdir -p /srv//salt/base
[root@master_server ~]# mkdir -p /srv/salt/prod
[root@master_server ~]# mkdir -p /srv/pillar/base
[root@master_server ~]# mkdir -p /srv/pillar/prod
3、创建环境初始化目录
[root@master_server /]# cd /srv/salt/base/
[root@master_server base]# mkdir init
[root@master_server base]# cd init/
环境初始化:1、DNS配置 2、history记录时间 3、记录命令操作 4、内核参数优化 5、安装yum仓库 6、安装zabbix-agent
4、配置管理
DNS[root@master_server init]# vim dns.sls
[root@master_server init]# mkdir files
[root@master_server init]# cp /etc/resolv.conf files/
[root@master_server init]#
DNS管理:
[root@master_server init]# cat dns.sls
/etc/resolv.conf:
file.managed:
– source: salt://init/files/resolv.conf
– user: root
– gourp: root
– mode: 644
[root@master_server init]#
[root@master_server init]# tree
.
├── dns.sls
└── files
└── resolv.conf
1 directory, 2 files
记录命令执行时间戳
在文件末行追加文件的写法:
[root@master_server init]# vim history.sls
/etc/profile:
file.append:
– text:
– export HISTTIMEFORMAT=”%F %T `whoami` “
审计audit模块
[root@master_server init]# vim audit.sls
/etc/bashrc:
file.append:
– text:
– export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; });logger “[euid=$(whoami)]”:$(who am i):[`pwd`]”$msg”; }’
内核参数优化
[root@master_server init]# vim sysctl.sls
net.ipv4.ip_local_port_range:
sysctl.present:
– value: 10000 65000
##注释: 本地可用的端口范围:作为客户端发起连接的时候,socket网络套接字,五元组,源地址、源端口、目的地址、目的端口、协议
fs.file-max: 打开最大的文件数
sysctl.present:
– value: 2000000
net.ipv4.ip_forward:
sysctl.present:
– value: 1
vm.swappiness: ##交换分区使用权重,0使用率最低
sysctl.present:
– value: 0 默认30
安装yum仓库
[root@master_server init]# vim yum.sls
yum_repo_release:
pkg.installed:
– sources:
– epel-release: https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm yum源有可能有问题,请在用时替换最新的yum源
– unless: rpm -qa | grep epel-release-7
安装zabbix-agent
[root@master_server init]# vim zabbix-agent.sls
拷贝配置文件到目录 :
[root@master_server init]# cp /etc/zabbix/zabbix_agentd.conf files/
[root@master_server init]# vim files/zabbix_agentd.conf
修改配置文件中的server 替换成模板中的变量
创建pillar文件
[root@master_server base]# mkdir zabbix
[root@master_server base]# cd zabbix/
[root@master_server zabbix]# pwd
/srv/pillar/base/zabbix
[root@master_server zabbix]# vim agent.sls
[root@master_server zabbix]# cat agent.sls
Zabbix_Server: 172.16.1.200
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:
Zabbix_Server: {{ pillar[‘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
5、进入pillar环境目录:
cd /srv/pillar/base
编辑vim.top.sls文件指定要查询的主机,查询的条件
6、创建一个文件夹:
mkdir zabbix
[root@master_server zabbix]# pwd
/srv/pillar/base/zabbix
创建一个新的agent,sls文件
给变量获取server IP地址
[root@master_server zabbix]# vim agent.sls
7、远程执行下命令,查看执行结果:
[root@master_server init]# salt ‘master_agent’ state.sls init.zabbix-agent
8、sls文件过多,执行比较麻烦,新建一个.sls文件,然后用引用
[root@master_server init]# vim system-start.sls
[root@master_server init]# cat system-start.sls
include:
– init.dns
– init.history
– init.audit
– init.sysctl
– init.yum
– init.zabbix-agent
[root@master_server init]#
9、执行下命令查看结果:
[root@master_server init]# salt ‘master_agent’ state.sls init.system-start
10、添加到高级用法,可以一次性执行多个操作:
[root@master_server init]# cd /srv/salt/base/
[root@master_server base]# ls
init
[root@master_server base]# vim top.sls
[root@master_server base]# tree
.
├── init
│   ├── ~
│   ├── audit.sls
│   ├── dns.sls
│   ├── files
│   │   ├── resolv.conf
│   │   └── zabbix_agentd.conf
│   ├── history.sls
│   ├── sysctl.sls
│   ├── system-start.sls
│   ├── yum.sls
│   └── zabbix-agent.sls
└── top.sls
3 directories, 10 files
[root@master_server base]# cat top.sls
base:
‘master_agent’:
– init.system-start
[root@master_server base]#
打包:准备做下一个项目:
将整个srv目录打包:
[root@master_server srv]# zip -r salt_pro.zip *
打赏作者

Leave a Reply

Your email address will not be published.