版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
实验环境:
server1:172.25.31.1 | salt-master |
---|---|
server2:172.25.31.2 | salt-minion、 apache、keepalived |
server3:172.25.31.3 | salt-minion、nginx、keepalived |
apache与nginx的部署上文已经介绍过了,这里就不介绍了。
1.建立keepalived目录
[root@server1 salt]# mkdir keepalived
[root@server1 salt]# cd keepalived/
[root@server1 keepalived]# ls
[root@server1 keepalived]# mkdir files
[root@server1 keepalived]# ls
files
2.copykeepalived配置文件并修改
[root@server1 keepalived]# cat files/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_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.31.100
}
}
3.编辑keepalived安装文件
[root@server1 keepalived]# cat install.sls
install-keepalived:
pkg.installed:
- pkgs:
- keepalived
file.managed:
- name: /etc/keepalived/keepalived.conf
- source: salt://keepalived/files/keepalived.conf
- template: jinja
- context:
STATE: {{ pillar['state'] }}
VRID: {{ pillar['vrid'] }}
PRIORITY: {{ pillar['priority'] }}
service.running:
- name: keepalived
- watch:
- file: install-keepalived
4.编辑相应的pillar文件
[root@server1 pillar]# cat web/vars.sls
{% if grains['fqdn'] == 'server2' %}
webserver: httpd
ip: 172.25.31.2
port: 80
state: MASTER
vrid: 31
priority: 100
{% elif grains['fqdn'] == 'server3' %}
webserver: nginx
state: BACKUP
vrid: 31
priority: 50
{% endif %}
[root@server1 pillar]# cat top.sls
base:
'*':
- web.vars
5.编辑顶层top
root@server1 salt]# cat top.sls
base:
'roles:apache':
- match: grain
- apache.install
- keepalived.install
'roles:nginx':
- match: grain
- nginx.service
- keepalived.install
6.推送相应软件给server2、server3
测试:
server2的优先级较高,vip在server2上
浏览器输入:172.25.31.100
访问的是server2的apache
扫描二维码关注公众号,回复:
7199393 查看本文章
关闭server2的keepalived
[root@server2 ~]# systemctl stop keepalived.service
vip转移到server3上
此时,访问的是server3的nginx