Saltstack配置管理-给minion增加Zabbix-agent
zabbix-agent的包
[root@A ~]# rpm -qa |grep zabbix
zabbix-2.4.8-1.el6.x86_64
zabbix-web-2.4.8-1.el6.noarch
zabbix-web-mysql-2.4.8-1.el6.noarch
zabbix-server-mysql-2.4.8-1.el6.x86_64
zabbix-server-2.4.8-1.el6.x86_64
zabbix-agent-2.4.8-1.el6.x86_64
zabbix-get-2.4.8-1.el6.x86_64
zabbix-release-2.4-1.el6.noarch
[root@A ~]#

因为我们想让一个系统在配置业务之前就让它被监控到,因此写的配置zabbix的状态文件应该放到系统初始化里面的

可以看到配置文件使用了jinja模板,把变量提取出来。可以这么理解,Server后面就是10.0.1.161, 而这个10.0.1.161是通过pillar获取的,pillar文件在/srv/salt/pillar文件里
[root@master prod]# cd /srv/salt/base/init/
[root@master init]# ls
audit.sls dns.sls env_init.sls files history.sls sysctl.sls
[root@master init]# vim zabbix_agent.sls
[root@master init]# cat zabbix_agent.sls
zabbix-agent-install:
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-agent']['Zabbix-Server'] }}
- require:
- pkg: zabbix-agent-install
service.running:
- name: zabbix-agent
- enable: True
- watch:
- pkg: zabbix-agent-install
- file: zabbix-agent-install
[root@master init]#

上面内容用到了pillar

目前还没有pillar,执行肯定会报错
下面这个是个两级的key

pillar['zabbix-agent']['Zabbix-Server']

对pillar进行管理

vim /etc/salt/master

pillar_roots:
base:
- /srv/pillar/base

重启服务,建立pillar的基础目录

[root@master init]# vim /etc/salt/master
[root@master init]# /etc/init.d/salt-master restart
Stopping salt-master daemon: [ OK ]
Starting salt-master daemon: [ OK ]
[root@master init]# mkdir /srv/pillar/base -p
[root@master init]#

建立zabbix相关的pillar配置

[root@master base]# cd /srv/pillar/base/
[root@master base]# cat zabbix.sls
zabbix-agent:
Zabbix-Server: 10.0.1.161
[root@master base]# cat top.sls
base:
'*':
- zabbix
[root@master base]#

把现网zabbix-agent文件传输到master机器上

我本地有个10.0.1.161机器安装了zabbix-agent

[root@A ~]# ll /etc/zabbix/
total 32
drwxr-x---. 2 apache apache 4096 Nov 29 05:55 web
-rw-r--r--. 1 root root 7905 Nov 29 05:59 zabbix_agentd.conf
drwxr-xr-x. 2 root root 4096 Nov 29 03:13 zabbix_agentd.d
-rw-r-----. 1 root zabbix 13545 Nov 29 05:45 zabbix_server.conf
[root@A ~]# nc -l 18080 < /etc/zabbix/zabbix_agentd.conf
[root@A ~]#

master机器获取zabbix-agent的配置文件

[root@master base]# cd /srv/salt/base/init/files/
[root@master files]# nc 10.0.1.161 18080 > zabbix_agentd.conf
[root@master files]#

修改此配置文件,把变量的值替换为一个jinja模板形式的变量

[root@master files]# grep Server=  zabbix_agentd.conf
# Server=
Server=10.0.1.161
[root@master files]# grep ^Server= zabbix_agentd.conf
Server=10.0.1.161
[root@master files]# grep 10.0.1.161 zabbix_agentd.conf
Server=10.0.1.161
[root@master files]# sed -i 's#10.0.1.161#{{ Server }}#g' zabbix_agentd.conf
[root@master files]# grep ^Server= zabbix_agentd.conf
Server={{ Server }}
[root@master files]#

刷新pillar信息,尝试是否可以获取

这里用到了pillar.get模块

[root@master files]# salt '*' saltutil.refresh_pillar
minion02:
True
minion01:
True
[root@master files]# salt '*' pillar.items
minion01:
----------
zabbix-agent:
----------
Zabbix-Server:
10.0.1.161
minion02:
----------
zabbix-agent:
----------
Zabbix-Server:
10.0.1.161
[root@master files]# salt '*' pillar.get zabbix-agent
minion02:
----------
Zabbix-Server:
10.0.1.161
minion01:
----------
Zabbix-Server:
10.0.1.161
[root@master files]# salt '*' pillar.get zabbix-agent:Zabbix-Server
minion01:
10.0.1.161
minion02:
10.0.1.161
[root@master files]#

