1. 首页
  2. 技术知识

教你saltstack部署zabbix服务的方法

目录

    saltstack部署zabbix服务安装httpd、mysql、php

      安装httpd安装mysql安装php

    部署zabbix所需的lamp架构环境

      安装zabbix

saltstack部署zabbix服务

环境

主机 ip 服务
master 192.168.200.132 salt-matser
node1 192.168.200.133 salt-minion

[root@master salt]# tree prod/

prod/

|– modules

|   |– APPlication

|   |   `– php

|   |       |– files

|   |       |   |– install.sh

|   |       |   |– oniguruma-devel-6.8.2-2.el8.x86_64.rpm

|   |       |   |– php-7.4.24.tar.gz

|   |       |   |– php-fpm

|   |       |   |– php-fpm.conf

|   |       |   |– php-fpm.service

|   |       |   `– www.conf

|   |       `– install.sls

|   |– database

|   |   `– mysql

|   |       |– files

|   |       |   |– install.sh

|   |       |   |– my.cnf

|   |       |   |– mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz

|   |       |   |– mysql.server

|   |       |   `– mysqld.service

|   |       `– install.sls

|   `– web

|       `– apache

|           |– files

|           |   |– apr-1.7.0.tar.gz

|           |   |– apr-util-1.6.1.tar.gz

|           |   |– httpd-2.4.49.tar.gz

|           |   |– httpd.conf

|           |   |– httpd.service

|           |   |– index.php

|           |   `– install.sh

|           `– install.sls

