1. 程式人生 > >利用saltstack自動化運維工具結合keepalived實現高可用負載均衡

利用saltstack自動化運維工具結合keepalived實現高可用負載均衡

在上次實驗“saltstsck自動化運維工具實現負載均衡”的基礎上,也就是在server3端配置實現server4端的httpd和server5端的nginx負載均衡,繼續進行操作實現高可用:
(本文所有主機ip均為172.25.17網段,主機名和ip相對應。比如172.25.17.3對應server3,並且所有salt包和python包需要自行下載並配置到yum源中)
環境: linxu 6.5
配置:
server3: 172.25.17.3 服務:keepalived、 salt-master、 haproxy
server4: 172.25.17.4 服務:httpd、 salt-minion
server5: 172.25.17.5 服務:nginx、 salt-minion
server6: 172.25.17.6 服務:keepalived、 salt-minion、haproxy
大體思想:

在實現server4端httpd和server5端nginx負載均衡的基礎上,新建一個master-minion端server6。通過在server3端建立install.sls的yml指令碼並推送給server6實現server6端keepalived的安裝。接著將server6端的keepalived配置檔案和啟動指令碼發到server3端。server3端新建指令碼service.sls設定對keepalived的相關配置。編輯指令碼檔案,按照主機名寫入對應的變數,再將這些變數應用到server3端的keepalived配置檔案中並進行keepalived的相關配置。最後在top.sls指令碼檔案中針對不同的主機推送不同的指令碼檔案進行不同的服務配置,推送top.sls指令碼實現高可用負載均衡。

具體實現

server3端/srv目錄結構:

[[email protected] srv]# tree .
.
├── pillar
│   ├── keepalived
│   │   └── install.sls
│   ├── top.sls
│   └── web
│       └── install.sls
└── salt
    ├── files
    ├── _grains
    │   └── my_grains.py
    ├── haproxy
    │   ├── files
    │   │   └── haproxy.cfg
    │   └── install.sls
├── httpd │ ├── files │ │ └── httpd.conf │ ├── install.sls │ └── lib.sls ├── keepalived │ ├── files │ │ ├── keepalived │ │ ├── keepalived-2.0.6.tar.gz │ │ └── keepalived.conf │ ├── install.sls │ └── service.sls ├── nginx │ ├── files │ │ ├── nginx │ │ ├── nginx-1.14.0.tar.gz │ │ └── nginx.conf │ ├── install.sls │ ├── make.sls │ ├── nginx.sls │ └── service.sls └── top.sls

1.要使用keepalived實現高可用,首先將需要新建salt-minion伺服器server6並配置master為172.25.17.3(具體操作參見上面連結)。並在server6端的yum源中配置負載均衡模組,否則keepalived無法安裝:

  1 [rhel-source]
  2 name=Red Hat Enterprise Linux $releasever - $basearch - Source
  3 baseurl=http://172.25.17.250/source6.5
  4 enabled=1
  5 gpgcheck=1
  6 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
  7 
  8 [saltstack]
  9 name=saltstack
 10 baseurl=http://172.25.17.250/rhel6
 11 gpgcheck=0
 12 
 13 [LoadBalancer]   #加入負載均衡模組包
 14 name=LoadBalancer
 15 baseurl=http://172.25.17.250/source6.5/LoadBalancer
 16 gpgcheck=0

2.在server3端的/srv/salt目錄下新建目錄keepalived及其子目錄files,並將keepalived壓縮包放在這裡:

[root@server3 nginx]# cd /srv/salt/
[root@server3 salt]# mkdir keepalived/files -p
[root@server3 salt]# ls keepalived/files/
keepalived-2.0.6.tar.gz

進入keepalived目錄新建指令碼檔案install.sls:

[root@server3 salt]# cd keepalived/
[root@server3 keepalived]# vim install.sls

指令碼內容:
實現keepalived的在server6端的安裝:

  1 include:
  2   - nginx.make    #將make.sls指令碼匯入,這個指令碼功能是進行依賴包安裝
  3 
  4 kp-install:
  5   file.managed:
  6     - name: /mnt/keepalived-2.0.6.tar.gz
  7     - source: salt://keepalived/files/keepalived-2.0.6.tar.gz
  8   cmd.run:
  9     - name: cd /mnt && tar zxf keepalived-2.0.6.tar.gz && cd keepalived-2.0.    6 && ./configure --prefix=/usr/local/keepalived --with-init=SYSV &> /dev/nul    l && make &> /dev/null && make install &> /dev/null
 10     - creates: /usr/local/keepalived