把安装zabbi_agent的状态模块include系统初始化模块里

[root@master init]# pwd
/srv/salt/base/init
[root@master init]# ll
total 28
-rw-r--r-- 1 root root 173 Jan 1 21:39 audit.sls
-rw-r--r-- 1 root root 131 Jan 1 21:20 dns.sls
-rw-r--r-- 1 root root 92 Jan 2 16:18 env_init.sls
drwxr-xr-x 2 root root 4096 Jan 2 16:09 files
-rw-r--r-- 1 root root 88 Jan 1 21:25 history.sls
-rw-r--r-- 1 root root 174 Jan 1 21:55 sysctl.sls
-rw-r--r-- 1 root root 466 Jan 2 15:58 zabbix_agent.sls
[root@master init]# cat env_init.sls
include:
- init.dns
- init.history
- init.audit
- init.sysctl
- init.zabbix_agent
[root@master init]#

 先测试,没问题再安装

----------
ID: zabbix-agent-install
Function: pkg.installed
Name: zabbix-agent
Result: None
Comment: The following packages are set to be installed/updated: zabbix-agent
Started: 16:20:57.360039
Duration: 4128.621 ms
Changes:
----------
ID: zabbix-agent-install
Function: file.managed
Name: /etc/zabbix/zabbix_agentd.conf
Result: None
Comment: The file /etc/zabbix/zabbix_agentd.conf is set to be changed
Started: 16:21:01.489318
Duration: 9.849 ms
Changes:
----------
newfile:
/etc/zabbix/zabbix_agentd.conf
----------
ID: zabbix-agent-install
Function: service.running
Name: zabbix-agent
Result: None
Comment: Service is set to be started
Started: 16:21:01.505098
Duration: 9.422 ms
Changes: Summary
------------
Succeeded: 9 (unchanged=3, changed=1)
Failed: 0
------------
Total states run: 9
[root@master base]# salt 'minion01' state.sls init.env_init test=True

对左右minion执行安装,截取后面的执行过程

                  +#	It is allowed to include multiple LoadModule parameters.
+#
+# Mandatory: no
+# Default:
+# LoadModule=
----------
ID: zabbix-agent-install
Function: service.running
Name: zabbix-agent
Result: True
Comment: Service zabbix-agent has been enabled, and is running
Started: 16:22:21.084665
Duration: 137.363 ms
Changes:
----------
zabbix-agent:
True Summary
------------
Succeeded: 9 (changed=3)
Failed: 0
------------
Total states run: 9
[root@master base]# salt '*' state.sls init.env_init

 验证确认

[root@master base]# salt '*'  cmd.run 'ps -ef | grep zabbix'
minion01:
zabbix 24282 1 0 16:22 ? 00:00:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix 24284 24282 0 16:22 ? 00:00:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix 24285 24282 0 16:22 ? 00:00:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix 24286 24282 0 16:22 ? 00:00:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix 24287 24282 0 16:22 ? 00:00:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix 24288 24282 0 16:22 ? 00:00:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
root 24307 24306 0 16:23 ? 00:00:00 /bin/sh -c ps -ef | grep zabbix
root 24309 24307 0 16:23 ? 00:00:00 grep zabbix
minion02:
zabbix 18617 1 0 16:22 ? 00:00:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix 18618 18617 0 16:22 ? 00:00:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix 18620 18617 0 16:22 ? 00:00:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix 18621 18617 0 16:22 ? 00:00:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix 18622 18617 0 16:22 ? 00:00:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix 18623 18617 0 16:22 ? 00:00:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
root 18649 18648 0 16:23 ? 00:00:00 /bin/sh -c ps -ef | grep zabbix
root 18651 18649 0 16:23 ? 00:00:00 grep zabbix
[root@master base]# salt '*' cmd.run 'chkconfig --list zabbix-agent'
minion02:
zabbix-agent 0:off 1:off 2:on 3:on 4:on 5:on 6:off
minion01:
zabbix-agent 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@master base]#

  至此zabbix-agent也安装完成

 

 

 

