当前位置:网站首页>使用SaltStack自动化部署Zabbix
使用SaltStack自动化部署Zabbix
2022-07-28 17:28:00 【阿木690】
环境说明:
| 主机 | IP | 服务 |
|---|---|---|
| master | 192.168.91.135 | salt-matser |
| node1 | 192.168.91.137 | salt-minion |
以树状图的格式显示文件路径
[[email protected] 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.xz | | | |-- 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
| |-- config.sls
| |-- files
| | |-- apr-1.7.0.tar.gz
| | |-- apr-util-1.6.1.tar.gz
| | |-- httpd-2.4.51.tar.gz
| | |-- httpd.conf
| | |-- httpd.service
| | |-- index.php
| | `-- install.sh | `-- install.sls
`-- zabbix |-- apache.sls |-- files | |-- index.php | |-- install.sh | |-- my.cnf | |-- mysql.conf | |-- php.ini | |-- vhosts.conf | |-- zabbix-5.4.4.tar.gz | `-- zabbix_server.conf
|-- install.sls
|-- lamp.sls
`-- mysql.sls
12 directories, 35 files
安装httpd、mysql、php
安装httpd
[[email protected] salt]# cat prod/modules/web/apache/install.sls
install-depend-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.51.tar.gz:
- source: salt://modules/web/apache/files/httpd-2.4.51.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/apache/conf/httpd.conf:
file.managed:
- source: salt://modules/web/apache/files/httpd.conf
- user: root
- group: root
- mode: '0644'
[[email protected] 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.51
tar xf apr-1.7.0.tar.gz -C /usr/src
tar xf apr-util-1.6.1.tar.gz -C /usr/src
tar xf httpd-2.4.51.tar.gz -C /usr/src
cd /usr/src/apr-1.7.0
sed -i '/$RM "$cfgfile"/d' configure
./configure --prefix=/usr/local/apr && \
make && make install \
cd /usr/src/apr-util-1.6.1
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && \
make && make install \
cd /usr/src/httpd-2.4.51
./configure --prefix=/usr/local/apache \
--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 \
安装mysql
[[email protected] 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'
/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
安装php
[[email protected] 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
depend-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.xz:
file.managed:
- source: salt://modules/application/php/files/php-7.4.24.tar.xz
- user: root
- group: root
- mode: '0644'
salt://modules/application/php/files/install.sh:
cmd.script
copy_config:
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
- user: root
- group: root
- mode: '0644'
- /usr/local/php7/etc/php-fpm.d/www.conf:
- source: salt://modules/application/php/files/www.conf
- user: root
- group: root
- mode: '0644'
- /usr/lib/systemd/system/php-fpm.service:
- source: salt://modules/application/php/files/php-fpm.service
- user: root
- group: root
- mode: '0644'
php-fpm.service:
service.running:
- enable: true
[[email protected] 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.xz
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架构环境
[[email protected] 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/apache/htdocs/zabbix:
file.directory:
- user: root
- group: root
- mode: '0755'
/usr/local/apache/htdocs:
file.directory:
- user: apache
- group: apache
/usr/local/apache/htdocs/zabbix/index.php:
file.managed:
- source: salt://zabbix/files/index.php
/usr/local/apache/conf/extra/vhosts.conf:
file.managed:
- source: salt://zabbix/files/vhosts.conf
- user: root
- group: root
- mode: '644'
zabbix-apache.service:
service.running:
- name: httpd
- enable: true
[[email protected] salt]# cat prod/zabbix/mysql.sls
include:
- modules.database.mysql.install
lamp-mysql-packages:
pkg.installed:
- pkgs:
- ncurses-devel
- openssl-devel
- openssl
- cmake
- mariadb-devel
copy-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.running:
- enable: true
set-mysql-password:
cmd.run:
- name: /usr/local/mysql/bin/mysql -e "set password=password('123456');"
页面访问
[[email protected] salt]# cat prod/zabbix/lamp.sls
include:
- zabbix.apache
- zabbix.mysql
- modules.application.php.install
安装zabbix
[[email protected] salt]# cat prod/zabbix/install.sls
include:
- zabbix.lamp
zabbix-depend-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
- user: root
- group: root
- mode: '0644'
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: '755'
/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/apache/htdocs/zabbix/
- zabbix_server
- zabbix_agentd
/etc/php.ini:
file.managed:
- source: salt://zabbix/files/php.ini
- user: root
- group: root
- mode: '644'
reload-service:
service.running:
- reload: true
- names:
- httpd
- php-fpm
[[email protected] salt]# cat prod/zabbix/files/install.sh
#!/bin/bash
cd /usr/src
rm -rf zabbix-5.4.4
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 [email protected] identified by 'amu';"
/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 \
使用salt命令安装zabbix
[[email protected] salt]# salt '192.168.91.137' state.sls zabbix.install saltenv=prod
查看端口号
[[email protected] ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 127.0.0.1:9000 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 0.0.0.0:10050 0.0.0.0:*
LISTEN 0 128 0.0.0.0:10051 0.0.0.0:*
LISTEN 0 80 *:3306 *:*
LISTEN 0 128 *:80 *:*
LISTEN 0 128 [::]:22 [::]:*
页面访问


边栏推荐
- [image segmentation] vein segmentation based on directional valley detection with matlab code
- ES6 conversion of new data type set and arr set map
- 服务器正文21:不同编译器对预编译的处理(简单介绍msvc和gcc)
- Self-adaptive multi-objective evolutionary algorithm for flexible job shop scheduling with fuzzy pro
- 身份证号的奥秘
- Wechat solves the problem of long press selected style
- BM14 链表的奇偶重排
- DevCon.exe 导出output至指定文件
- Avoidance Adjusted Climbrate
- Server body 21: pre compilation processing by different compilers (a brief introduction to MSVC and GCC)
猜你喜欢

It is the best tool to evaluate six kinds of map visualization software in three categories

UWB module realizes personnel precise positioning, ultra wideband pulse technology scheme, and real-time centimeter level positioning application

Nips18(AD) - 利用几何增广的无监督异常检测《Deep Anomaly Detection Using Geometric Transformations》

Qt: 一个SIGNAL绑定多个SLOT

Gmoea code operation 2 -- establishment and operation of operation environment

Solve the critical path in FJSP - with Matlab source code

【雷达】基于核聚类实现雷达信号在线分选附matlab代码

剑指 Offer II 109. 开密码锁

Srs4.0 installation steps

DevCon. Exe export output to the specified file
随机推荐
ACM warm-up exercise 3 in 2022 summer vacation (detailed)
Learn from Li Mu, deep learning - linear regression and basic optimization function
TSDB and blockchain
SaltStack进阶
BM11 链表相加(二)
剑指 Offer II 109. 开密码锁
BLDC 6步换相 simulink
Application value of MES production management system to equipment
使用Xilinx MIG验证硬件DDR设计
[image hiding] digital image information hiding system based on DCT, DWT, LHA, LSB, including various attacks and performance parameters, with matlab code
Applet applet jump to official account page
Jestson nano Object detection
ES6 conversion of new data type set and arr set map
QT function optimization: QT 3D gallery
Prometheus部署
Application of time series database in intelligent power consumption field
Jestson nano Object detection
三类6种地图可视化软件测评,最好用的工具居然是它
Pytest custom hook function
After several twists and turns, how long can the TSDB C-bit of influxdb last?