saltstack系列2之zabbix-agent自动化部署

实施前提条件

  1. zabbix-agent通过编译安装的,打成tar包,并且自己先配好master的ip等等之类的配置在/etc下,然后我们后面只需要修改一个Hostname这个配置项即可。。
  2. 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

没有报错说明执行成功了

查看帮助:

  1. 查看user.present
[root@salt ~]# salt 'data*' sys.state_doc user.present
  1. 查看file.directory
[root@salt ~]# salt "*" sys.state_doc file.directory
posted @ 2017-03-08 14:03  温柔易淡  阅读(1005)  评论(0编辑  收藏  举报