saltstack系列2之zabbix-agent自动化部署
实施前提条件
- zabbix-agent通过编译安装的,打成tar包,并且自己先配好master的ip等等之类的配置在/etc下,然后我们后面只需要修改一个Hostname这个配置项即可。。
- saltstack之间能够互相通信的。
配置文件如下:
[root@salt states]# pwd
/salt/states # 因为我的file_root是配置在这里
[root@salt states]# cat install_zabbix_agent.sls
/root/zabbix_agent2017-03-08.tar.gz:
file.managed:
- source: salt://zabbix_agent2017-03-08.tar.gz
zabbix-agent: # 指定zabbix-agent用户名
user.present: # 创建zabbix-agent用户
- shell: /sbin/nologin # 设置shell为不登陆
/var/log/zabbix/: # 指定文件路径
file.directory: # 创建目录
- user: zabbix-agent # 目录属主
- group: zabbix-agent
- mode: 755 # 目录权限
- makedirs: True # 是否创建目录
- watch: # 在创建用户之后执行
- user: zabbix-agent
unpack_zabbix_agent:
cmd.run:
- name: "tar zxf /root/zabbix_agent2017-03-08.tar.gz -C /usr/local/" # 解包
- watch:
- file: /root/zabbix_agent2017-03-08.tar.gz # 在复制完包后解压
set_config:
cmd.run:
- name: sed -i s/172.16.160.39/`ifconfig |grep -o "\<addr:.*ast\>" |awk -F":" '{print $2}' |awk '{print $1}'`/ /usr/local/zabbix_agent/etc/zabbix_agentd.conf && /usr/local/zabbix_agent/sbin/zabbix_agentd # 修改配置文件后启动agent
- watch:
- cmd: unpack_zabbix_agent # 在解压之后执行
zabbix_onboot:
cmd.run:
- name: echo "/usr/local/zabbix_agent/sbin/zabbix_agentd " >>/etc/rc.local
- watch:
- cmd: set_config
执行saltstack
[root@salt states]# salt 'data*' state.sls install_zabbix_agent
没有报错说明执行成功了
查看帮助:
- 查看user.present
[root@salt ~]# salt 'data*' sys.state_doc user.present
- 查看file.directory
[root@salt ~]# salt "*" sys.state_doc file.directory