saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy的Keepalived
来源:互联网 发布:linux命令强制关机 编辑:程序博客网 时间:2024/04/30 19:00
安装配置Keepalived
1、编写功能模块
#创建keepalived目录
# mkdir -p /srv/salt/prod/keepalived/files
# cd /srv/salt/prod/keepalived/files
#获取并解压keepalived
# wget http://www.keepalived.org/software/keepalived-1.2.19.tar.gz
# tar xf keepalived-1.2.19.tar.gz
# cd keepalived-1.2.19
#从源码包拷贝启动脚本、配置文件到files目录
# cp keepalived/etc/init.d/keepalived.init /srv/salt/prod/keepalived/files/
# cp keepalived/etc/init.d/keepalived.sysconfig /srv/salt/prod/keepalived/files/
# cp keepalived/etc/keepalived/keepalived.conf /srv/salt/prod/keepalived/files/
修改启动脚本:
vim prod/keepalived/files/keepalived.init
23 daemon /usr/local/keepalived/sbin/keepalived ${KEEPALIVED_OPTIONS}
#编写install.sls文件
# cd /srv/salt/prod/keepalived/
# vim install.sls
include:- pkg.pkg-initkeepalived-install:file.managed:- name: /usr/local/src/keepalived-1.2.19.tar.gz- source: salt://keepalived/files/keepalived-1.2.19.tar.gz- user: root- group: root- mode: 755cmd.run:- name: cd /usr/local/src && tar xf keepalived-1.2.19.tar.gz && cd keepalived-1.2.19 && ./configure --prefix=/usr/local/keepalived --disable-fwmark && make && make install- unless: test -d /usr/local/keepalived- require:- pkg: pkg-init- file: keepalived-installkeepalived-init:file.managed:- name: /etc/init.d/keepalived- source: salt://keepalived/files/keepalived.init- user: root- group: root- mode: 755cmd.run:- name: chkconfig --add keepalived- unless: chkconfig --list |grep keepalived- require:- file: keepalived-init/etc/sysconfig/keepalived:file.managed:- source: salt://keepalived/files/keepalived.sysconfig- user: root- group: root- mode: 644/etc/keepalived:file.directory:- user: root- group: root- mode: 755
测试
# salt '*' state.sls keepalived.install env=prod test=True
2、编写业务模块
# cd /srv/salt/prod/cluster
#编写keepalived配置文件
# cd files/
# vim haproxy-outside-keepalived.conf
! Configuration File for keepalivedglobal_defs {notification_email {saltstack@example.com}notification_email_from keepalived@example.comsmtp_server 127.0.0.1smtp_connect_timeout 30router_id {{ROUTEID}} # jinja模板变量}vrrp_instance haproxy_ha {state {{STATEID}} # jinja模板变量interface eth0virtual_router_id 36priority {{PRIORITYID}} # jinja模板变量advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.3.11}}
#编写用于管理keepalived配置文件的SLS
# cd /srv/salt/prod/cluster
# vim haproxy-outside-keepalived.sls
include:- keepalived.installkeepalived-serivce:file.managed:- name: /etc/keepalived/keepalived.conf- source: salt://cluster/files/haproxy-outside-keepalived.conf- user: root- group: root- mode: 644- template: jinja{% if grains['fqdn'] == 'mini1' %}- ROUTEID: haproxy_ha- STATEID: MASTER- PRIORITYID: 150{% elif grains['fqdn'] == 'node2.chinasoft.com' %}- ROUTEID: haproxy_ha- STATEID: BACKUP- PRIORITYID: 100{% endif %}service.running:- name: keepalived- enable: True- watch:- file: keepalived-serivce
测试
# salt '*' state.sls cluster.haproxy-outside-keepalived env=prod test=True
#在top.sls中加入keepalived
# cd /srv/salt/base
# vim top.sls
base:
'*':
- init.env_init
prod:
'*':
- cluster.haproxy-outside
- cluster.haproxy-outside-keepalived
#执行安装和配置keepalived
# salt '*' state.highstate
查看mini1主机的IP地址,可以看到vip 192.168.3.11已经在Mini1上
# ip addr1: 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:00inet 127.0.0.1/8 scope host loinet6 ::1/128 scope host valid_lft forever preferred_lft forever2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 00:0c:29:f3:33:f8 brd ff:ff:ff:ff:ff:ffinet 192.168.3.12/24 brd 192.168.3.255 scope global eth0inet 192.168.3.11/32 scope global eth0inet6 fe80::20c:29ff:fef3:33f8/64 scope link valid_lft forever preferred_lft forever
访问:http://192.168.3.11:8888/haproxy-status Ok
测试vip的漂移:
min1停用keepalived服务:
# /etc/init.d/keepalived stop
node2.chinasoft.com查看vip就到了node2.chinasoft.com机器上
# ip addr1: 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:00inet 127.0.0.1/8 scope host loinet6 ::1/128 scope host valid_lft forever preferred_lft forever2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 00:0c:29:55:2e:82 brd ff:ff:ff:ff:ff:ffinet 192.168.3.19/24 brd 192.168.3.255 scope global eth0inet 192.168.3.11/32 scope global eth0inet6 fe80::20c:29ff:fe55:2e82/64 scope link valid_lft forever preferred_lft forever
重新启动mini1的keepalived服务,vip又回到了mini1上
修改haproxy配置,可以实现算法轮询等高级功能vim /srv/salt/prod/cluster/files/haproxy-outside.cfg
- saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy的Keepalived
- saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy
- saltstack自动化运维系列⑦SaltStack实践配置管理安装zabbix
- saltstack自动化运维系列⑧SaltStack实践配置管理安装nginx-1.10.3
- saltstack自动化运维系列⑩SaltStack二次开发初探
- saltstack自动化运维系列11基于etcd的saltstack的自动化扩容
- saltstack自动化运维系列①之saltstack服务安装及简单使用
- saltstack自动化运维系列②之saltstack的数据系统
- saltstack自动化运维系列③之saltstack的常用模块使用
- saltstack自动化运维系列④之saltstack的命令返回结果mysql数据库写入
- saltstack自动化运维系列⑤之saltstack的配置管理详解
- saltstack自动化运维系列12配置管理安装redis-3.2.8
- Saltstack自动化编译安装haproxy
- SaltStack-02Haproxy以及Keepalived配置
- 自动化运维工具 Saltstack安装配置
- saltstack运维自动化的安装与简单配置(一)
- saltstack的安装配置
- 运维笔记43 使用saltstack配置完整线上服务(haproxy+keepalived,nginx+php+memcache,mysql主从)
- saltstack自动化运维系列②之saltstack的数据系统
- saltstack自动化运维系列③之saltstack的常用模块使用
- saltstack自动化运维系列④之saltstack的命令返回结果mysql数据库写入
- saltstack自动化运维系列⑤之saltstack的配置管理详解
- saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy
- saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy的Keepalived
- saltstack自动化运维系列⑦SaltStack实践配置管理安装zabbix
- saltstack自动化运维系列⑧SaltStack实践配置管理安装nginx-1.10.3
- saltstack自动化运维系列⑩SaltStack二次开发初探
- saltstack自动化运维系列11基于etcd的saltstack的自动化扩容
- zabbix监控短信息接口是否正常
- 自动化运维之cobbler安装centos7.3
- 第八届蓝桥杯 承压计算
- CentOS 6.5下PXE+Kickstart无人值守安装操作系统centos7.3