自動化運維saltstack安裝部署及用keepalived實現高可用

這篇博客中寫到了用saltstack推送了一臺主機上的haproxy爲了實現了負載均衡,https://blog.csdn.net/qq_42241932/article/details/83828110
此篇博客基於上次實驗,用keepalived實現高可用

實驗環境

server1 172.25.66.1 maseter/minion keepalived/haproxy
server4 172.25.66.4 minion keepalived/haproxy
server2 172.25.66.2 minion httpd
server3 172.25.66.3 minion nginx

一、配置

1、配置server4

  • 配置server4的yum源
[root@server4 keepalived]# cat /etc/yum.repos.d/rhel-source.repo 
[rhel6.5]
name=rhel6.5
baseurl=http://172.25.66.250/rhel6.5
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[saltstack]
name=saltstack
baseurl=http://172.25.66.250/saltstack/rhel6
gpgcheck=0
  • 安裝並啓動salt-minion,並修改配置文件,將server4添加到master端
[root@server4 ~]# yum install -y salt-minion
[root@server4 ~]# cd /etc/salt/
[root@server4 salt]# vim minion
 16 master: 172.25.66.1
[root@server4 salt]# /etc/init.d/salt-minion restart
Stopping salt-minion:root:server4 daemon: OK
Starting salt-minion:root:server4 daemon: OK

在這裏插入圖片描述

二、源碼安裝keepalivedd

  • /srv/salt目錄的部署:
[root@server1 salt]# pwd
/srv/salt
[root@server1 salt]# mkdir  keepalived
[root@server1 salt]# cd  keepalived/
[root@server1 keepalived]# mkdir  files
[root@server1 keepalived]# cd  files/
[root@server1 files]# ls
keepalived-2.0.6.tar.gz
  • 編寫安裝腳本,在/srv/salt/keepalived/目錄下
[root@server1 keepalived]# vim  install.sls
include:
 - pkgs.make

kp-install:
 file.managed:
   - name: /mnt/keepalived-2.0.6.tar.gz
   - source: salt://keepalived/files/keepalived-2.0.6.tar.gz
 cmd.run:
   - 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/null && make &> /dev/null && make install &> /dev/null		##編輯安裝
   - creates: /usr/local/keepalived		##創建的目錄

/etc/keepalived:
 file.directory:
   - mode: 755

/etc/sysconfig/keepalived:
 file.symlink:
   - target: /usr/local/keepalived/etc/sysconfig/keepalived

/sbin/keepalived:
 file.symlink:
- target: /usr/local/keepalived/sbin/keepalived

編輯安裝中所需要的依賴包文件,vim /srv/salt/pkgs/install.sls

[root@server1 pkgs]# vim make.sls 
make:
  pkg.installed:
    - pkgs:
      - pcre-devel
      - openssl-devel
      - gcc
  • 推送
[root@server1 keepalived]# salt server1 state.sls keepalived.install
[root@server1 keepalived]# salt server4 state.sls keepalived.install

在這裏插入圖片描述

三、實現高可用

  • 將keepalived的配置文件和啓動腳本發給/srv/salt/keepalived/files目錄下
[root@server1 files]# cd /usr/local/keepalived/etc/rc.d/init.d/
[root@server1 init.d]# cp keepalived /srv/salt/keepalived/files
[root@server1 init.d]# cd /usr/local/keepalived/etc/keepalived/
[root@server1 keepalived]# cp keepalived.conf /srv/salt/keepalived/files
[root@server1 files]# ls
keepalived  keepalived-2.0.6.tar.gz  keepalived.conf
[root@server1 files]# vim  keepalived.conf
! Configuration File for keepalived

global_defs {
   notification_email {
    root@localhost
   }
   notification_email_from [email protected]
   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 {{ PRIORITY }}
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.25.7.100/24
    }
}
  • 編寫服務文件service.sls
[root@server1 keepalived]# vim  service.sls
include:
  - keepalived.install

/etc/keepalived/keepalived.conf:
  file.managed:
    - source: salt://keepalived/files/keepalived.conf
    - template: jinja
    - context:
      STATE: {{ pillar['state'] }}
      VRID: {{ pillar['vrid'] }}
      PRIORITY: {{ pillar['priority'] }}

kp-service:
  file.managed:
    - name: /etc/init.d/keepalived
    - source: salt://keepalived/files/keepalived
    - mode: 755
  service.running:
    - name: keepalived
    - reload: True
    - watch:
      - file: /etc/keepalived/keepalived.conf
  • 編輯pillar
    • 修改pillar
[root@server1 srv]# cd  pillar
[root@server1 pillar]# mkdir  keepalived
[root@server1 keepalived]# vim  install.sls
{% if grains['fqdn'] == 'server1'%}	
state: MASTER	##server1設置爲主機
vrid: 77
priority: 100
{% elif grains['fqdn'] == 'server4'%}
state: BACKUP	#將server4設置爲備用機
vrid: 77
priority: 50
{% endif %}
  • 將pillar中寫的添加到pillar的top.sls中去
[root@server1 pillar]# vim  top.sls
base:
  '*':
   - web.install
   - keepalived.install
  • 編輯高級推文件
[root@server1 salt]# ls
_grains  haproxy  httpd  keepalived  nginx  pkgs  top.sls  users
[root@server1 salt]# vim  top.sls
base:
  "server1":
    - haproxy.service
    - keepalived.service
  "server4":
    - haproxy.service
    - keepalived.service
  "server2":
    - apache.service
  "server3":
- nginx.service

開始推送

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

在這裏插入圖片描述

四、在瀏覽器中測試負載均衡和高可用

在這裏插入圖片描述
在瀏覽器中訪問vip,可以看到實現了負載均衡
在這裏插入圖片描述
在這裏插入圖片描述
當把server1上的keepalived關掉

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

在這裏插入圖片描述
測試,可以看出在客戶端仍然可以訪問,實現了高可用
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章