`– zabbix

    |– apache.sls

    |– files

    |   |– index.php

    |   |– install.sh

    |   |– mysql.conf

    |   |– php.ini

    |   |– vhosts.conf

    |   |– zabbix-5.4.4.tar.gz

    |   `– zabbix_server.conf

    |– main.sls

    |– mysql.sls

    `– zabbix.sls

安装httpd、mysql、php


安装httpd

[root@master salt]# cat prod/modules/web/apache/install.sls

apache-dep-package:

  pkg.installed:

    – pkgs:

      – openssl-devel

      – pcre-devel

      – expat-devel

      – libtool

      – gcc

      – gcc-c++

      – make

apache:

  user.present:

    – shell: /sbin/nologin

    – createhome: false

    – system: true

apache-download:

  file.managed:

    – names:

      – /usr/src/apr-1.7.0.tar.gz:

        – source: salt://modules/web/apache/files/apr-1.7.0.tar.gz

      – /usr/src/apr-util-1.6.1.tar.gz:

        – source: salt://modules/web/apache/files/apr-util-1.6.1.tar.gz

      – /usr/src/httpd-2.4.49.tar.gz:

        – source: salt://modules/web/apache/files/httpd-2.4.49.tar.gz

/usr/lib/systemd/system/httpd.service:

  file.managed:

    – source: salt://modules/web/apache/files/httpd.service

    – user: root

    – group: root

    – mode: ‘0644’

salt://modules/web/apache/files/install.sh:

  cmd.script

/usr/local/httpd/conf/httpd.conf:

  file.managed:

    – source: salt://modules/web/apache/files/httpd.conf

    – user: root

    – group: root

    – mode: ‘0644’

[root@master salt]# cat prod/modules/web/apache/files/install.sh

#!/bin/bash

cd /usr/src

rm -rf apr-1.7.0 apr-util-1.6.1 httpd-2.4.49

tar xf apr-1.7.0.tar.gz

tar xf apr-util-1.6.1.tar.gz

tar xf httpd-2.4.49.tar.gz

cd /usr/src/apr-1.7.0

sed -i ‘/$RM “$cfgfile”/d’ configure

./configure –prefix=/usr/local/apr && \

        make && make install && \

cd ../apr-util-1.6.1

./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/apr && \

        make && make install && \

cd ../httpd-2.4.49

./configure –prefix=/usr/local/httpd \

        –enable-so \

        –enable-ssl \

        –enable-cgi \

        –enable-rewrite \

        –with-zlib \

        –with-pcre \

        –with-apr=/usr/local/apr \

        –with-apr-util=/usr/local/apr-util/ \

        –enable-modules=most \

        –enable-mpms-shared=all \

        –with-mpm=prefork && \

        make && make install && \

systemctl daemon-reload


安装mysql

[root@master salt]# cat prod/modules/database/mysql/install.sls

ncurses-compat-libs:

  pkg.installed

create-mysql-user:

  user.present:

    – name: mysql

    – system: true

    – createhome: false

    – shell: /sbin/nologin

create-datadir:

  file.directory:

    – name: /opt/data

    – user: mysql

    – group: mysql

    – mode: ‘0755’

    – makedirs: true

/usr/src/mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz:

  file.managed:

    – source: salt://modules/database/mysql/files/mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz

    – user: root

    – group: root

    – mode: ‘0644’

salt://modules/database/mysql/files/install.sh:

  cmd.script

trasfer-files:

  file.managed:

    – names:

      – /usr/local/mysql/support-files/mysql.server:

        – source: salt://modules/database/mysql/files/mysql.server

      – /usr/lib/systemd/system/mysqld.service:

        – source: salt://modules/database/mysql/files/mysqld.service

[root@master salt]# cat prod/modules/database/mysql/files/install.sh

#!/bin/bash

cd /usr/src

tar xf mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz -C /usr/local

ln -s /usr/local/mysql-5.7.34-linux-glibc2.12-x86_64 /usr/local/mysql

chown -R mysql.mysql /usr/local/mysql*

/usr/local/mysql/bin/mysqld –initialize-insecure –user=mysql –datadir=/opt/data/

echo ‘export PATH=/usr/local/mysql/bin:$PATH’ > /etc/profile.d/mysql.sh


安装php

[root@master salt]# cat prod/modules/application/php/install.sls

/usr/src/oniguruma-devel-6.8.2-2.el8.x86_64.rpm:

  file.managed:

    – source: salt://modules/application/php/files/oniguruma-devel-6.8.2-2.el8.x86_64.rpm

    – user: root

    – group: root

    – mode: ‘0644’

  cmd.run:

    – name: yum -y install /usr/src/oniguruma-devel-6.8.2-2.el8.x86_64.rpm

dep-package-install:

  pkg.installed:

    – pkgs:

      – libxml2

      – libxml2-devel

      – openssl

      – openssl-devel

      – bzip2

      – bzip2-devel

      – libcurl

      – libcurl-devel

      – libicu-devel

      – libjpeg-turbo

      – libjpeg-turbo-devel

      – libpng

      – libpng-devel

      – openldap-devel

      – pcre-devel

      – freetype

      – freetype-devel

      – gmp

      – gmp-devel

      – libmcrypt

      – libmcrypt-devel

      – readline

      – readline-devel

      – libxslt

      – libxslt-devel

      – mhash

      – mhash-devel

      – php-mysqlnd

      – libsqlite3x-devel

      – libzip-devel

/usr/src/php-7.4.24.tar.gz:

  file.managed:

    – source: salt://modules/application/php/files/php-7.4.24.tar.gz

    – user: root

    – group: root

    – mode: ‘0644’

#salt://modules/application/php/files/install.sh:

#  cmd.script

copyphp:

  file.managed:

    – names:

      – /etc/init.d/php-fpm:

        – source: salt://modules/application/php/files/php-fpm

        – user: root

        – group: root

        – mode: ‘0755’

      – /usr/local/php7/etc/php-fpm.conf:

        – source: salt://modules/application/php/files/php-fpm.conf

      – /usr/local/php7/etc/php-fpm.d/www.conf:

        – source: salt://modules/application/php/files/www.conf

      – /usr/lib/systemd/system/php-fpm.service:

        – source: salt://modules/application/php/files/php-fpm.service

php-fpm.service:

  service.running:

    – enable: true

[root@master salt]# cat prod/modules/application/php/files/install.sh

#!/bin/bash

cd /usr/src

rm -rf php-7.4.24

tar xf php-7.4.24.tar.gz

cd php-7.4.24

./configure –prefix=/usr/local/php7  \

        –with-config-file-path=/etc \

        –enable-fpm \

        –disable-debug \

        –disable-rpath \

        –enable-shared \

        –enable-soap \

        –with-openssl \

        –enable-bcmath \

        –with-iconv \

        –with-bz2 \

        –enable-calendar \

        –with-curl \

        –enable-exif  \

        –enable-ftp \

        –enable-gd \

        –with-jpeg \

        –with-zlib-dir \

        –with-freetype \

        –with-gettext \

        –enable-mbstring \

        –enable-pdo \

        –with-mysqli=mysqlnd \

        –with-pdo-mysql=mysqlnd \

        –with-readline \

        –enable-shmop \

        –enable-simplexml \

        –enable-sockets \

        –with-zip \

        –enable-mysqlnd-compression-support \

        –with-pear \

        –enable-pcntl \

        –enable-posix && \

        make && make install

部署zabbix所需的lamp架构环境

[root@master salt]# cat prod/zabbix/apache.sls

“Development Tools”:

  pkg.group_installed

include:

  – modules.web.apache.install

/usr/include/httpd:

  file.symlink:

    – target: /usr/local/apache/include

/usr/local/httpd/htdocs/zabbix:

  file.directory:

    – user: root

    – group: root

    – mode: ‘0775’

    – makedirs: true

/usr/local/httpd/htdocs/zabbix/index.php:

  file.managed:

    – source: salt://zabbix/files/index.php

    – user: root

    – group: root

    – mode: ‘0644’

/usr/local/httpd/conf/extra/vhosts.conf:

  file.managed:

    – source: salt://zabbix/files/vhosts.conf

    – user: root

    – group: root

    – mode: ‘0644’

zabbix-apache-service:

  service.running:

    – name: httpd

    – enable: true

[root@master salt]# cat prod/zabbix/mysql.sls

lamp-dep-package:

  pkg.installed:

    – pkgs:

      – ncurses-devel

      – openssl-devel

      – openssl

      – cmake

      – mariadb-devel

include:

  – modules.database.mysql.install

provides-mysql-file:

  file.managed:

    – user: root

    – group: root

    – mode: ‘0644’

    – names:

      – /etc/my.cnf:

        – source: salt://zabbix/files/my.cnf

      – /etc/ld.so.conf.d/mysql.conf:

        – source: salt://zabbix/files/mysql.conf

/usr/local/include/mysql:

  file.symlink:

    – target: /usr/local/mysql/include

mysqld.service:

  service.running:

    – enable: true

mysqld-set-password:

  cmd.run:

    – name: /usr/local/mysql/bin/mysql -e “set password = password(‘123456’);”

安装zabbix

[root@master salt]# cat prod/zabbix/zabbix.sls   

zabbix-dep-packages:

  pkg.installed:

   – pkgs:

     – net-snmp-devel

     – libevent-devel

zabbix:

  user.present:

    – shell: /sbin/nologin

    – system: true

    – createhome: false

/usr/src/zabbix-5.4.4.tar.gz:

  file.managed:

    – source: salt://zabbix/files/zabbix-5.4.4.tar.gz

salt://zabbix/files/install.sh:

  cmd.script

/usr/local/etc/zabbix_server.conf:

  file.managed:

    – source: salt://zabbix/files/zabbix_server.conf

/var/lib/mysql:

  file.directory:

    – user: root

    – group: root      

    – mode: ‘0755’

/var/lib/mysql/mysql.sock:

  file.symlink:

    – target: /tmp/mysql.sock

zabbix_server:

  cmd.run:

    – names:

      – cp -r /usr/src/zabbix-5.4.4/ui/*  /usr/local/httpd/htdocs/zabbix/

      – zabbix_server

      – zabbix_agentd

/etc/php.ini:

  file.managed:

    – source: salt://zabbix/files/php.ini

    – user: root

    – group: root

    – mode: ‘0644’

reload-service:

  service.running:

    – reload: true

    – names:

      – httpd

      – php-fpm

[root@master salt]# cat prod/zabbix/files/install.sh

#!/bin/bash

cd /usr/src

tar xf zabbix-5.4.4.tar.gz -C /usr/src

/usr/local/mysql/bin/mysql -uroot -p123456 -e “create database zabbix character set utf8 collate utf8_bin;”

/usr/local/mysql/bin/mysql -uroot -p123456 -e “grant all privileges on zabbix.* to zabbix@localhost identified by ‘123’;”

/usr/local/mysql/bin/mysql -uroot -p123456 -e “flush privileges;”

cd /usr/src/zabbix-5.4.4/database/mysql/

/usr/local/mysql/bin/mysql -uroot -p123456 zabbix < schema.sql

/usr/local/mysql/bin/mysql -uroot -p123456 zabbix < images.sql

/usr/local/mysql/bin/mysql -uroot -p123456 zabbix < data.sql

cd /usr/src/zabbix-5.4.4

./configure –enable-server \

        –enable-agent \

        –with-mysql \

        –with-net-snmp \

        –with-libcurl \

        –with-libxml2 && \

        make install

到此这篇关于saltstack部署zabbix服务的文章就介绍到这了,更多相关saltstack部署zabbix服务内容请搜索共生网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持共生网络!

原创文章,作者:starterknow,如若转载,请注明出处:https://www.starterknow.com/105296.html

联系我们