SaltStack一键自动化部署高可用负载均衡集群

开启一个server4做为高可用
配置server4的salt-minion 在之前博客的saltstack安装部署有步骤
配置server4   yum源

[root@server4 ~]# vim /etc/yum.repos.d/rhel-source.repo 
[salt]
name=saltstack
baseurl=http://172.25.40.250/rhel6
enabled=1
gpgcheck=0

[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.40.250/rhel6.5/LoadBalancer
gpgcheck=0

将keepalived安装脚本推送到server4

[root@server1 ~]# cd /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
[root@server1 files]# cd ..
[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/nul
l && make &> /dev/null && make install &> /dev/null
    - creates: /usr/local/keepalived
[root@server1 keepalived]# salt server4 state.sls keepalived.install

这里写图片描述
【server4】

[root@server4 ~]# cd /mnt
[root@server4 mnt]# ll -d /usr/local/keepalived/
[root@server4 mnt]# ls
[root@server4 mnt]# cd /usr/local/keepalived/
[root@server4 keepalived]# ls
[root@server4 keepalived]# cd etc/
[root@server4 etc]# ls
[root@server4 etc]# cd rc.d/
[root@server4 rc.d]# ls
[root@server4 rc.d]# cd init.d/
[root@server4 init.d]# ls
[root@server4 init.d]# scp keepalived server1:/srv/salt/keepalived/files

这里写图片描述

[root@server4 init.d]# cd ..
[root@server4 rc.d]# cd ..
[root@server4 etc]# ls
[root@server4 etc]# cd sysconfig/
[root@server4 sysconfig]# cd ..
[root@server4 etc]# cd ..
[root@server4 keepalived]# cd etc/
[root@server4 etc]# cd keepalived/
[root@server4 keepalived]# ls
keepalived.conf  samples
[root@server4 keepalived]# scp keepalived.conf server1:/srv/salt/keepalived/files

这里写图片描述

继续编写keepalived安装脚本推送到server4

[root@server1 keepalived]# vim install.sls 
在原来的脚本上添加以下内容:建立目录并制作软链接
/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
[root@server1 keepalived]# salt server4 state.sls keepalived.install

这里写图片描述
这里写图片描述
在server4上查看软链接是否存在
这里写图片描述

编写keepalived运行脚本并推送到server4上

[root@server1 keepalived]# pwd
/srv/salt/keepalived/
[root@server1 keepalived]# vim service.sls
include:
  - keepalived.install

/etc/keepalived/keepalived.conf:
  file.managed:
    - source: salt://keepalived/files/keepalived.conf
    - template: jinja

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
[root@server1 keepalived]# cd /srv/pillar
[root@server1 pillar]# mkdir keepalived
[root@server1 pillar]# cd keepalived/
[root@server1 keepalived]# vim install.sls 
[root@server1 keepalived]# cp ../web/install.sls .
[root@server1 keepalived]# vim install.sls 
{% if grains['fqdn'] == 'server1' %}
state: MASTER
vrid: 40
priority: 100
{% elif grains['fqdn'] == 'server4' %}
state: MASTER
vrid: 40
priority: 50
{% endif %}
[root@server1 keepalived]# cd ..
[root@server1 pillar]# ls
keepalived  top.sls  web
[root@server1 pillar]# vim top.sls 
base:
  '*':
    - web.install
    - keepalived.install
[root@server1 pillar]# cd ..
[root@server1 srv]# cd salt/
[root@server1 salt]# cd keepalived/
[root@server1 keepalived]# vim service.sls 
  7     - template: jinja    在这行后面添加以下内容
  8     - context:
  9         STATE: {{ pillar['state'] }}
 10         VRID: {{ pillar['vrid'] }}
 11         PRIORITY: {{ pillar['priority'] }}
[root@server1 keepalived]# vim files/keepalived.conf 
  3 global_defs {
  4    notification_email {
  5         root@localhost
  6    }    

  8    smtp_server 127.0.0.1
 12    #vrrp_strict

 18     state {{ STATE }}
 19     interface eth0
 20     virtual_router_id {{ VRID }}
 21     priority {{ PRIORITY }}

 27     virtual_ipaddress {
 28         172.25.40.100
 29     }
删除32行以下所有内容
[root@server1 keepalived]# salt server4 state.sls keepalived.service

这里写图片描述
在【server4】上测试:

[root@server4 keepalived]# ps ax
[root@server4 keepalived]# ip addr    #还没有master的时候VIP 是在server4上
[root@server4 keepalived]# yum install -y mailx

这里写图片描述

推送高可用所有模块

[root@server1 keepalived]# yum install -y mailx
[root@server1 keepalived]# cd ..
[root@server1 salt]# vim top.sls 
base:
  'server1':
    - haproxy.install
    - keepalived.service
  'server4':
    - haproxy.install
    - keepalived.service
  'roles:apache':
    - match:  grain
    - httpd.install
  'roles:nginx':
    - match:  grain
    - nginx.service
[root@server1 salt]# salt '*' state.highstate

没有报错说明推送成功
这里写图片描述
在【server1】上查看VIP发现已经回来了

[root@server1 salt]# ip addr

这里写图片描述
在网页(客户端)访问http://172.25.40.100/
这里写图片描述
这里写图片描述

高可用测试:

如果在server1将keepalived关闭看是否会有高可用

[root@server1 salt]# /etc/init.d/keepalived stop

网页访问依旧可以访问到页面
这里写图片描述
这里写图片描述
此时VIP已经转移到server4上
这里写图片描述
再次将server1上的keepalived开启,VIP会从server4再次转回server1
这里写图片描述

猜你喜欢

转载自blog.csdn.net/Argued_D/article/details/81806114