配置管理实例-系统初始化

一.环境说明

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

results matching ""

    No results matching ""