功能模块之keepalived的安装
=====================注意:真正服务器使用时不鞥有这些#号注稀或者空格、tab键。检测可以在vi 里面:set list来判断是否有空格==================先看过来
在keepalived安装之前,我们首先需要准备keepalived的安装包、启动脚本以及配置文件等。我们需要将所有的这些东西都放到keepalived/files目录下。
创建keepalived的相关目录:
[root@salt-master ~]# mkdir /srv/salt/prod/keepalived
[root@salt-master ~]# mkdir /srv/salt/prod/keepalived/files
拷贝keepalived的相关文件:
[root@salt-master ~]# cd /usr/local/src/
[root@salt-master ~]# tar -xvf keepalived-1.4.4.tar.gz
[root@salt-master ~]# cp /usr/local/src/keepalived-1.4.4/keepalived/etc/init.d/keepalived.rh.init /srv/salt/prod/keepalived/files/keepalived.ini
[root@salt-master ~]# cp /usr/local/src/keepalived-1.4.4/keepalived/etc/keepalived/keepalived.conf /srv/salt/prod/keepalived/files/
keepalived.init-keepalived的启动脚本
[root@salt-master ~]# vi /srv/salt/prod/keepalived/files/keepalived.init
#!/bin/sh
#
# Startup script for the Keepalived daemon
#
# processname: keepalived
# pidfile: /var/run/keepalived.pid
# config: /etc/keepalived/keepalived.conf
# chkconfig: - 21 79
# description: Start and stop Keepalived
# Source function library
. /etc/rc.d/init.d/functions
# Source configuration file (we set KEEPALIVED_OPTIONS there)
. /etc/sysconfig/keepalived
RETVAL=0
prog="keepalived"
start() {
echo -n $"Starting $prog: "
daemon /usr/local/keepalived/sbin/keepalived ${KEEPALIVED_OPTIONS} #这里加上路径<=====================
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
}
stop() {
echo -n $"Stopping $prog: "
killproc keepalived
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
}
reload() {
echo -n $"Reloading $prog: "
killproc keepalived -1
RETVAL=$?
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
stop
start
;;
condrestart)
if [ -f /var/lock/subsys/$prog ]; then
stop
start
fi
;;
status)
status keepalived
RETVAL=$?
;;
*)
echo "Usage: $0 {start|stop|reload|restart|condrestart|status}"
RETVAL=1
esac
exit $RETVAL
keepalived.conf-keepalived的配置文件:
[root@salt-master ]# vi /srv/salt/prod/keepalived/files/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.91.134
192.168.91.133
}
}
virtual_server 192.168.200.100 443 {
delay_loop 6
lb_algo rr
lb_kind NAT
nat_mask 255.255.255.0
persistence_timeout 50
protocol TCP
real_server 192.168.201.100 443 {
weight 1
SSL_GET {
url {
path /
digest ff20ad2481f97b1754ef3e12ecd3a9cc
}
url {
path /mrtg/
digest 9b3a0c85a887a256d6939da88aabd8cd
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
virtual_server 10.10.10.2 1358 {
delay_loop 6
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
sorry_server 192.168.91.200 1358
real_server 192.168.91.2 1358 {
weight 1
HTTP_GET {
url {
path /testurl/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
url {
path /testurl2/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
url {
path /testurl3/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.200.3 1358 {
weight 1
HTTP_GET {
url {
path /testurl/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334c
}
url {
path /testurl2/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334c
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
virtual_server 10.10.10.3 1358 {
delay_loop 3
lb_algo rr
lb_kind NAT
nat_mask 255.255.255.0
persistence_timeout 50
protocol TCP
real_server 192.168.200.4 1358 {
weight 1
HTTP_GET {
url {
path /testurl/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
url {
path /testurl2/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
url {
path /testurl3/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.200.5 1358 {
weight 1
HTTP_GET {
url {
path /testurl/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
url {
path /testurl2/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
url {
path /testurl3/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
/usr/local/keepalived/etc/sysconfig/
[root@salt-master ~]# cp /usr/local/src/keepalived-1.4.4/keepalived/etc/init.d/keepalived /srv/salt/prod/keepalived/files/keepalived.sysconfig
现在,我们查看files目录都有哪些东西:
[root@salt-master ~]#ls /srv/salt/prod/keepalived/files/
keepalived-1.4.4.tar keepalived.init
keepalived.conf keepalived.sysconfig
salt文件主要涉及到pkg-init脚本的引用,此脚本主要是解决安装前的依赖;keepalived-install标签用于安装keepalived;keepalived-init标签用于下发启动脚本以及将服务加入到系统启动中;/etc/sysconfg/keepalived标签用于下发配置文件到各个节点上。
[root@salt-master ~]# vi /srv/salt/prod/keepalived/install.sls
include: #引用pkg目录下pkg-init脚本
- pkg.pkg-init
keepalived-install:
file.managed: #file模块来拷贝keepalived的安装包
- name: /usr/local/src/keepalived-1.4.4.tar.gz
- source: salt://keepalived/files/keepalived-1.4.4.tar.gz
- usr: root
- group: root
- mode: 755
cmd.run: #cmd模块的- name函数来执行具体安装命令
- name: cd /usr/local/src && tar -zxvf keepalived-1.4.4.tar.gz && cd keepalived-1.4.4 && ./configure --prefix=/usr/local/keepalived --disable-fwmark && make && make install
- unless: test -d /usr/local/keepalived
- require: #require状态依赖关系
- pkg: pkg-init
- file: keepalived-install
keepalived-init:
file.managed:
- name: /etc/init.d/keepalived
- source: salt://keepalived/files/keepalived.init
- usr: root
- group: root
- mode: 755
cmd.run:
- name: systemctl enable keepalived
- unless: systemctl start 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
目录文件结构:
[root@salt-master prod]# tree keepalived/
keepalived/
├── files
│ ├── keepalived-1.4.4.tar.gz
│ ├── keepalived.conf
│ ├── keepalived.ini
│ └── keepalived.sysconfig
└── install.sls
现在,我们开始执行salt文件:
[root@salt-master ~]# salt 'centos-test[1-2]' state.sls keepalived.install env=prod
=====================注意:真正服务器使用时不鞥有这些#号注稀或者空格、tab键。检测可以在vi 里面:set list来判断是否有空格==================先看过来
在keepalived安装之前,我们首先需要准备keepalived的安装包、启动脚本以及配置文件等。我们需要将所有的这些东西都放到keepalived/files目录下。
创建keepalived的相关目录:
[root@salt-master ~]# mkdir /srv/salt/prod/keepalived
[root@salt-master ~]# mkdir /srv/salt/prod/keepalived/files
拷贝keepalived的相关文件:
[root@salt-master ~]# cd /usr/local/src/
[root@salt-master ~]# tar -xvf keepalived-1.4.4.tar.gz
[root@salt-master ~]# cp /usr/local/src/keepalived-1.4.4/keepalived/etc/init.d/keepalived.rh.init /srv/salt/prod/keepalived/files/keepalived.ini
[root@salt-master ~]# cp /usr/local/src/keepalived-1.4.4/keepalived/etc/keepalived/keepalived.conf /srv/salt/prod/keepalived/files/
keepalived.init-keepalived的启动脚本
[root@salt-master ~]# vi /srv/salt/prod/keepalived/files/keepalived.init
#!/bin/sh
#
# Startup script for the Keepalived daemon
#
# processname: keepalived
# pidfile: /var/run/keepalived.pid
# config: /etc/keepalived/keepalived.conf
# chkconfig: - 21 79
# description: Start and stop Keepalived
# Source function library
. /etc/rc.d/init.d/functions
# Source configuration file (we set KEEPALIVED_OPTIONS there)
. /etc/sysconfig/keepalived
RETVAL=0
prog="keepalived"
start() {
echo -n $"Starting $prog: "
daemon /usr/local/keepalived/sbin/keepalived ${KEEPALIVED_OPTIONS} #这里加上路径<=====================
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
}
stop() {
echo -n $"Stopping $prog: "
killproc keepalived
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
}
reload() {
echo -n $"Reloading $prog: "
killproc keepalived -1
RETVAL=$?
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
stop
start
;;
condrestart)
if [ -f /var/lock/subsys/$prog ]; then
stop
start
fi
;;
status)
status keepalived
RETVAL=$?
;;
*)
echo "Usage: $0 {start|stop|reload|restart|condrestart|status}"
RETVAL=1
esac
exit $RETVAL
keepalived.conf-keepalived的配置文件:
[root@salt-master ]# vi /srv/salt/prod/keepalived/files/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.91.134
192.168.91.133
}
}
virtual_server 192.168.200.100 443 {
delay_loop 6
lb_algo rr
lb_kind NAT
nat_mask 255.255.255.0
persistence_timeout 50
protocol TCP
real_server 192.168.201.100 443 {
weight 1
SSL_GET {
url {
path /
digest ff20ad2481f97b1754ef3e12ecd3a9cc
}
url {
path /mrtg/
digest 9b3a0c85a887a256d6939da88aabd8cd
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
virtual_server 10.10.10.2 1358 {
delay_loop 6
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
sorry_server 192.168.91.200 1358
real_server 192.168.91.2 1358 {
weight 1
HTTP_GET {
url {
path /testurl/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
url {
path /testurl2/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
url {
path /testurl3/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.200.3 1358 {
weight 1
HTTP_GET {
url {
path /testurl/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334c
}
url {
path /testurl2/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334c
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
virtual_server 10.10.10.3 1358 {
delay_loop 3
lb_algo rr
lb_kind NAT
nat_mask 255.255.255.0
persistence_timeout 50
protocol TCP
real_server 192.168.200.4 1358 {
weight 1
HTTP_GET {
url {
path /testurl/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
url {
path /testurl2/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
url {
path /testurl3/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.200.5 1358 {
weight 1
HTTP_GET {
url {
path /testurl/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
url {
path /testurl2/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
url {
path /testurl3/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
/usr/local/keepalived/etc/sysconfig/
[root@salt-master ~]# cp /usr/local/src/keepalived-1.4.4/keepalived/etc/init.d/keepalived /srv/salt/prod/keepalived/files/keepalived.sysconfig
现在,我们查看files目录都有哪些东西:
[root@salt-master ~]#ls /srv/salt/prod/keepalived/files/
keepalived-1.4.4.tar keepalived.init
keepalived.conf keepalived.sysconfig
salt文件主要涉及到pkg-init脚本的引用,此脚本主要是解决安装前的依赖;keepalived-install标签用于安装keepalived;keepalived-init标签用于下发启动脚本以及将服务加入到系统启动中;/etc/sysconfg/keepalived标签用于下发配置文件到各个节点上。
[root@salt-master ~]# vi /srv/salt/prod/keepalived/install.sls
include: #引用pkg目录下pkg-init脚本
- pkg.pkg-init
keepalived-install:
file.managed: #file模块来拷贝keepalived的安装包
- name: /usr/local/src/keepalived-1.4.4.tar.gz
- source: salt://keepalived/files/keepalived-1.4.4.tar.gz
- usr: root
- group: root
- mode: 755
cmd.run: #cmd模块的- name函数来执行具体安装命令
- name: cd /usr/local/src && tar -zxvf keepalived-1.4.4.tar.gz && cd keepalived-1.4.4 && ./configure --prefix=/usr/local/keepalived --disable-fwmark && make && make install
- unless: test -d /usr/local/keepalived
- require: #require状态依赖关系
- pkg: pkg-init
- file: keepalived-install
keepalived-init:
file.managed:
- name: /etc/init.d/keepalived
- source: salt://keepalived/files/keepalived.init
- usr: root
- group: root
- mode: 755
cmd.run:
- name: systemctl enable keepalived
- unless: systemctl start 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
目录文件结构:
[root@salt-master prod]# tree keepalived/
keepalived/
├── files
│ ├── keepalived-1.4.4.tar.gz
│ ├── keepalived.conf
│ ├── keepalived.ini
│ └── keepalived.sysconfig
└── install.sls
现在,我们开始执行salt文件:
[root@salt-master ~]# salt 'centos-test[1-2]' state.sls keepalived.install env=prod