saltstack实战4--综合练习4的更多相关文章

  1. SaltStack实战

    SaltStack实战 #安装 安装注意几点 python-libs-2.6.6-64.el6.x86_64 conflicts with file from package python-2.6.6 ...

  2. zz《分布式服务架构 原理、设计与实战》综合

    这书以分布式微服务系统为主线,讲解了微服务架构设计.分布式一致性.性能优化等内容,并介绍了与微服务系统紧密联系的日志系统.全局调用链.容器化等. 还是一样,每一章摘抄一些自己觉得有用的内容,归纳整理, ...

  3. saltstack实战4--综合练习3

    Saltstack配置管理-业务引用haproxy 在业务模块里写它的配置 各个业务是不同的,这里有差异性,所以没写在配置模块里. 对minion02也执行安装haproxy [root@master ...

  4. saltstack实战4--综合练习2

    Saltstack配置管理-功能模块-安装haproxy 配置管理,我们分了3层 最底层是系统初始化部分 倒数二层是功能模块,就是具体的产品的安装了 假如你的环境需要nginx,php,memcach ...

  5. saltstack实战4--综合练习1

    规范配置管理 实际工作中可能会有现网环境,基线环境,开发环境. 需要使用saltstack统一管理.机器多了,业务多了,可能配置文件存放的会比较乱,因此可以统一管理起来 我们可以再加2个目录,test ...

  6. saltstack实战3--配置管理之pillar

    数据系统-Pillar pillar和grains类似,但是它能给minion指定它想要的数据,安全性较好,另外它是在master端设置的   应用场景: grains的特性–每次启动汇报.静态决定了 ...

  7. saltstack实战3--配置管理之grains

    grains是什么 grains是minion服务启动后,采集的客户端的一些基本信息,硬件信息,软件信息,网络信息,软件版本等.你可以在minion上自定义一些grains信息. 它是静态的信息,mi ...

  8. saltstack实战3--配置管理之YAML语法

    本文来自如下链接http://docs.saltstack.cn/topics/yaml/index.html 了解YAML 默认的SLS文件的renderer是YAML renderer.YAML是 ...

  9. saltstack实战2--远程执行之目标(target)

    target 就是目标的意思,你要在那台机器上执行此命令或此状态.或者说将此动作或者状态文件推送给谁来执行,让那个minion执行可以进行一些匹配 对于拥有大量机器的环境,如果单独一台台的执行指定mi ...

随机推荐

  1. css知识汇总

    <style type="text/css"> table{ border-collapse:collapse; } table, td, th{ border:1px ...

  2. 内存映射文件详解-----C++实现

    先不说内存映射文件是什么.贴个代码先,. #include <iostream> #include <fcntl.h> #include <io.h> #inclu ...

  3. Bootstrap栅格系统(布局)

    栅格系统(布局) Bootstrap内置了一套响应式.移动设备优先的流式栅格系统,随着屏幕设备或视口(viewport)尺寸的增加,系统会自动分为最多12列. 我在这里是把Bootstrap中的栅格系 ...

  4. JAVA 正则表达式 (超详细)

    (PS:这篇文章为转载,我不喜欢转载的但我觉得这篇文章实在是超赞了,就转了过来,这篇可以说是学习JAVA正则表达的必读篇.作者是个正真有功力的人,阅读愉快) 在Sun的Java JDK 1.40版本中 ...

  5. php 处理高并发的思路

    1.nginx 服务器,提高网站服务器并发性能 2.控制大文件的下载,减少CPU的消耗. 3.对于sql查询做缓存. 4.静态页面文件缓存. 5.CND缓存静态文件, 6.反向代理到多个服务器,用来分 ...

  6. log_bin_trust_function_creators错误解决

    log_bin_trust_function_creators错误解决   当有mysql本地或远程建立function或procedure时报上面的错误  经试验是log_bin_trust_fun ...

  7. 浅谈TCP优化

    原文地址:http://kb.cnblogs.com/page/197406/ 很多人常常对TCP优化有一种雾里看花的感觉,实际上只要理解了TCP的运行方式就能掀开它的神秘面纱.Ilya Grigor ...

  8. 【转】python的内存管理机制

    http://developer.51cto.com/art/201007/213585.htm 内存管理,对于Python这样的动态语言,是至关重要的一部分,它在很大程度上甚至决定了Python的执 ...

  9. WIN8重见开始菜单

    从win7进入win8感觉不适应,做为一个程序开发人员,更觉得不爽,因此想着如何恢复开始菜单,查了很多文章终于找到方法 首先,在桌面版Windows 8启动资源管理器,单击工具栏上的“查看”选项卡后, ...

  10. hive-0.10.0-cdh4.3.0安装

    1.我使用的Hadoop2.0-cdh4.3.0,相应hive配套版本号hive-0.10.0-cdh4.3.0.    2.改动hive/conf下hive-site.xml文件,无则创建hive- ...