【Redis】Redis实例迁移中的防火墙权限迁移实现

本文介绍了一种在Redis实例迁移过程中,通过Ansible自动化工具实现源服务器与目标服务器间防火墙权限同步的方法。具体步骤包括:使用shell模块获取源实例防火墙权限,将权限内容写入临时文件,通过copy模块传输文件,使用shell模块插入权限并重载iptables。

一、简述

    由于大多数情况下Redis的部署都是单机多实例,且Redis的权限目前仅iptables控制,在进行实例迁移的时候,就不能将整个iptables文件copy过去,需要截取该实例端口开通的权限到目标服务器上。

 

二、实现方式

    1、通过ansible获取shell模块执行grep命令获取到源实例相关防火墙权限内容;

    2、将防火墙内容写入到中控端临时文件中;

    3、通过ansible的copy模块将权限内容的临时文件传到目标服务器;

    4、通过ansible的shell模块执行sed命令,将临时文件的内容插入到iptables中,然后重载即可;

echo "业务防火墙复制..."
iptables_cmd=`ansible ${SrcIp} -m shell -a "cat /etc/sysconfig/iptables|grep ' ${InstancePort} '" -s|grep -v "SUCCESS"`

echo "$iptables_cmd" > /tmp/tmp_${SrcIp}_${InstancePort}_iptables

ansible ${DestIp} -m copy -a "src=/tmp/tmp_${SrcIp}_${InstancePort}_iptables dest=/tmp/" -s

ansible ${DestIp} -m shell -a 'cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bak_`date "+%Y%m%d_%H%M"`' -s

ansible ${DestIp}  -m shell -a "chattr -i /etc/sysconfig/iptables && sed -i '15r /tmp/tmp_${SrcIp}_${InstancePort}_iptables' /etc/sysconfig/iptables && chattr +i /etc/sysconfig/iptables" -s

ansible ${DestIp}  -m shell -a "service iptables reload" -s

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值