SaltStack自动化安装配置haproxy的Keepalived
keepalived配置安装
什么是vrrp,阿里云不支持组播,所以阿里云上不能配置keepalived,但是它有自己的slb。
运维的大忌,在命令行复制粘贴,一般是先复制到文本中查看确认以后
salt编写配置管理keepalived之前,首先自己安装一遍
一、下载以及编译安装
- wget http://www.keepalived.org/software/keepalived-1.2.19.tar.gz
- tar zxf keepalived-1.2.19.tar.gz
- cd keepalived-1.2.19
- ./configure --prefix=/usr/local/keepalived --disable-fwmark
- make && make install
二、编写功能模块配置
1、创建keepalived配置管理相关目录
- mkdir /srv/salt/prod/keepalived
- mkdir /srv/salt/prod/leepalived/files
- cd /usr/local/src/keepalived-1.2.19/keepalived/etc
- cp init.d/keepalived.init /srv/salt/prod/keepalived/files
- cp keeplived/keepalived.conf /srv/salt/prod/leepalived/files
- keepalived文件位于编译安装后的目录下,该文件是keepalived后台运行配置文件
- cp /usr/local/keepalived/etc/sysconfig/keepalived /srv/salt/prod/leepalived/files/keepalived.sysconfig
- 或在解压目目录下也存在该文件
- cp keepalived/etc/init.d/keepalived.sysconfig /srv/salt/prod/keepalived/files/
- cp /usr/local/src/keepalived-1.2.19.tar.gz /srv/salt/prod/leepalived/files/
2、修改启动脚本
cd /srv/salt/prod/keepalived/files
vim keeplived.init
- daemon keeplived ${KEEPALIVED_OPTIONS}修改为
- daemon /usr/local/keepalived/sbin/keepalived ${KEEPALIVED_OPTIONS}
3、keepalived安装配置install.sls
cd /srv/salt/prod/keepalived
vim install.sls
- include:
- - pkg.pkg-init
- keepalived-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: 755
- cmd.run:
- - name: cd /usr/local/src && tar zxf 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-install
- keepalived-init:
- file.managed:
- - name: /etc/init.d/keepalived
- - source: salt://keepalived/files/keepalived.init
- - user: root
- - group: root
- - mode: 755
- cmd.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
4、测试
- salt '*' state.sls keepalived.install env=prod test=True
三、编写业务模块配置
1、编写keepalived的配置haproxy-outside-keepalived.conf
cd /srv/salt/prod/cluster/files
vim haproxy-outside-keepalived.conf
- ! Configuration File for keepalived
- global_defs {
- notification_email {
- saltstack@example.com
- }
- notification_email_from keepalived@example.com
- smtp_server 127.0.0.1
- smtp_connect_timeout 30
- # jinja模板变量
- router_id {{ROUTEID}}
- }
- vrrp_instance haproxy_ha {
- # jinja模板变量
- state {{STATEID}}
- interface eth0
- virtual_router_id 36
- # jinja模板变量
- priority {{PRIORITYID}}
- advert_int 1
- authentication {
- auth_type PASS
- auth_pass 1111
- }
- virtual_ipaddress {
- #虚ip
- 192.168.217.155
- }
- }
2、编写管理keepalived配置文件的sls
cd /srv/salt/prod/cluster/
vim haproxy-outside-keepalived.sls
- include:
- - keepalived.install
- keepalived-service:
- 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'] == 'node1' %}
- - ROUTEID: haproxy_ha
- - STATEID: MASTER
- - PRIORITYID: 150
- {% elif grains['fqdn'] == 'node2' %}
- - ROUTEID: haproxy_ha
- - STATEID: BACKUP
- - PRIORITYID: 100
- {% endif %}
- service.running:
- - name: keepalived
- - enable: True
- - watch:
- - file: keepalived-service
3、配置完后的文件配置管理目录结构
│ ── base
│ ├── init
│ │ ├── audit.sls
│ │ ├── dns.sls
│ │ ├── env_init.sls
│ │ ├── files
│ │ │ └── resolv.conf
│ │ ├── history.sls
│ │ └── sysctl.sls
│ └── top.sls
├── prod
├── cluster
│ ├── files
│ │ ├── haproxy-outside.cfg
│ │ └── haproxy-outside-keepalived.conf
│ ├── haproxy-outside-keepalived.sls
│ └── haproxy-outside.sls
├── haproxy
│ ├── files
│ │ ├── haproxy-1.6.2.tar.gz
│ │ └── haproxy.init
│ └── install.sls
├── keepalived
│ ├── files
│ │ ├── keepalived-1.2.19.tar.gz
│ │ ├── keepalived.conf
│ │ ├── keepalived.init
│ │ └── keepalived.sysconfig
│ └── install.sls
└── pkg
└── pkg-init.sls
4、测试
salt '*' state.sls cluster.haproxy-outside-keepalived env=prod test=True
5、在top.sls中加入keepalived
vim /srv/salt/base/top.sls
- base:
- '*':
- - init.env_init
- prod:
- "node1":
- - cluster.haproxy-outside
- - cluster.haproxy-outside-keepalived
- "node2":
- - cluster.haproxy-outside
- - cluster.haproxy-outside-keepalived
四、执行安装和配置keepalived以及vrrp测试查看
1、执行配置管理
- salt '*' state.highstate
2、虚ip查看如下截图
web访问结果
SaltStack自动化安装配置haproxy的Keepalived的更多相关文章
- saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy的Keepalived
saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy的Keepalived 安装配置Keepalived 1.编写功能模块 #创建keepalived目录# mkdir -p ...
- SaltStack自动化安装配置haproxy
准备环境node1:192.168.217.149 (saltstack master)node2:192.168.217.150(saltstack minion)下载haproxy1.6.2.ta ...
- saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy
saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy 下载haproxy1.6.2.tar.gz下载地址:http://www.haproxy.org/download/1. ...
- Centos7.4安装配置haproxy和Keepalived
系统版本是centos7.4的 [root@data-1-1 ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [roo ...
- Centos7.4安装配置haproxy和Keepalived补充内容
补充比较杂 1.当master服务恢复正常之后,backup机器收到消息,然后让出vip 下面是master机器服务恢复正常后,backup机器的Keepalived日志 收到master的消息通知, ...
- RabbitMQ集群安装配置+HAproxy+Keepalived高可用
RabbitMQ集群安装配置+HAproxy+Keepalived高可用 转自:https://www.linuxidc.com/Linux/2016-10/136492.htm rabbitmq 集 ...
- SaltStack自动化安装zabbix-server
使用SaltStack自动化安装zabbix-server 1,设置ntp时间同步 2,安装zabbix-agent 3,安装zabbix-server 4,安装及配置mariadb(mariadb与 ...
- NTP时间同步 服务端 客户端 自动化安装配置
NTP时间同步 服务端 客户端 自动化安装配置 原创内容 http://www.cnblogs.com/elvi/p/7657994.html #!/bin/sh #运行环境 centos6.cent ...
- Linux系统实现ansible自动化安装配置httpd
1.使用ansible的playbook实现自动化安装httpd 1)首先配置好ansible的hosts文件,让其对应主机能够受ansible控制 提示:我们在主机清单上配置了所管控的主机地址,但是 ...
随机推荐
- 股神小L
题解 贪心 若当前手中还持有股,则一定会卖出去. 否则,考虑之前卖出的最便宜的股,若售价比当前的股高,就买下这个股,否则我们就把之前卖出的最便宜的股改为买入,这样一定会有股,然后再把这个股卖出即可. ...
- HihoCoder1338 A Game(记忆化搜索)
时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Little Hi and Little Ho are playing a game. There is an integ ...
- 【LeetCode】018 4Sum
题目: Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = ...
- bzoj 3924 幻想乡战略游戏 —— 动态点分治
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3924 参考了博客:https://blog.csdn.net/qq_34564984/art ...
- winfrom实现控件全屏效果
用常规方法实现全屏显示时,由于采用的三方控件导致界面顶端一直有一条半透明的类似标题栏的东西无法去除,原因一直没找到. 下面综合整理下网上两位博主的用WindowsAPI实现全屏的方法: 控件全屏显示: ...
- 为什么并行测试很困难以及如何使用 ConTest 辅助测试
众所周知并行程序设计易于产生 bug.更为严重的是,往往在开发过程的晚期当这些并行 bug 引起严重的损害时才能发现它们并且难于调试它们.即使彻底地对它们进行了调试,常规的单元测试实践也很可能遗漏并行 ...
- Java接口定义和实现
1. 使用interface来定义一个接口.接口定义类似类的定义,分为接口的声明和接口体,其中接口体由常量定义和方法定义两部分组成.定义接口的基本格式如下: [修饰符] interface 接口名 [ ...
- CentOS 7 配置 http 服务器
一.http单域名访问 1.安装软件: yum -y install httpd 2.启动服务:systemctl start httpd 3.设置开机启动: systemctl enable ht ...
- Dialog 自定义使用1
一: 布局文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:andr ...
- easyui学习笔记1-(datagrid+dialog)
jQuery EasyUI是一组基于jQuery的UI插件集合体.我的理解:jquery是js的插件,easyui是基于jquery的插件.用easyui可以很轻松的打造出功能丰富并且美观的UI界面. ...