make.sls指令碼內容:

  1 make-depends:
  2   pkg.installed:
  3     - pkgs:
  4       - pcre-devel
  5       - openssl-devel
  6       - gcc
  7       - mailx

將install.sls指令碼推送到server6端進行安裝keepalived:

[root@server3 keepalived]# salt server6 state.sls keepalived.install

**3.**server6端keepalived安裝成功之後,將keepalived配置檔案傳送到servre3端的/srv/salt/keepalied/files目錄下:

[root@server6 init.d]# cd /usr/local/keepalived/etc/keepalived/
[root@server6 keepalived]# ls
keepalived.conf  samples
[root@server6 keepalived]# scp keepalived.conf server3:/srv/salt/keepalived/files/

同樣將keepalived的啟動指令碼放到這個目錄下:

[[email protected] yum.repos.d]# cd /usr/local/keepalived/etc/rc.d/init.d/
[[email protected] init.d]# scp keepalived server3:/srv/salt/keepalived/files

4.在server3端/srv/salt.keepalived目錄下新建指令碼檔案service.sls:

[root@server3 keepalived]# vim service.sls

指令碼內容:

  1 include:
  2   - keepalived.install   #將剛才新建的指令碼檔案install.sls匯入
  3 
  4 /etc/keepalived/keepalived.conf:
  5   file.managed:
  6     - source: salt://keepalived/files/keepalived.conf
  7     - template: jinja    #匯入jinja模板
  8     - context:
  9       STATE: {{ pillar['state'] }}         #引用變數,變數在後面有新建,也可以新建變數再寫入引用變數這部分
 10       VRID: {{ pillar['vrid'] }}           #引用變數
 11       PRIORITY: {{ pillar['priority'] }}   #引用變數
 12 
 13 kp-service:
 14   file.managed:
 15     - name: /etc/init.d/keepalived
 16     - source: salt://keepalived/files/keepalived
 17     - mode: 755
 18   service.running:
 19     - name: keepalived
 20     - reload: True
 21     - watch:
 22       - file: /etc/keepalived/keepalived.conf

5.進入到/srv/pillar目錄下新建目錄keepalived,並將web目錄中的install.sls檔案複製過來並編輯:

[root@server3 keepalived]# cd /srv/pillar/
[root@server3 pillar]# ls
top.sls  web
[root@server3 pillar]# mkdir keepalived
[root@server3 pillar]# cd keepalived/
[root@server3 keepalived]# cp ../web/install.sls .
[root@server3 keepalived]# vim install.sls 

編輯install.sls新建變數:

  1 {% if grains['fqdn'] == 'server3' %}
  2 state: MASTER     #新建變數
  3 vrid: 17
  4 priority: 100
  5 {% elif grains['fqdn'] == 'server6' %}
  6 state: BACKUP     #新建變數
  7 vrid: 17
  8 priority: 50
  9 {% endif %}

6.在server3端編輯keepalived的配置檔案:

[root@server3 keepalived]# vim files/keepalived.conf 

