前面写了些saltstack初始配置,网上类似的有很多。实际配置起来总是会出各种各样的问题。写文章记录下自己成功的配置,方便以后查询。
saltstack的初始化配置是指所有节点都要使用的基础配置。当然,也可以做个性化的配置。这个要根据实际业务去配置了。本文记录的也只是本人使用过的。
既然是初始化配置,那么当然是在base环境下。
cd /srv/salt/base/init
目前主流的服务器基本都是云主机,所以DNS配置并未使用。
1,命令操作审计与History记录时间
[root@linux-2 init]# cat 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@linux-2 init]# cat history.sls
/etc/profile:
file.append:
- text:
- export HISTTIMEFORMAT="%F %T `whoami`"
2,内核参数优化
[root@linux-2 init]# cat sysctl.sls
net.ipv4.ip_forward: #对象
sysctl.present: #赋值
- value: 1
fs.file-max:
sysctl.present:
- value: 200000
net.ipv4.conf.default.rp_filter:
sysctl.present:
- value: 0
net.ipv4.conf.all.rp_filter:
sysctl.present:
- value: 0
此处可以按业务需要写不同的参数
3,epel仓库
安装salt-minion需要epel仓库,且云主机的内核版本不同。本人在配置时并未配置。
基本都是yum -y install epel-release && yum -y install salt-minion
4,zabbix agent
监控是必不可少的。本人使用的是zabbix
[root@linux-2 init]# cat zabbix.sls
include:
- init.cpe.pkg-init #这个是自己定义的pkg文件目录
create_zabbix_user: #创建zabbix用户和组
user.present:
- name: zabbix
- shell: /sbin/nologin
group.present:
- name: zabbix
zabbix_tar:
file.managed:
- name: /tmp/zabbix-3.0.4.tar.gz
- source: salt://init/files/zabbix/zabbix-3.0.4.tar.gz
- user: root
- mode: 0644
/home/zabbix_download:
file.directory:
- user: root
- group: root
zabbix_install:
cmd.run:
- name: cd /home/zabbix_download && tar fx /tmp/zabbix-3.0.4.tar.gz -C /home/zabbix_download && cd zabbix-3.0.4 && ./configure --prefix=/usr/local/zabbix --enable-agent && make install && cp /home/zabbix_download/zabbix-3.0.4/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/ && cp /usr/local/zabbix/sbin/zabbix_agentd /usr/local/sbin/
file.managed:
- name: /usr/local/zabbix/etc/zabbix_agentd.conf
- source: salt://init/files/zabbix/zabbix_agentd.conf
- template: jinja
- defaults:
ID: {{pillar['ID']}}
- user: root
- group: root
- mode: 0644
service.running:
- name: zabbix_agentd
- enable: True
- watch:
- file: zabbix_install
- pkg: pkg-init
PS:ID: {{pillar['ID']}}这个是jinja2模版,自定义
基本的初始化安装就这些了,其他的功能服务按照需求来配置,写完基础的sls文件之后,要写总的调用文件
vim env_init.sls
include: #执行以下文件
- init.history
- init.audit
- init.sysctl
- init.zabbix
入口文件top.sls
cd /src/salt/base
vim top.sls
base:
"*":
- init.env_init
PS:.是目录,比如/root/base.在top.sls文件中就是root.base