SaltStack自動化された運用・保守--SaltStack展開はkeepalivedの - Haproxy高可用性ロードバランシング


実験環境

ホスト名 IP サービス
サーバー1 172.25.2.1 塩マスター
SERVER2 172.25.2.2 塩手先、HTTPD
server3の 172.25.2.3 塩手先、nginxの
SERVER4 172.25.2.4 塩手先、haproxy、keepalivedの
server5 172.25.2.5 塩手先、haproxy、keepalivedの

ここに画像を挿入説明

1、keepalivedの - Haproxy基本的な考え方

ここに画像を挿入説明

2、keepalivedの

[root@server1 salt]# cd /srv/salt
[root@server1 salt]# mkdir keepalived
[root@server1 keepalived]# mkdir file   #配置文件和软件包存放目录

2.1 keepalivedのインストールスクリプト:install.sls

/mnt/libnfnetlink-devel-1.0.0-1.el6.x86_64.rpm:
  file.managed:    #依赖性,镜像中没有,因此需要手动安装
    - source: salt://keepalived/file/libnfnetlink-devel-1.0.0-1.el6.x86_64.rpm

keepalived-install: 
  pkg.installed: #依赖性
    - pkgs:
      - gcc
      - openssl-devel
      - libnl-devel

  file.managed:   #keepalived的安装包
    - name: /mnt/keepalived-2.0.6.tar.gz
    - source: salt://keepalived/file/keepalived-2.0.6.tar.gz

  cmd.run:
    - name: cd /mnt && tar zxf keepalived-2.0.6.tar.gz && yum install -y libnfnetlink-devel-1.0.0-1.el6.x86_64.rpm && cd keepalived-2.0.6 && ./configure --prefix=/usr/local/keepalived --with-init=SYSV &> /dev/null && make &> /dev/null && make install &> /dev/null
    - create: /usr/local/keepalived  #如果此目录存在则不进行安装

2.2 keepalivedの起動スクリプト:service.sls

include:
  - keepalived.install   #包含了keepalived的安装脚本,实现一键部署

/etc/keepalived:
  file.directory:
    - user: root
    - group: root
    - mode: 644
    - makedirs: True

/etc/keepalived/keepalived.conf:
  file.managed:     #文件管理
    - source: salt://keepalived/file/keepalived.conf
    - mode: 644
    - template: jinja  #使用了jinja模块
    - context:
      STATE: {{ pillar['state'] }}   #使用了pillar定义变量
      PRIORITY: {{ pillar['priority'] }}

keepalived-service:
  service.running:
    - enable: keepalived
    - name: keepalived
    - reload: True
    - watch:
      - file: /etc/keepalived/keepalived.conf

2.3 keepalivedの関連文書およびパッケージ

ここに画像を挿入説明

keepalivedのプロフィール:keepalived.conf

! Configuration File for keepalived

global_defs {
   notification_email {
	root@localhost
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   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_script check_haproxy {   
        script "/opt/check_haproxy.sh"
        interval 2 
        weight 2
}

vrrp_instance VI_1 {
    state {{ STATE }}    #pillar值
    interface eth0
    virtual_router_id 51 
    priority {{ PRIORITY }}   #pillar值
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
	172.25.2.100
    }

   track_script {     
        check_haproxy
    }
}

3、haproxy

3.1 haproxyインストールスクリプト:install.sls

ここに画像を挿入説明

3.2 haproxyサービススクリプト:service.sls

ここに画像を挿入説明

3.3 haproxyプロフィール

ここに画像を挿入説明
プロファイルhaproxy.cfgを変更します。
ここに画像を挿入説明

4、アパッチ

4.1 Apacheのインストールスクリプト:install.sls

ここに画像を挿入説明

5、nginxの

5.1 nginxのインストールスクリプト:install.sls

ここに画像を挿入説明

5.2 nginxのサービススクリプト:service.sls

ここに画像を挿入説明

5.3 nginxの関連する構成ファイル

ここに画像を挿入説明

柱を使用するための6、keepalivedの必要性

vimの/srv/pillar/web/install.sls

{% if grains['fqdn'] == 'server4' %}
state: MASTER
priority: 100
{% elif grains['fqdn'] == 'server5' %}
state: BACKUP
priority: 50
{% endif %}

ここに画像を挿入説明
vimの柱/ top.sls

base:
  '*':
    - web.install

7、グローバルプッシュスクリプト

base:
  'server4':
    - haproxy.service
    - keepalived.service
  'server5':
    - haproxy.service
    - keepalived.service
  'server2':
    - apache.install
  'server3':
    - nginx.service

ここに画像を挿入説明

8、業績

ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明

ここに画像を挿入説明

公開された102元の記事 ウォン称賛21 ビュー5317

おすすめ

転載: blog.csdn.net/ranrancc_/article/details/103295270