修改配置檔案:

  1 ! Configuration File for keepalived
  2 
  3 global_defs {
  4    notification_email {
  5      [email protected]
  6    }
  7    notification_email_from [email protected]
  8    smtp_server 127.0.0.1
  9    smtp_connect_timeout 30
 10    router_id LVS_DEVEL
 11    vrrp_skip_check_adv_addr
 12    #vrrp_strict
 13    vrrp_garp_interval 0
 14    vrrp_gna_interval 0
 15 }
 16 
 17 vrrp_instance VI_1 {
 18     state {{ STATE }}   #引用變數
 19     interface eth0
 20     virtual_router_id {{ VRID }}
 21     priority {{ PRIORITY }}
 22     advert_int 1
 23     authentication {
 23     authentication {
 24         auth_type PASS
 25         auth_pass 1111
 26     }
 27     virtual_ipaddress {
 28         172.25.17.100    #設定VIP
 29     }
 30 }
 31 
後面的內容全部刪除

7.編輯/srv/sakt目錄下的top.sls檔案:

[root@server3 salt]# vim top.sls 

內容:

  1 base:
  2   'server3':       #不同服務端推送不同指令碼
  3     - haproxy.install
  4     - keepalived.service
  5   'server6':
  6     - haproxy.install
  7     - keepalived.service
  8   'server4':
  9     - httpd.install
 10   'server5':
 11     - nginx.service

之後推送top.sls指令碼到所有服務端:

[root@server3 salt]# salt '*' state.highstate

測試:

訪問VIP實現負載均衡:
這裡寫圖片描述
這裡寫圖片描述
高可用測試:
停掉server3端keepalived服務:

[root@server3 salt]# /etc/init.d/keepalived stop
Stopping keepalived:                                       [  OK  ]

負載均衡依然可以實現,由於server3服務停掉了,所以在server6端接管了服務。可以看到VIP加到了server6端:

[root@server6 sysconfig]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:f2:65:82 brd ff:ff:ff:ff:ff:ff
    inet 172.25.17.6/24 brd 172.25.17.255 scope global eth0
    inet 172.25.17.100/32 scope global eth0   #VIP加到了server6端
    inet6 fe80::5054:ff:fef2:6582/64 scope link 
       valid_lft forever preferred_lft forever

相關推薦

利用saltstack自動化工具結合keepalived實現可用負載均衡

在上次實驗“saltstsck自動化運維工具實現負載均衡”的基礎上,也就是在server3端配置實現server4端的httpd和server5端的nginx負載均衡,繼續進行操作實現高可用: (本文所有主機ip均為172.25.17網段,主機名和ip相對應。

Linux學習之keepalived實現可用集群

keepalived 高可用 lvs 集群技術是一種較新的技術,通過集群技術,可以在付出較低成本的情況下獲得在性能、可靠性、靈活性方面的相對較高的收益,其任務調度則是集群系統中的核心技術。高可用高可用集群,簡單的說,集群就是一組計算機,它們作為一個整體向用戶提供一組網絡資源。 高可用

利用lvs+keepalived實現可用負載均衡環境的部署

http://wangwq.blog.51cto.com/8711737/1852212 ,執行即可(注意指令碼的VIP,不同的realserver對應不同的VIP) 1 2 3 4 5 6

LVS+Keepalived實現可用負載均衡

lvs+keepalived 高可用 負載均衡 用LVS+Keepalived實現高可用負載均衡,簡單來說就是由LVS提供負載均衡,keepalived通過對rs進行健康檢查、對主備機(director)進行故障自動切換,實現高可用。1. LVS NAT模式配置準備三臺服務器,一臺director, 兩

nginx+keepalived實現可用負載均衡

其中 centos7.3 9.png IT 配置文件 bsp 是我 add nginx 環境: centos7.3虛擬機A 10.0.3.46 centos7.3虛擬機B 10.0.3.110 虛擬機A和B都需要安裝nginx和keepalived(過程省略,其中keepa

LVS+Keepalived 實現可用負載均衡叢集

LVS+Keepalived  實現高可用負載均衡叢集     隨著網站業務量的增長,網站的伺服器壓力越來越大?需要負載均衡方案!商業的硬體如 F5 ,Array又太貴,你們又是創業型互聯公司如何有效節約成本,節省不必要的浪費?同時還需要實現商業硬體一樣的高效能高可

【Linux】LVS+Keepalived實現可用負載均衡(Web群集)

一、Keepalived概述 keepalived是一個類似於layer3,4,5交換機制的軟體,也就是我們平時說的第3層、第4層和第5層交換。Keepalived的作用是檢測web伺服器的狀態,

LVS-DR+keepalived實現可用負載均衡

介紹 LVS是Linux Virtual Server的簡寫,意即Linux虛擬伺服器,是一個虛擬的伺服器集群系統。本專案在1998年5月由章文嵩博士成立,是中國國內最早出現的自由軟體專案之一。 Keepalived 主要用作RealServer的健康狀態檢查以及Load

centos7.2 MYSQL雙主+半同步+keepalived實現可用負載均衡

這兩天瞭解了一下mysql的叢集方案,發現有很多解決方案,有複雜的也有簡單的,有興趣的參考下面網址:http://www.cnblogs.com/Kellana/p/6738739.html 這裡,我使用中小企業最常用也是較簡單的方案,用keepalived提供一個vip(

LVS+Keepalived 實現可用負載均衡

## 前言 在業務量達到一定量的時候,往往單機的服務是會出現瓶頸的。此時最常見的方式就是通過負載均衡來進行橫向擴充套件。其中我們最常用的軟體就是 Nginx。通過其反向代理的能力能夠輕鬆實現負載均衡,當有服務出現異常,也能夠自動剔除。但是負載均衡服務自身也可能出現故障,因此需要引入其他的軟體來實現負載均衡服

saltstack自動化工具搭建個人筆記

技術分享 install size 為什麽 數據 font status 程序包 -c 至於為什麽選擇saltstack,因為Puppet、Chef基於Ruby開發,而ansible、saltstack基於python開發,便於後期二次,良好的可移植性。 又,ansible

Saltstack 自動化工具詳細介紹

pre 地址 .tar.gz 好的 publish net 組織 初始 int Saltstack 簡介什麽是saltstack? Saltstack是基於python開發的一套C/S架構配置管理工具? 使用SSL證書簽方的方式進行認證管理? 底層使用ZeroMQ消息隊列p

Saltstack自動化工具 實戰與部署

caf 主動推送 n-k 分鐘 啟動服務 ade 個人觀點 ots 處理 自動化工具比較Puppet也許是四款工具中最深入人心的。就可用操作、模塊和用戶界面而言,它是最全面的。Puppet呈現了數據中心協調的全貌,幾乎涵蓋每一個運行系統,為各大操作系統提供了深入的工具。初始

部署 SaltStack 自動化工具,並簡易批量安裝 httpd 服務

SaltStack 介紹  SaltStack 是一個基於 Python 開發的一套架構配置管理工具,採用 C/S模式,server端就是salt的master,client端就是minion,minion與master之間通過ZeroMQ訊息佇列通訊。master監聽4505和4506埠,4505為mas

Saltstack 自動化工具

Saltstack是一個伺服器基礎架構集中化管理平臺,具備配置管理、遠端執行、監控等功能,可以理解為簡化版的puppet,它基於python語言實現,結合輕量級訊息佇列(ZeroMQ)與python第三方模組構建。具備以下特點:   部署簡單、方便 支援大部分UNIX/Linux及Window

Saltstack自動化工具(一鍵部署可用負載均衡叢集)

在上篇部落格中我們利用salt推送了一臺主機上的haproxy為了實現高可用和負載均衡,我們再使用一臺虛擬機器server4搭建叢集 server1和server4組成高可用和負載均衡叢集 在server4 做好底層配置: 在server4上安裝minion,更改配置檔

Saltstack自動化工具 ---- Salt一鍵部署 、一鍵部署原始碼安裝ngixn

Salt,,一種全新的基礎設施管理方式,部署輕鬆,在幾分鐘內可執行起來,擴充套件性好,很容易管理上萬臺伺服器,速度夠快,伺服器之間秒級通訊。 salt底層採用動態的連線匯流排, 使其可以用於編配, 遠端執行, 配置管理等等. 1、安裝配置 [[email&

saltstack自動化工具

一.saltstack簡介 salt stack 是什麼? salt是一種新型的基礎架構管理方法。容易的在幾分鐘之內即可配置執行,可伸縮的足以管理成千上萬的伺服器,足夠快的在幾秒只內完成溝通。Salt通過分發一個動態的配置介面,可以被用來,配置,遠端執行,配置管理等

LVS-DR模式及lvs結合keepalived實現可用

lvs定義 LVS的英文全稱是Linux Virtual Server,即Linux虛擬伺服器。它是我們國家的章文嵩博士開發的一個開源專案,1998年5月釋出,是中國國內最早出現的自由軟體專案之一。我們只要在server上裝了ipvsadm軟體包就可以定義ipvs規則,在linux ke

Keepalived+Nginx實現可用負載均衡集群

連接 靜態 adf -1 rip mail fff hostname dex 一 環境介紹 1.操作系統CentOS Linux release 7.2.1511 (Core) 2.服務keepalived+lvs雙主高可用負載均衡集群及LAMP應用keepalived-1