salt服务器的根目录为:/srv/salt/    (下面写salt服务器路径都是在此目录下)

一、服务端准备工作(建目录,写配置文件)

   Windows和linux批量部署准备工作

    1、新建目录:

        /conf/windows/zabbix_agentd

        /file/windows/zabbix_agentd/tmp

        /sls/zabbix_agentd

        /conf/linux/zabbix_agentd

    2、新建文件:

        1.1、top.sls

[root@zabbix salt]# cat top.sls base:  '*':    - sls.zabbix_agentd.install    - sls.zabbix_agentd.conf

        1.2、/conf/windows/zabbix_agentd/zabbix_agentd_conf.bat

[root@zabbix salt]# cat conf/windows/zabbix_agentd/zabbix_agentd_conf.bat @echo off setlocal enabledelayedexpansion set file=c:\zabbix_agentd.confset "file=%file:"=%" for %%i in ("%file%") do set file=%%~fi echo. set replaced=windowsagentdecho. set all=%computername%for /f "delims=" %%i in ('type "%file%"') do (     set str=%%i     set "str=!str:%replaced%=%all%!"     echo !str!>>"%file%"_tmp.txt ) copy "%file%" "%file%"_bak.txt >nul 2>nul move "%file%"_tmp.txt "%file%" start "" "%file%"

        1.2、/file/windows/zabbix_agentd/tmp/zabbix_agentd.log

        1.3、/sls/zabbix_agnetd/conf.sls

[root@zabbix salt]# cat sls/zabbix_agentd/conf.sls {% if grains ['os'] == 'CentOS' %}  zabbix_agentd_conf:    file.managed:      - name: /usr/local/etc/zabbix_agentd.conf      - source: salt://conf/linux/zabbix_agentd/zabbix_agentd.conf      - template: jinja      - defaults:        Hostname: {
{ grains ['ip_interfaces']['eth1'][0]}}  zabbix_agentd_service:    file.managed:      - name: /etc/init.d/zabbix_agentd      - user: root      - mode: 755      - source: salt://conf/linux/zabbix_agentd/zabbix_agentd    cmd.run:      - names:        - /bin/chmod +x /etc/init.d/zabbix_agentd        - /sbin/chkconfig --add zabbix_agentd        - /sbin/chkconfig zabbix_agentd on        - /etc/init.d/zabbix_agentd start      - unless: /sbin/chkconfig --list zabbix_agentd    service.running:      - name: zabbix_agentd      - enable: True      - restart: True      - watch:        - file: /usr/local/etc/zabbix_agentd.conf{% elif grains ['os'] == 'Windows' %}  zabbix_agentd_file:    file.recurse:      - source: salt://file/windows/zabbix_agentd      - name: c:/      - makedir: True      - backup: minion      - unless: c:/zabbix-2.4.4  zabbix_agentd_conf:    file.managed:      - name: C:/zabbix_agentd.conf      - source: salt://conf/windows/zabbix_agentd/zabbix_agentd.conf      - unless: test -d c:/zabbix_agentd.conf  zabbix_agentd_bat:    file.managed:      - name: C:/zabbix_agentd_conf.bat      - source: salt://conf/windows/zabbix_agentd/zabbix_agentd_conf.bat      - unless: test -d c:/zabbix_agentd_conf.bat  zabbix_agentd_change:    cmd.run:      - names:        - c:/zabbix_agentd_conf.bat      - require:        - file: zabbix_agentd_bat  zabbix_agentd:    cmd.run:      - names:        - c:/zabbix-2.4.4/bin/win64/zabbix_agentd.exe      - unless:         - stderr:zabbix_agentd.exe{% endif %}

        1.4、/sls/zabbix_agentd/install.sls

[root@zabbix salt]# cat sls/zabbix_agentd/install.sls {% if grains['os'] == 'CentOS' %}  zabbix_agentd_source:    file.managed:      - name: /tmp/zabbix-2.4.4.tar.gz      - unless: test -e /tmp/zabbix-2.4.4.tar.gz      - user: root      - goup: root      - makedirs: True      - source: salt://file/linux/zabbix_agentd/zabbix-2.4.4.tar.gz  zabbix_agentd_extract:    cmd.run:      - cwd: /tmp      - names:        - tar xvf zabbix-2.4.4.tar.gz      - unless: test -d /tmp/zabbix-2.4.4      - require:        - file: zabbix_agentd_source  zabbbix_user:    user.present:      - name: zabbix      - createhome: Fales      - gid_from_name: True      - shell: /sbin/nologin  zabbix_agentd_compile:    cmd.run:      - cwd: /tmp/zabbix-2.4.4      - names:         - ./configure --enable-agent      - unless: test -d /tmp/zabbix-2.4.4      - require:        - cmd: zabbix_agentd_extract  zabbix_agentd_make:    cmd.run:      - cwd: /tmp/zabbix-2.4.4      - names:        - make install      - unless: test -d /tmp/zabbix-2.4.4      - require:        - cmd: zabbix_agentd_compile{% elif grains['os'] == 'Windows' %}  {% endif %}

    1.4、

    3、安装文件摆放:

    将zabbix-2.4.4.tar.gz复制到file/linux/zabbix_agentd目录下     

解压zabbix-2.4.4.tar.gz,将解压出来的zabbix-2.4.4整个文件夹复制到:/file/windows/zabbix_agentd/

    4、修改配置文件:

        4.1、将安装包里面的conf/zabbix_agentd.conf复制到salt服务器conf/linux/zabbix_agentd/zabbix_agentd.conf并修改内容

    Server=192.168.203.30,192.168.203.1 #你的服务器地址以及服务器网关,如果是跨网段最好写上网关。    ServerActive=192.168.203.30,192.168.203.1    Hostname={
{ grains ['ip_interfaces']['eth1'][0] }}    #获取IP地址赋值给hostname

        4.2、将安装包里面的 misc/init.d/fedora/core/zabbix_agentd文件复制到salt服务器conf/windows/zabbix_agentd/zabbix_agentd

        4.3、将安装包里面的conf/zabbix_agentd.win.conf复制到salt服务器conf/windows/zabbix_agentd/zabbix_agentd.conf并修改内容

    Server=192.168.203.30,192.168.203.1 #你的服务器地址以及服务器网关,如果是跨网段最好写上网关。    ServerActive=192.168.203.30,192.168.203.1    Hostname=windowsagentd    #为了bat而定义的hostname,如果更改hostname为其他字符,后面的bat文件也要更改。