使用 ansible 服务, 实现批量管理
第一步, 先分发公钥, 实现 ansible 无密码进行控制
#!/bin/bash
#mk key 2
rm -f /root/.ssh/id*
ssh-keygen -t dsa -f /root/.ssh/id_dsa -P "" -q
#fenfa
for ip in 41 7 31
do
echo ================fs host 172.16.1.$ip======================
sshpass -p123456 ssh-copy-id -i /root/.ssh/id_dsa.pub "-o StrictHostKeyChecking=no root@172.16.1.$ip"
echo ================fs end 172.16.1.$ip=====================
done
第二步, 编写剧本, 实现安装 rsync,nfs, 以及挂载 nfs 共享目录并且实时备份
# 安装相应软件
hosts: yxd
tasks:
name: yum rsync,nfs and rpcbind
yum: name=rsync,nfs-utils,rpcbind state=installed
# 配置 rsync 服务
hosts: 172.16.1.41
tasks:
name: rsync conf
copy: src=/etc/ansible/ansible_playbook/rsyncd.conf dest=/etc/rsyncd.conf
name: mk user
user: name=rsync shell=/sbin/nologin createhome=no
name: mk dir
file: path=/backup mode=0755 owner=rsync group=rsync state=directory
name: passfile
shell: echo rsync_backup:123456 >/etc/rsync.password && chmod 0600 /etc/rsync.password
name: server on
shell: rsync --daemon && echo rsync --daemon >>/etc/rc.local
# 部署 NFS 并且配置密码文件, 实现推数据无密码
hosts: 172.16.1.31
tasks:
name: passfile
shell: echo 123456 >/etc/rsync.password && chmod 0600 /etc/rsync.password
name: rsync
shell: /usr/bin/rsync -az /etc/hosts rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
name: mk nfsdir
file: path=/nfs state=directory owner=nfsnobody group=nfsnobody
name: nfs.conf
copy: src=/etc/ansible/ansible_playbook/nfs.conf dest=/etc/exports backup=yes
name: rpcbind on
service: name=rpcbind state=started enabled=yes
name: nfs on
service: name=nfs state=started enabled=yes
name: sersync backup
copy: src=/tmp/sersync/ dest=/sersync/
name: sersync on
shell: chmod +x /sersync/bin/sersync && /sersync/bin/sersync -dro /sersync/conf/confxml.xml
# 挂载客户端到 nfs 共享目录
hosts: 172.16.1.7 172.16.1.8
tasks:
name: mount nfs
mount: state=mounted fstype=nfs src=172.16.1.31:/nfs path=/mnt
一键化部署 rsync 和 nfs 服务, 挂载 web 服务器到 nfs, 实现共享目录和备份
来源: http://www.bubuko.com/infodetail-2483679.html