配置管理实例-系统初始化
一.环境说明
1.1 架构图

1.2 环境说明
[root@master ~]# tree /srv/salt
/srv/salt
├── base ## 基础环境目录
│ ├── init ## 系统初始化目录
│ │ ├── audit.sls ## 将操作历史记录至message文件
│ │ ├── dns.sls ## 配置 DNS
│ │ ├── env_init.sls ## 包含系统初始化各项的总 sls 文件
│ │ ├── files ## 系统初始化方法所需文件目录
│ │ │ └── resolv.conf
│ │ ├── history.sls ## 配置 history 命令使之可现实操作时间和用户
│ │ └── sysctl.sls ## 系统优化
│ └── top.sls ## saltstack 总控方法文件
├── prod ## 生产环境目录
│ ├── cluster ## 集群配置目录
│ │ ├── files ## 集群配置所需文件目录
│ │ │ ├── haproxy-outside.cfg ## haproxy 集群配置文件
│ │ │ └── haproxy-outside-keepalived.conf ## keepalived 集群配置文件
│ │ ├── haproxy-outside-keepalived.sls ## haproxy 集群方法文件
│ │ └── haproxy-outside.sls ## keepalived 集群方法文件
│ ├── haproxy ## haproxy 安装目录
│ │ ├── files ## haproxy 安装所需文件目录
│ │ │ ├── haproxy-1.6.14.tar.gz ## haproxy 源码包
│ │ │ └── haproxy.init ## haproxy 启动脚本
│ │ └── install.sls ## haproxy 安装方法
│ ├── keepalived ## keepalived 安装目录
│ │ ├── files ## keepalived 安装所需文件目录
│ │ │ ├── keepalived-1.2.19.tar.gz ## keepalived 源码包
│ │ │ ├── keepalived.conf ## keepalived 配置文件
│ │ │ ├── keepalived.init ## keepalived 启动脚本
│ │ │ └── keepalived.sysconfig
│ │ └── install.sls ## keepalived 安装方法
│ └── pkg ## 编译环境安装目录
│ └── pkg-init.sls
└── test
1.3 环境预制
http服务需提前配置好,关闭防火墙
二、系统初始化
1.编写sls文件
1.1 初始化文件
## 记录操作日志
[root@master ~]# cat /srv/salt/base/init/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";}'
## 配置 DNS
[root@master ~]# cat /srv/salt/base/init/dns.sls
/etc/resolv.conf:
file.managed:
- source: salt://init/files/resolv.conf
- user: root
- group: root
- mode: 644
## 优化 history 命令
[root@master ~]# cat /srv/salt/base/init/history.sls
/etc/profile:
file.append:
- text:
- export HISTTIMEFORMAT="%F %T `whoami`"
## 优化系统
[root@master ~]# cat /srv/salt/base/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文件纳入一个 sls文件中
[root@master ~]# cat /srv/salt/base/init/env_init.sls
include:
- init.dns
- init.history
- init.audit
- init.sysctl
1.2 top.sls 编写
[root@master ~]# cat /srv/salt/base/top.sls
## 指执行 base 环境的 init 文件夹下的 env_init
base:
'*':
- init.env_init
1.3 测试是否正确
[root@master ~]# salt '*' state.highstate test=True