一、一键完成rsync服务端
首先在服务端写一个脚本
vim install_rsync_server.sh
#!/bin/sh
#by liyu 2021-3-22
#(1)安装
yum install rsync -y
#(2) 配置配置文件 /etc/rsyncd.conf
cp /etc/rsyncd.conf{,.ori}
cat>/etc/rsyncd.conf<<EOF
uid = rsync
gid = rsync
use chroot = no
fake super = yes
max connections = 200
timeout = 600
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 192.168.119.0/24
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]
comment = welcome to oldboyedu backup!
path = /backup/
EOF
#(3) 创建用户和备份目录
useradd rsync
id rsync
mkdir -p /backup
chown -R rsync:rsync /backup/
ls -ld /backup/
#(4) 启动和检查
systemctl start rsyncd
systemctl enable rsyncd
systemctl status rsyncd
ps -ef|grep sync|grep -v grep #检查进程
netstat -ltunp|grep 873 #检查端口
#(4) 配置密码文件
echo "rsync_backup:123456" > /etc/rsync.password
chmod 600 /etc/rsync.password
cat /etc/rsync.password
ls -l /etc/rsync.password
#rsync服务端配置完成
简写版如下:
- hosts: rsync_server
tasks:
- name: install rsync
command: yum install rsync -y
- name: copy rsyncd.conf
copy: src=/data/rsyncd.conf.ori dest=/etc/rsyncd.conf backup=yes
- name: create rsync.password
file: content='rsync_backup:123456' path=/etc/rsync.password mode=0600
- name: create user
user: name=rsync shell=/sbin/nologin
- name: create dir
file: path=/backup state=directory
- name: shouquan
file: path=/backup owner=rsync group=rsync
- name: startup rsyncd
systemd: name='rsyncd.service' state=restart enabled=yes
最终脚本路径:/server/scripts/install_rsync_server.sh
二、一键完成rsync客户端
vim install_rsync_client.sh
#!/bin/sh
#by liyu 2021-3-22
echo "123456" > /etc/rsync.password
chmod 600 /etc/rsync.password
cat /etc/rsync.password
ls -l /etc/rsync.password
playbook剧本如下:
- hosts: rsync_client
tasks:
- name
file: content='123456' path=/etc/rsync.password mode=0600
#test
rsync -avz /etc/hosts rsync_backup@192.168.119.155::backup --password-file=/etc/rsync.password
运行检查
[root@nfs ~]# sh install_rsync_client.sh
123456
-rw-------. 1 root root 7 3月 22 16:48 /etc/rsync.password
sending incremental file list hosts
最终路径/server/scripts/install_rsync_client.sh
在服务端查看
[root@backup ~]# ls /backup/
hosts
进入到ansible部分,配置管理机ssh
(1)实现批量分发秘钥,免秘钥管理
vim create_key.sh
#!bin/sh
yum install sshpass
ssh-keygen -f ~/.ssh/id_rsa -P '' -q
for ip in 156 157
do
sshpass -p123456 ssh-copy-id -f -i ~/.ssh/id_rsa.pub "-o StrictHostKeyChecking=no" 192.168.119.$ip
ssh 192.168.119.$ip "ifconfig ens33"
done
(2)配置ansible主机文件
vim /etc/ansible/hosts
【rsync_client】
192.168.119.156
192.168.119.157
(3)开始用ansible运行rsync的脚本
从管理机实现一键服务端安装rsync
vim ansible.sh
#创建和分发秘钥
/bin/sh /server/scripts/create_key.sh
#优化sshd_config
ansible all -m copy -a "src=/etc/ssh/sshd_config dest=/etc/ssh/sshd_config backup=yes"
ansible all -m shell -a "systemctl restart sshd"
#一键完成安装rsync服务端和客户端
ansible 192.168.119.155 -m script -a "/server/scripts/install_rsync_server.sh"
ansible 192.168.119.155 -m script -a "/server/scripts/install_rsync_client.sh"
大功告成!