Ansible部署rsync

本文档介绍了如何利用Ansible进行环境准备,包括主机名和IP地址规划,以及通过密钥分发脚本实现受控端的无密码访问。接着详细阐述了如何编写rsync的Ansible角色,实现rsync服务的自动化部署。

 一  环境准备

2017年9月9日 21:35:37  seventeenwen

1.1 主机名和主机IP地址规划表


 主机名 IP地址规划
m01  10.0.0.61    172.16.1.61
web01                                          10.0.0.8      172.16.1.8
web02                                          10.0.0.7      172.16.1.7 
nfs                                          10.0.0.31    172.16.1.31 
backup                                          10.0.0.41    172.16.1.41

1.2 通过密钥分发脚本发送给各个受控端

分发脚本:
脚本执行结果
1.3 编辑Ansible的hosts文件

1.4 通过Ansible的测试模块测试


二  开始编写角色

2.1 编写common角色
在每一台服务器上都有一些共有的特性,这些特性可以通过Ansible的common角色来批量的定制化。例如创建同一的目录结构,共有的目录结构
目录名 目录功能
/server/scripts 存放要运行的脚本
/tools 存放主机要安装的工具
common角色的yml文件
        在Ansible的配置文件中可以通过使用with_items:来指定循环,学名叫做 迭代(with_items),不但可以通过with_items来使用批量创建目录还可以批量安装软件包。
执行结果:

2.2 编写rsync角色

rsync的部署流程:
Rsync备份服务部署实践
服务器类型 部署序号 部署步骤说明 Rsync服务端部署 备注说明
服务端 第一步 检查软件是否安装 # 查看软件是否安装
rpm -qa rsync
rpm -qa | grep rsync
# 查看软件安装了哪些信息
rpm -ql rsync
rpm -qf `which rsync`
  第二步 进行服务软件安装 N/A 默认rsync软件已经安装,若没有安装,执行以下命令
yum install rsync -y
  第三步 编写服务配置文件 # 编写rsync配置文件
vim /etc/rsyncd.conf (man rsyncd.conf)
默认配置文件不存在
配置文件进行修改后,需要对服务进行重启
  第四步 添加目录管理用户 # 创建备份目录管理用户
useradd rsync -s /sbin/nologin -M
根据配置文件设置进行管理用户创建
创建的用户为虚拟用户
  第五步 创建程序所需目录 # 创建数据备份目录
mkdir /backup
# 数据目录进行授权
chown rsync.rsync /backup
创建程序目录需要确认相应授权信息
  第六步 进行安全相关配置 # 创建认证文件信息
echo "rsync_backup:123456" >/etc/rsync.password
# 修改认证文件权限
chmod 600 /etc/rsync.password
创建涉及密钥信息文件均要进行授权,提升文件信息安全
  第七步 启停程序服务进程 # 启动rsync程序守护进程
rsync --daemon
# 停止rsync程序守护进程
killall rsync
rsync服务采用输入命令方式启动守护进程
rsync服务采用kill killalll pkill等方式进行停止
rsync服务启动脚本可以进行shell编写或使用xinetd服务
  第八步 检查服务是否启动 # 检查服务进程是否存在
ps -ef | grep rsync
# 检查服务进程端口信息
netstat -lntup | grep rsync
rsync软件服务的默认端口号为873
服务器类型 部署序号 部署步骤说明 Rsync客户端部署 备注说明
客户端 第一步 检查软件是否安装 # 查看软件是否安装
rpm -qa rsync
rpm -qa | grep rsyn
# 查看软件安装了哪些信息
rpm -ql rsync
# 查看某个命令如何安装的
rpm -qf `which rsync`
  第二步 进行服务软件安装 N/A 默认rsync软件已经安装,若没有安装,执行以下命令
yum install rsync -y
  第三步 进行安全相关配置 # 创建认证文件信息
echo "123456" >/etc/rsync.password
# 修改认证文件权限
chmod 600 /etc/rsync.password
创建涉及密钥信息文件均要进行授权,提升文件信息安全
  第四步 进行服务应用测试 # 确认备份数据传输
rysnc -avzP /etc/hosts rsync_backup@172.16.1.41::backup
# 确认备份数据传输,采用免密钥进行传输
rysnc -avzP /etc/hosts rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
属于软件命令参数信息
编写rsync角色
config_rsyncd.yml
install.yml
main.yml
模板文件
rsyncd.conf.j2的内容
rsync.password.j2
配置变量。

编写入口文件site.yml

#!/bin/bash
#判断参数是否是0个
为了减轻多服务器配置和操作工作量以及安全性,特研究此课题,理论上可以同步所有想同步的文件,并且做到一键操作,不需要切换用户,不需要多次操作脚本,中途不需要输入任何字。 1, hosts文件 2, play.yml文件 剧本文件,按标准放到tasks文件夹内,因后面脚本写了路径,如果不愿意放tasks文件夹,需要改后面sh脚本路径参数 3, rsync_notice.py文件 钉钉机器人发送消息文件,此文件放在tools文件夹内,会调用备份日志进行分析,过滤后,发送到钉钉群内。各位同事可修改文件里的Webhoo为自己的机器人key 4, deploy.sh 文件 调用py钉钉文件发消息,并且处理备份日志,删除近期日志等后续事宜,请放在tools文件夹内 1.3.3. 功能基本介绍 1, 在对应脚本里基本都有注释,这里简单介绍下 2, 剧本文件需要在主控机器(备份机器),root用户下运行,运行一次即可,后续sh及py脚本会自动处理。一键搞定所有事情,中途无需手动干预; 3, 自行修改host文件为自己项目地址,bak为备份文件服务器,为安全起见,hosts文件进行了vault加密,密码123456,运行剧本文件,请加—ask-vault-pass 4, 再次提醒,在脚本运行完成后,为保险起见,可将hosts文件中的root密码删除,或修改复杂密码,不会影响后续同步功能。 5, 剧本流程介绍: 1) 主控被控端安装rsync及相关依赖软件; 2) 主控与被控端添加备份用户,rsync; 3) 主控端即备份服务器建立备份文件夹,设置归属用户; 4) 主控及被控端自动切换rsync用户,使用rsync用户配置免密访问所有被控端,即便服务器被黑,rsync用户访问也做不了什么; 5) 主控端即备份服务器使用rsync用户增加同步、日志记录、钉钉发送消息等定时任务; 6) 定时任务里各个需要同步的源地址及项目名称,请自行修改; 7) 日志为叠加记录,钉钉消息发完后,会按日期进行备份,同时删除原日志,因为钉钉消息每天都发,避免冗余数据; 6, 钉钉消息脚本介绍: 1) 访问实时备份日志,考虑到钉钉消息,只需要知道同步是否成功,其余数据不关心,所以读取后,进行数据处理,取出服务器地址、成功标识,或未成功标识; 2) 调用钉钉机器人接口,采取markdown形式,此形式可以定义一个固定的标题,比如:rsync同步情况汇总,这样在钉钉机器人安全设置里,只需要将标题设为关键字即可,具体发送内容千奇百怪也没关系。另外两种方式各有弊端,未研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值