![]()
一 环境准备
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 rsyncrsync服务采用输入命令方式启动守护进程
rsync服务采用kill killalll pkill等方式进行停止
rsync服务启动脚本可以进行shell编写或使用xinetd服务第八步 检查服务是否启动 # 检查服务进程是否存在
ps -ef | grep rsync
# 检查服务进程端口信息
netstat -lntup | grep rsyncrsync软件服务的默认端口号为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.ymlinstall.ymlmain.yml模板文件rsyncd.conf.j2的内容rsync.password.j2配置变量。
编写入口文件site.yml
#判断参数是否是0个
if [ $# -eq 0 ];then
echo “please input ip address: ”
exit 1
fi
#加载系统函数