一、目录树

zabbix_client/

├── conf.sls

├── files

│   ├── zabbix-2.4.7.tar.gz

│   ├── zabbix_agentd

│   └── zabbix_agentd.conf

├── init.sls

└── install.sls


1 directory, 6 files


二、文件详解


(1)vim init.sls(与top.sls链接文件)

include:

  - zabbix_client.install

  - zabbix_client.conf              


(2)vim install.sls

#安装文件


zabbix_client_source:

  file.managed:

    - name: /tmp/zabbix-2.4.7.tar.gz

    - unless: test -e /tmp/zabbix-2.4.7.tar.gz

    - user: root

    - group: root

    - makedirs: True

    - source: salt://zabbix_client/files/zabbix-2.4.7.tar.gz

zabbix_client_extract:

  cmd.run:

    - cwd: /tmp

    - names:

      - tar -zxvf zabbix-2.4.7.tar.gz

    - unless: test -d /tmp/zabbix-2.4.7

    - require:

      - file: zabbix_client_source

zabbix_user:

  user.present:

    - name: zabbix

    - createhome: False

    - gid_from_name: False

    - shell: /sbin/nologin

pkgs_install:

  pkg.installed:

    - pkgs:

      - gcc

zabbix_client_compile:

  cmd.run:

    - cwd: /tmp/zabbix-2.4.7

    - names:

      - ./configure --prefix=/zabbix_client --enable-agent

    - require:

      - cmd: zabbix_client_extract

      - pkg: pkgs_install

zabbix_client_make:

  cmd.run:

    - cwd: /tmp/zabbix-2.4.7

    - names:

      - make

      - make install

    - reqiure:

      - cmd: zabbix_client_compile

                                  

(3)vim  conf.sls

include:

  - zabbix_client.install

zabbix_client_conf:

  file.managed:

    - name: /zabbix_client/etc/zabbix_agentd.conf

    - source: salt://zabbix_client/files/zabbix_agentd.conf

    - template: jinja

    - defaults:

zabbix_client_service:

  file.managed:

    - name: /etc/init.d/zabbix_agentd

    - user: root

    - mode: 755

    - source: salt://zabbix_client/files/zabbix_agentd

  cmd.run:

    - names:

      - /bin/chmod +x /etc/init.d/zabbix_agentd

      - /sbin/chkconfig --add zabbix_agentd

      - /sbin/chkconfig zabbix_agentd on

    - unless: /sbin/chkconfig --list zabbix_agentd

  service.running:

    - name: zabbix_agentd

    - enable: True

    - restart: True

    - watch:

      - file: /zabbix_client/etc/zabbix_agentd.conf

值得一提的是:在zabbix_agent.conf中Hostname={{grains['ip_interfaces']['eth0'][0]}}


                                                       

filesl里的东西都是可以下载的。在执行这个过程中。遇到的问题:

(1)在执行:salt 'minion' state.highstate test=True

出现:ID service.running in SLS  is not a dictionary

出现这个错误就是说明在运行service.running 那个文件里存在个错误。不能容忍的,连他妈最开始的编译都过不去。以致于都不认为是个.sls文件了。可能是语法啦。格式啦。卧槽。我的就是service.running 那段整体都没缩进。


(2)再一个错误就是:

 [salt.master                              ][ERROR   ][2374] Received minion error from [minion]: The minion function caused an exception

会出现一堆你不懂的python代码报错。一看是minion给出的。就去猜是minion的错误,客户端的事呢,还是系统的问题呢。别瞎想了。又是你的.sls文件的问题。我的是在写  - require 时,竟然×××的跟上边 - names 下的对齐了。require该说了。老子是跟 - names 一级别的你让我跟你的下级对齐。大爷的。找管家。于是python出来了。一顿骂。。


(3)在执行过程中,遇到了因为我的系统都是最小化安装。在编译过程中报错缺少gcc ,给他装上。省得事多。于是就多了pkgs_install:等等


因为对salt的使用在上篇安装nginx我感觉很详细。这篇就是记录下zabbix_agent 的过程。。