zoukankan      html  css  js  c++  java
  • SaltStack学习笔记之安装zabbix_agentd(jinja和pillar)

    一、环境说明

    机器                IP                  主机名
    Master   192.168.0.23     minion.saltstack.com
    Minion   192.168.0.35     minion-node2.saltstack.com

    二、查看安装zabbix_agentd所需目录

    [root@minion salt]# tree
    ├── master
    ├── pillar                     #pillar工作目录
    │   ├── init                   
    │   │   └── zabbix_agent.sls   #pillar定义的值
    │   |
    |   └── top.sls                #pillar入口文件
    └── states                     #state工作目录
        ├── init
        │   ├── files
        │   │   └── zabbix_agentd.conf #作为标准配置文件,所有minion都已这个为准,内容得跟这个一样
        │   |
        │   └── zabbix_agent.sls   #定义各种关系   
        └── top.sls                #state入口文件

    三、配置Pillar

    定义Pillar工作路径

    vim /etc/salt/master
    pillar_roots:
      base:
        - /etc/salt/pillar

    配置pillar入口文件

    vim /etc/salt/pillar/top.sls
    base:                            #ID声明,自定义的
      'minion-node2.saltstack.com':  #远程主机ID
        - init.zabbix_agent          #配置文件在pillar工作目录(/etc/salt/pillar)下的/init/zabbix_agent.sls

    定义pillar值

    #此配置文件对应的是states目录(/etc/salt/states/init/)中zabbix_agent.sls中的pillar段
    vim /etc/salt/pillar/init/zabbix_agent.sls
    zabbix-agent:                    
      Zabbix_Server: 192.168.0.24
    

    #映射Pyhton字典为: {
    'zabbix-agent': { 'Zabbix_Server':192.168.0.24 } }

    四、配置states

    定义states工作路径

    file_roots:
      base:
        - /etc/salt/states        
      prod:
        - /etc/salt/states/prod

    定义states入口文件

    vim /etc/salt/states/top.sls
    base:                          #ID声明,自定义的
      '*':                         #远程主机ID
        - init.zabbix_agent        #配置文件是states工作目录(/etc/salt/states)下的/init/zabbix_agent.sls

    定义states配置文件

    vim /etc/salt/states/init/zabbix_agent.sls
    zabbix_agent:           #ID生命,自定义
      pkg.installed:       #安装软件
        - name: zabbix22-agent
    
    
    
    
      file.managed:  #管理文件模块
        - name: /etc/zabbix_agentd.conf                  #把标准配置文件放在客户端的这个位置
        - source: salt://init/files/zabbix_agentd.conf   #把标准文件放在Master端这个位置(salt://代表states工作目录(/etc/salt/states))
        - user: root  #属主
        - group: root #属组
        - mode: 644   #权限
        - template: jinja  #表示zabbix_agentd.conf使用jinja模板
        - defaults:
          Zabbix_Server: {{ pillar['zabbix-agent']['Zabbix_Server']  }}  #这个配置文件中Server段用了jinja模板语言,所以用pillar获取/etc/salt/pillar/init/zabbix_agent.sls的值
    
    
      service.running:            #服务管理
        - name: zabbix-agentd      #包名
        - enable: True             #开机启动
        - reload: True             #重载
        - watch:
          - file: zabbix_agent    #监控zabbix_agent这个ID下zabbix_agent.conf配置文件,是否发生改变

    配置Master端zabbix_agentd.sls

    vim /etc/salt/states/init/files/zabbix_agentd.conf 
    Server={{ Zabbix_Server  }} #把这段设置为jinja模板变量,表示这个值是变化的,pillar中定义为多少,minion端就应该是多少

     五、测试

    Master端

    salt '*' state.highstate 

    NOTE:

    • 查看Minion端的zabbix_agentd.conf文件中的ServerIP是不是在Master端/etc/salt/pillar/init/zabbix_agent.sls中配置的值
  • 相关阅读:
    实用的DBHelper帮助类
    无刷新分页技术
    Android回部古剑之ViewFlipper之仙人指路
    Android玉石短剑之GridView之精挑细选
    构建门户之利刃Liferay Portal系统架构
    Android回部古剑之ViewFlipper之翻来覆去
    Android凝碧剑之CalendarView之万年历
    自己动手写Web容器之TomJetty之四:静态页面起步
    Android白虹剑之EditView之非法输入
    AssetBundle压缩/内部结构/下载和加载
  • 原文地址:https://www.cnblogs.com/chadiandianwenrou/p/5948655.html
Copyright © 2011-2022 走看看