目录规划如下:
[root@linux-node1 /srv]# tree .├── pillar│ ├── base│ │ ├── top.sls│ │ └── zabbix│ │ └── agent.sls│ └── prod└── salt ├── base │ ├── init │ │ ├── audit.sls │ │ ├── dns.sls │ │ ├── env_init.sls │ │ ├── epel.sls │ │ ├── files │ │ │ ├── resolv.conf │ │ │ └── zabbix_agentd.conf │ │ ├── history.sls │ │ ├── sysctl.sls │ │ └── zabbix_agent.sls │ └── top.sls └── prod9 directories, 12 files
1、修改salt-master配置文件,重启master,创建相应的目录!
[root@linux-node1 ~]# egrep -A 4 ^file_roots /etc/salt/masterfile_roots: base: - /srv/salt/base prod: - /srv/salt/prod[root@linux-node1 ~]# grep -EA 4 ^pillar_roots /etc/salt/masterpillar_roots: base: - /srv/pillar/base prod: - /srv/pillar/prodmkdir -p /srv/salt/basemkdir -p /srv/salt/prodmkdir -p /srv/pillar/basemkdir -p /srv/pillar/prod
2、base环境的sls状态文件的配置
[root@linux-node1 ~]# cd /srv/salt/base/[root@linux-node1 /srv/salt/base]# tree.├── init#系统初始化模块│ ├── audit.sls#记录命令操作到:/var/log/messages│ ├── dns.sls#本地DNS解析文件:/etc/resolv.conf│ ├── env_init.sls#将其它的sls包括在一个文件里│ ├── epel.sls#配置epel源│ ├── files#此目录存放相应的文件│ │ ├── resolv.conf│ │ └── zabbix_agentd.conf│ ├── history.sls#命令历史记录格式的调整│ ├── sysctl.sls#内核参数优化│ └── zabbix_agent.sls#zabbix-agent└── top.sls2 directories, 10 files
##########################################################################################
[root@linux-node1 /srv/salt/base]# cat 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"; }'
[root@linux-node1 /srv/salt/base]# cat init/dns.sls /etc/resolv.conf: file.managed: - source: salt://init/files/resolv.conf - user: root - group: root - mode: 644
[root@linux-node1 /srv/salt/base]# cat init/epel.sls yum_repo_release: pkg.installed: - sources: - epel-release: http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm - zabbix-release: http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
[root@linux-node1 /srv/salt/base]# cat init/history.sls /etc/profile: file.append: - text: - export HISTTIMEFORMAT="%F %T `whoami` "
[root@linux-node1 /srv/salt/base]# cat init/sysctl.sls net.ipv4.ip_local_port_range: sysctl.present: - value: 10000 65000fs.file-max: sysctl.present: - value: 2000000net.ipv4.ip_forward: sysctl.present: - value: 1vm.swappiness: sysctl.present: - value: 0
[root@linux-node1 /srv/salt/base]# cat init/zabbix_agent.sls 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_Server'] }} Hostname: { { grains['fqdn'] }} - require: - pkg: zabbix-agent service.running: - enable: True - watch: - pkg: zabbix-agent - file: zabbix-agentzabbix_agentd.conf.d: file.directory: - name: /etc/zabbix/zabbix_agentd.d - watch_in: - service: zabbix-agent - require: - pkg: zabbix-agent - file: zabbix-agent
[root@linux-node1 /srv/salt/base]# cat init/env_init.sls include: - init.audit - init.dns - init.epel - init.history - init.sysctl - init.zabbix_agent
[root@linux-node1 /srv/salt/base]# cat init/files/resolv.conf # Generated by NetworkManagersearch oldboyedu.comnameserver 114.114.114.114nameserver 8.8.8.8
[root@linux-node1 /srv/salt/base]# vim init/files/zabbix_agentd.conf 95 Server={ { Server }}147 Hostname={ { Hostname }}
[root@linux-node1 /srv/salt/base]# cat top.sls base: '*': - init.env_init
3、pillar的配置
[root@linux-node1 /srv/salt/base]# cd /srv/pillar/base/[root@linux-node1 /srv/pillar/base]# tree.├── top.sls└── zabbix └── agent.sls1 directory, 2 files
[root@linux-node1 /srv/pillar/base]# cat top.sls base: '*': - zabbix.agent
[root@linux-node1 srv/pillar/base]# cat zabbix/agent.sls Zabbix_Server: 192.168.56.11
4、验证:执行高级状态
salt '*' state.highstate