我们之前学习了saltstack的一些基本的用法,那么我们就在本章来推送一个keepalived的高可用,实现http和nginx的高可用
1.在master的/srv/salt下建立keepalived目录,进到目录里边编辑安装keepalived的sls推送文件
[root@server1 salt]# mkdir keepalived
[root@server1 salt]# cd keepalived/
[root@server1 keepalived]# vim install.sls
kp-install:
pkg.installed:
- pkgs:
- keepalived
file.managed:
- name: /etc/keepalived/keepalived.conf
- source: salt://keepalived/files/keepalived.conf
- template: jinja
{% if grains['fqdn'] == 'server2' %} # server1是master
STATE: MASTER
VRID: 51
PRIORITY: 100
{% elif grains['fqdn'] == 'server3' %} # server2是backup
STATE: BACKUP
VRID: 51
PRIORITY: 50
{% endif %}
service.running:
- name: keepalived
- reload: True
- watch:
- file: kp-install
[root@server1 keepalived]# mkdir files
[root@server1 keepalived]# ls
files install.sls
[root@server1 keepalived]# cd files/
[root@server1 files]# ls
keepalived.conf 这里的文件我们可以在别的主机上安装keepalived,然后将这个配置文件复制过来
[root@server1 files]# vim 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.66.100
}
}
2.编写全部节点推送的文件top.sls
base:
'roles:apache':
- match: grain
- keepalived.install
- apache.service
'roles:nginx':
- match: grain
- keepalived.install
- nginx.service
3.高级推送
4.测试高可用
server2:
我们可以看到有vip
然后我们停掉server2的keepalived
server3:
我们可以发现vip漂到了server3上,高可用推送成功