實施前提條件
- 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.gzzabbix-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-agentunpack_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