SaltStack应用扩展


一、部署nginx

在这里插入图片描述

[root@server1 files]# cat nginx.service 
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

[root@server1 nginx]# cat install.sls 
nginx-install:
  pkg.installed:
    - pkgs:
      - gcc
      - pcre-devel
      - openssl-devel
  file.managed:
    - source: salt://nginx/files/nginx-1.18.0.tar.gz
    - name: /mnt/nginx-1.18.0.tar.gz
  cmd.run:
    - name: cd /mnt && tar zxf nginx-1.18.0.tar.gz && cd nginx-1.18.0 && ./configure --prefix=/usr/local/nginx --with-http_ssl_module &> /dev/null && make &> /dev/null && make install &> /dev/null
    - creates: /usr/local/nginx

[root@server1 nginx]# cat init.sls 
include:
  - nginx.install

/usr/local/nginx/conf/nginx.conf:
  file.managed:
    - source: salt://nginx/files/nginx.conf

nginx-service:
  user.present:
    - name: nginx
    - shell: /sbin/nologin
    - home: /usr/local/nginx
    - createhome: false
  file.managed:
    - source: salt://nginx/files/nginx.service
    - name: /usr/lib/systemd/system/nginx.service
  service.running:
    - name: nginx
    - enable: true
    - reload: true
    - watch:
      - file: /usr/local/nginx/conf/nginx.conf

在这里插入图片描述
在这里插入图片描述

二、部署keepalived

在这里插入图片描述

[root@server1 keepalived]# cat init.sls 
kp-install:
  pkg.installed:
    - name: keepalived
  file.managed:
    - name: /etc/keepalived/keepalived.conf
    - source: salt://keepalived/files/keepalived.conf
    - template: jinja
    - context:
      STATE: {
    
    {
    
     pillar['state'] }}
      VRID: {
    
    {
    
     pillar['vrid'] }}
      PRI: {
    
    {
    
     pillar['pri'] }}
  service.running:
    - name: keepalived
    - enable: true
    - reload: true
    - watch:
      - file: kp-install

[root@server1 files]# cat keepalived.conf 
! Configuration File for keepalived

global_defs {
    
    
   notification_email {
    
    
	root@localhost
   }
   notification_email_from keepalived@localhost
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   #vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    
    
    state {
    
    {
    
     STATE }}
    interface eth0
    virtual_router_id {
    
    {
    
     VRID }}
    priority {
    
    {
    
     PRI }}
    advert_int 1
    authentication {
    
    
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
    
    
	10.4.17.100
    }
}

在这里插入图片描述
在这里插入图片描述
在server2上推完该sls文件后,server2上出现vip,并且可以实现负载均衡,当一台主句down掉后,另一台主机可继承vip

三、zabbix部署

1.zabbix-server端部署

在这里插入图片描述
注意:其中zabbix.conf.php文件时初始化配置文件,刚开始不需要这个文件

[root@server1 files]# scp server2:/etc/zabbix/zabbix_server.conf .  %这一部分在server2上安装好zabbix后做
[root@server1 files]# vim zabbix_server.conf 
DBHost=10.4.17.203
DBPassword=westos
[root@server1 zabbix-server]# cat init.sls 
zabbix-server:
  pkgrepo.managed:
    - name: zabbix
    - humanname: zabbix 4.0
    - baseurl: http://10.4.17.216/za/4.0     %生成下载源,这个地址要确保在apache主机上已经配置好资源在里面,并且可以正常访问到
    - gpgcheck: 0
  pkg.installed:
    - pkgs:
      - zabbix-server-mysql
      - zabbix-agent
      - zabbix-web-mysql
  file.managed:
    - name: /etc/zabbix/zabbix_server.conf
    - source: salt://zabbix-server/files/zabbix_server.conf   %此部分是为了设置zabbix数据库主机及密码 
  service.running:
    - name: zabbix-server
    - enable: true
    - watch:
      - file: zabbix-server

zabbix-agent:
  service.running

zabbix-web:
  file.managed:
    - name: /etc/httpd/conf.d/zabbix.conf
    - source: salt://zabbix-server/files/zabbix.conf   %此部分主要是修改zabbix界面时区信息
  service.running:
    - name: httpd
    - enable: true
    - watch:
      - file: zabbix-web

/etc/zabbix/web/zabbix.conf.php:       %部署初始化信息,第一次推sls文件的时候这部分要注释掉
  file.managed:
    - source: salt://zabbix-server/files/zabbix.conf.php

在首次登入zabbix时,会在zabbix server端生成初始化配置文件,将此文件移入saltstack端相应目录中,再推,即可实现自动初始化
在这里插入图片描述
在这里插入图片描述

2.mysql部署

在这里插入图片描述

[root@server1 mysql]# cat init.sls 
mysql-install:
  pkg.installed:
    - pkgs:
      - mariadb-server
      - MySQL-python
  file.managed:
    - name: /etc/my.cnf
    - source: salt://mysql/files/my.cnf
  service.running:
    - name: mariadb
    - enable: true
    - watch:
      - file: mysql-install

mysql-config:
  mysql_database.present:
    - name: zabbix
  mysql_user.present:
    - name: zabbix
    - host: '%'
    - password: "westos"
  mysql_grants.present:
    - grant: all privileges
    - database: zabbix.*
    - user: zabbix
    - host: '%'
  file.managed:
    - name: /mnt/create.sql
    - source: salt://mysql/files/create.sql
  cmd.run:
    - name: mysql zabbix < /mnt/create.sql && touch /mnt/zabbix.lock
    - creates: /mnt/zabbix.lock

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/nk298120/article/details/112990625