使用SaltStack自动化安装zabbix-server

  1,设置ntp时间同步

  2,安装zabbix-agent

  3,安装zabbix-server  

  4,安装及配置mariadb(mariadb与zabbix-server在同一台服务器)

 

  环境

SaltStack自动化安装zabbix-server_定时任务

  

  salt-master配置/etc/salt/master

SaltStack自动化安装zabbix-server_时间同步_02

  开启top

SaltStack自动化安装zabbix-server_ide_03

  目录结构

SaltStack自动化安装zabbix-server_mysql_04

 

  ntp/install.sls

ntp-install:
  pkg.installed:
    - name: ntpdate

ntp-crontab:
  cmd.run:
    - name: echo '*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com' >>/var/spool/cron/root
    - unless: test `grep 'ntpdate' /var/spool/cron/root | wc -l` > 0

  安装ntpdate时间同步软件并且设置定时任务每隔5分钟同步时间

  这里设置一个unless假如已经在定时任务里面有设置时间同步则不执行设置以防重复

 

  zabbix-agent/install.sls

zabbix-agent-install:
  cmd.run:
    - name: rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
    - unless: test -f /etc/yum.repos.d/zabbix.repo
  pkg.installed:
    - name: zabbix-agent

zabbix-agent-service:
  service.running:
    - name: zabbix-agent
    - enable: True

  设置zabbix-agent源并且安装zabbix-agent设置自启动

  假如已经安装了源则不设置yum源

  

  zabbix-server/install.sls

zabbix-server-install:
  cmd.run:
    - name: rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
    - unless: test -f /etc/yum.repos.d/zabbix.repo
  pkg.installed:
    - pkgs:
      - zabbix-server-mysql
      - zabbix-web-mysql

zabbix-server-service:
  service.running:
    - name: zabbix-server
    - enable: True

zabbix-server-config:
  file.managed:
    - name: /etc/httpd/conf.d/zabbix.conf
    - source: salt://zabbix-server/files/zabbix.conf
    - mode: 644
    - user: root
    - group: root

httpd-config:
  file.managed:
    - name: /etc/httpd/conf/httpd.conf
    - sourec: salt://zabbix-server/files/httpd.conf
    - mode: 644

  安装zabbix-server并且设置配置文件

  配置文件zabbix.conf修改时区为Asia/Shanghai

  配置文件httpd.conf修改了 ServerName 127.0.0.1:80

 

  mariadb/install.sls

mariadb-install:
  pkg.installed:
    - name: mariadb-server

mariadb-service:
  service.running:
    - name: mariadb
    - enable: True

mariadb-config:
  cmd.run:
    - name: mysql -e "create database zabbix character set utf8 collate utf8_bin;grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';grant all privileges on zabbix.* to zabbix@'%' identified by 'zabbix';" && zcat `rpm -ql zabbix-server-mysql|grep create.sql.gz`|mysql -uzabbix -pzabbix zabbix && systemctl restart httpd
    - require:
      - service: mariadb-service

  安装mariadb并且初始化zabbix库

  这里刚刚安装mysql没有设置mysql密码,假如库zabbix已经存在会报错

 

  top.sls

base:
  'web1.example.com':
    - ntp.install
    - zabbix-agent.install
    - zabbix-server.install
    - mariadb.install

  给节点安装执行

salt '*' state.highstate

  如果是单独节点需要安装设置ntp和zabbix-agent则单独执行即可

  

  执行完毕验证在浏览器输入地址安装配置即可

http://192.168.0.209/zabbix/zabbix.php