SaltStack批量安装zabbix-agent(yum安装)
1.首先获取一下Yum源中的zabbix-agent包名
yum list | grep zabbix-agent
获取到的包名字是:zabbix22-agent
注:本次实验是参考旧版的安装方式,可能不适用于现在,现在yum安装zabbix的方法,请参考官网:https://www.zabbix.com/documentation/3.4/manual/installation/install_from_packages/rhel_centos
2.创建master对zabbix的管理目录
cd /srv/salt/base mkdir -p zabbix/files vim zabbix-agent.sls
3.配置zabbix-agent状态管理文件
注:配置中导入了之前写的yum的配置,参考:https://www.cnblogs.com/Jackie-Chen/articles/10794524.html
include: #导入yum的状态模块
- init.yum-repo #在base/init目录下的yum-repo文件,安装包的时候,会通过该文件指定的yum源进行安装
zabbix-agent: pkg.installed: - name: zabbix22-agent
- require:
- file: /etc/yum.repos.d/epel-6.repo #注:这个是一个id,在上面导入的yum.repo中定义的一个id file.managed: - name: /etc/zabbix_agentd.conf - source: salt://zabbix/files/zabbix_agentd.conf - user: root - group: root - mode: 644 - template: jinja #使用jinja模板语言来定义2个变量,传到zabbix的配置文件中 - defaults: ZABBIX_SERVER: 192.168.56.11 AGENT_HOSTNAME: {{ grains['fqdn'] }} #使用grains来获取fqdn,这个获取到的是,通过minion主机的ip解析出来的主机名 - require: #添加个依赖 - pkg: zabbix-agent #依赖状态id是zabbix-agent中的pkg的状态只有包装上了,才会管理这个文件,如果没装上,不会管理该文件 service.running: - name: zabbix-agent - enable: True - watch: - file: zabbix-agent #如果管理的这个文件发生变化,服务将会重启 - pkg: zabbix-agent #如果包发生变化(例如升级),服务将会重启
zabbix_agentd.conf.d:
file.directory:
- name: /etc/zabbix_agentd.conf.d
- watch_in: #被zabbix-agent中的service状态监控,如果该目录发生变化了,那么,service的状态
- service: zabbix-agent
- require:
- pkg: zabbix-agent
- file: zabbix-agent
4.配置master管理的zabbix源配置文件
cp /etc/zabbix_agentd.conf /srv/salt/base/zabbix/files vim /srv/salt/base/zabbix/files/zabbix_agentd.conf 修改以下内容: Server={{ ZABBIX_SERVER }} Hostname={{ AGENT_HOSTNAME }} #这两个地方接收的是zabbinx-agent.sls状态中jinja模板语言定义的变量
注:在/etc目录下存在zabiix的配置文件,是因为已经使用一台测试机yum装过zabbix了,所以会有配置文件。
在zabbix_agentd.conf中指定其他配置文件所在的目录
vim /etc/zabbix_agentd.conf
放开下面的注释,如果没写则添加上
Include=/etc/zabbix_agentd.conf.d/
5.对状态进行测试
salt 'linux-node1' state.sls zabbix.zabbix-agent test=True
6.如果测试没有报错,那么执行状态
salt 'linux-node1' state.sls zabbix.zabbix-agent
待续。。。