网站查询工具,包装设计展开图图片,网络推广公司名称大全,wordpress 获取分类下的所有文章个人博客转至#xff1a; www.zhangshoufu.com 通过ansible批量管理三台服务器#xff0c;使三台服务器实现备份#xff0c;web01、nfs、backup#xff0c;把web和nfs上的重要文件被分到backup上#xff0c;主机ip地址分配如下 CharacterIP地址IP地址主机名Rsync--server1…个人博客转至 www.zhangshoufu.com 通过ansible批量管理三台服务器使三台服务器实现备份web01、nfs、backup把web和nfs上的重要文件被分到backup上主机ip地址分配如下 CharacterIP地址IP地址主机名Rsync--server172.16.1.4110.0.0.41backup-rsync-41NFS-client172.16.1.3110.0.0.31Nfs01-31Web01172.16.1.710.0.0.7web01-7在m01上操作编写ansible清单和剧本目录规划我们把所有的yaml文件都放在/playbook目录下配置文件都放在/paly/conf目录下脚本都放在/playbook/scripts目录下。 [rootm01-61 /]# mkdir /playbook/{conf,scripts}
[rootm01-61 /]# cat /etc/ansible/hosts ---主机清单
[nfs]
172.16.1.31 ansible_ssh_private_key_file/root/.ssh/test_id_rsa[web]
172.16.1.7 ansible_ssh_private_key_file/root/.ssh/test_id_rsa[backup]
172.16.1.41 ansible_ssh_private_key_file/root/.ssh/test_id_rsa[host:children]
nfs
web
backup 构建基础的剧本所有的服务器都应用这个剧本 1基础的额优化关闭firewalld和selinux修改ssh修改dns的文件
2安装构建epel源
3安装nfs和rsyn服务
4创建UID和GID为666的www用户
5创建rsync推送使用的密钥文件
6创建一个共同存放脚本的路径
7创建备份的脚本编写定时任务
[rootm01-61 /]# cd /playbook/
[rootm01-61 playbook]# cat base.yaml
#zhe shi yi ge ji chu
- hosts: alltasks:# - name: stop firewall- name: Install Epel reposget_url: urlhttp://mirrors.aliyun.com/repo/epel-7.repo dest/etc/yum.repos.d/epel.repo
# ssh firewall selinux hosts- name: Dns client filecopy: src./conf/resolv.conf dest/etc/resolv.conf- name: Install service rsync nfs-utilsyum: namersync,nfs-utils stateinstalled- name: create group group: namewww gid666- name: creat useruser: namewww uid666 groupwww create_homeno shell/sbin/nologin- name: rsync passwd filecopy: content1 dest/etc/rsync.pass mode0600- name: creat /server/scriptsfile: path/server/scripts statedirectory recurseyes - name: copy scriptscopy: src./scripts/client_rsync_backup.sh dest/server/scripts/client_rsync_backup.sh- name: crontab sh /server/scripts/client_rsync_backup.shcron: namebackup scripts minute0 hour1 job/usr/bin/bash /server/scripts/client_rsync_backup.sh /dev/null 关闭backup的剧本 1配置邮件服务推送校验客户端推送是否完整并发送邮件
2创建backup和data目录
3生成rsync的配置文件 和密码文件
4当rsync配置文件修改的时候自动重启服务
5每天晚上校验托送过来的备份数据是不是完整
[rootm01-61 playbook]# cat rsync.yaml
- hosts: backuptasks:- name: install mailxyum: namemailx stateinstalled- name: configure rsynccopy: srcconf/rsyncd.conf dest/etc/rsyncd.confnotify: Restart rsync service- name: create dir /datafile: path/data statedirectory ownerwww groupwww - name: create dir /backupfile: path/backup statedirectory ownerwww groupwww- name: create file rsync passwdcopy: contentrsync_backup:1 dest/etc/rsync.password motd0600- name: configure mailcopy: src./conf/mail.rc dest/etc/mail.rc- name: copt scripts checkcopy: src./scripts/check_backup.sh dest/server/scripts/check_backup.sh- name: cron rootcron: namecheck client backup minute0 hour2 job/usr/bin/bash /server/scripts/check_backup.sh /dev/null- name: start rsyncservice: namersyncd statestartedhandlers:- name: Restart rsync serviceservice: namersyncd staterestarted[rootm01-61 playbook]# cat ./conf/rsyncd.conf
uid www
gid www
port 873
fake super yes
max connections 200
timeout 600
ignore errors
read only false
list false
auth users rsync_backup
secrets file /etc/rsync.password
log file /var/log/rsyncd.log
[backup]
comment welcome to backup!
path /backup
[data]
path /data 编写nfs的配置文件 1配置nfs配置文件然后编写一旦配置文件发生改变就重启服务
2配置sersync服务使一更改配置文件服务就杀死上次的进程然后重启服务[rootm01-61 playbook]# cat nfs.yaml
- hosts: nfstasks:- name: copy sersynccopy: src./conf/sersync dest/usr/local recurseyes mode755 notify: statr sersync- name: create /datafile: path/data statedirectory ownerwww groupwww- name: create nfs filecopy: src./conf/exports dest/etc/exportsnotify: restart nfs service- name: start rpcbind rsyncservice: namerpcbind statestarted enabledyes- name: statrt nfs startservice: namenfs-server statestarted enabledyeshandlers:- name: restart nfs serviceservice: namenfs staterestarted- name: statr sersyncshell: ps aux | grep [s]ersync | awk {print \kill -9\$2} | bash /usr/local/sersync/sersync2 -dro /usr/local/sersync/confxml.xml 配置web剧本 [rootm01-61 playbook]# cat web_nfs.yaml
- hosts: webtasks:- name: mount nfsmount: src172.16.1.31:/data path/data fstypenfs optsdefaults statemounted 把所有的剧本合到一起来执行 [rootm01-61 playbook]# cat all.yaml
- import_playbook: /playbook/base.yaml
- import_playbook: /playbook/rsync.yaml
- import_playbook: /playbook/nfs.yaml
- import_playbook: /playbook/web_nfs.yaml 转载于:https://blog.51cto.com/13447608/2280886