saltstack实战4--综合练习4
[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的状态文件应该放到系统初始化里面的
[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进行管理
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的更多相关文章
- SaltStack实战
SaltStack实战 #安装 安装注意几点 python-libs-2.6.6-64.el6.x86_64 conflicts with file from package python-2.6.6 ...
- zz《分布式服务架构 原理、设计与实战》综合
这书以分布式微服务系统为主线,讲解了微服务架构设计.分布式一致性.性能优化等内容,并介绍了与微服务系统紧密联系的日志系统.全局调用链.容器化等. 还是一样,每一章摘抄一些自己觉得有用的内容,归纳整理, ...
- saltstack实战4--综合练习3
Saltstack配置管理-业务引用haproxy 在业务模块里写它的配置 各个业务是不同的,这里有差异性,所以没写在配置模块里. 对minion02也执行安装haproxy [root@master ...
- saltstack实战4--综合练习2
Saltstack配置管理-功能模块-安装haproxy 配置管理,我们分了3层 最底层是系统初始化部分 倒数二层是功能模块,就是具体的产品的安装了 假如你的环境需要nginx,php,memcach ...
- saltstack实战4--综合练习1
规范配置管理 实际工作中可能会有现网环境,基线环境,开发环境. 需要使用saltstack统一管理.机器多了,业务多了,可能配置文件存放的会比较乱,因此可以统一管理起来 我们可以再加2个目录,test ...
- saltstack实战3--配置管理之pillar
数据系统-Pillar pillar和grains类似,但是它能给minion指定它想要的数据,安全性较好,另外它是在master端设置的 应用场景: grains的特性–每次启动汇报.静态决定了 ...
- saltstack实战3--配置管理之grains
grains是什么 grains是minion服务启动后,采集的客户端的一些基本信息,硬件信息,软件信息,网络信息,软件版本等.你可以在minion上自定义一些grains信息. 它是静态的信息,mi ...
- saltstack实战3--配置管理之YAML语法
本文来自如下链接http://docs.saltstack.cn/topics/yaml/index.html 了解YAML 默认的SLS文件的renderer是YAML renderer.YAML是 ...
- saltstack实战2--远程执行之目标(target)
target 就是目标的意思,你要在那台机器上执行此命令或此状态.或者说将此动作或者状态文件推送给谁来执行,让那个minion执行可以进行一些匹配 对于拥有大量机器的环境,如果单独一台台的执行指定mi ...
随机推荐
- [iOS基础控件 - 6.11.3] 私人通讯录Demo 控制器的数据传递、存储
A.需求 1.搭建一个"私人通讯录"Demo 2.模拟登陆界面 账号 密码 记住密码开关 自动登陆开关 登陆按钮 3.退出注销 4.增删改查 5.恢复数据(取消修改) 这个代码 ...
- 转载robots.txt的学习
转载原地址: http://www.monring.com/seo/aspdotseo-robot.html 在国内,robots.txt文件,对于用户来说他是个可有可无的东西,也不会有人去看.但对于 ...
- WS103C8例程——串口2【worldsing笔记】
在超MINI核心板 stm32F103C8最小系统板上调试Usart2功能:用Jlink 6Pin接口连接WStm32f103c8的Uart2,PC机向mcu发送数据,mcu收到数据后数据加1,回传给 ...
- java 2 8 10 16
An integer literal may be expressed in decimal (base 10), hexadecimal (base 16), octal (base 8), or ...
- JavaScript随笔记(一)基础概念以及变量类型
一.JavaScript中的基础概念 1.defer属性 一般我们在引用外部js文件的时候往往是将引用文件的位置放在标签当中,比如那么在标签中引入多个js文件时,浏览器会按照引入顺序加载执行这些引入的 ...
- 从最简单的HelloWorld理解MVP模式
版权声明:本文为博主原创文章,转载请注明出处:http://www.cnblogs.com/joy99/p/6116855.html 大多数编程语言相关的学习书籍,都会以hello,world这个典型 ...
- 访问修饰符与可选修饰符static的使用
在Java中修饰符较多,在这里简单说一说几个访问修饰符的选择使用,和可选修饰符static的使用. 一.访问修饰符:这是Java里用来控制访问类及类的方法.变量的访问权限,从而达到只暴露接口,来隐藏内 ...
- python的random模块
As an example of subclassing, the random module provides the WichmannHill class that implements an a ...
- stl lower_bound upper_bound binary_search equal_range
自己按照stl实现了一个: http://www.cplusplus.com/reference/algorithm/binary_search/ 这里有个注释,如何判断两个元素相同: Two e ...
- goldengate的HANDLECOLLISIONS参数
HANDLECOLLISIONS 是一个 replicat 进程参数,主要在 initial load 中使用. 在 replicat 进程中使用该参数时,即使目标数据库环境中存在数据完整性问题(如 ...