rsync nfs sersync httpd
环境:

角色            外网IP(NAT)     内网IP(LAN)       主机名
Rsync服务端 eth0:10.0.1.51 eth1:172.16.1.51 backup
NFS&Sers服务端 eth0:10.0.1.41 eth1:172.16.1.41 nfs
JUMP SERVER eth0:10.0.1.71 eth1:172.16.1.71 m01
Rsy&NFS客户端 eth0:10.0.1.7 eth1:172.16.1.7 web01
Rsy&NFS客户端 eth0:10.0.1.8 eth1:172.16.1.8 web02
cat /etc/ansible/hosts
[backup]
172.16.1.51
[nfs]
172.16.1.41
[web]
172.16.1.7
172.16.1.8
[all:children]
backup
nfs
web

1.基础环境部署

)firewalld selinux
)ssh密钥生成以及公钥推送
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa -C root
ssh-copy-id -i ~/.ssh/id_rsa root@172.16.1.7
ssh-copy-id -i ~/.ssh/id_rsa root@172.16.1.8
ssh-copy-id -i ~/.ssh/id_rsa root@172.16.1.41
ssh-copy-id -i ~/.ssh/id_rsa root@172.16.1.51
)epel源部署
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache
)安装软件包rsync,nfs-utils
ansible all -m yum -a "name=rsync,nfs-utils state=installed"
ansible all -m service -a "name=rpcbind state=started enabled=yes"
ansible all -m service -a "name=nfs state=started enabled=yes"
)创建用户,组
ansible all -m group -a "name=www gid=666"
ansible all -m user -a "name=www uid=666 group=666 create_home=no shell=/sbin/nologin"
)创建目录,并修改所属和权限
ansible all -m file -a "path=/data owner=www group=www state=directory"
ansible all -m file -a "path=/backup owner=www group=www state=directory"
ansible all -m file -a "path=/server/scripts state=directory"
)创建rsync客户端密码文件
ansible all -m copy -a "content=1 dest=/etc/rsync.pass mode=600"
ansible backup -m copy -a "content='rsync_backup:1' dest=/etc/rsync.passwd mode=600"
)推送脚本
mkdir -p /server/scripts
vim /server/scripts/rsync_backup.sh
vim /server/scripts/rsync_check.sh
ansible all -m copy -a "src=/server/scripts/rsync_backup.sh dest=/server/scripts/rsync_backup.sh"
ansible backup -m copy -a "src=/server/scripts/rsync_check.sh dest=/server/scripts/rsync_check.sh"
)计划任务
ansible all -m cron -a "name='Rsync backup' minute=0 hour=1 job='/bin/sh /server/scripts/rsync_backup.sh &> /dev/null'"
ansible backup -m cron -a "name='Rsync check' minute=0 hour=5 job='/bin/sh /server/scripts/rsync_check.sh &> /dev/null'"

2.rsync服务端

)安装
在基础配置已实现
)配置
mkdir -p /server/conf
vim /server/conf/rsyncd.conf
ansible backup -m copy -a "src=/server/conf/rsyncd.conf dest=/etc/rsyncd.conf"
)启动
ansible all -m service -a "name=rsyncd state=started enabled=yes"
ansible backup -m yum -a "name=mailx state=installed"
//验证
ansible all -m script -a "/server/scripts/rsync_backup.sh"
ansible backup -m script -a "/server/scripts/rsync_check.sh"

3.nfs服务端

)安装
)配置
方法1:建议使用
echo '/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)' > /server/conf/exports
ansible nfs -m copy -a 'src=/server/conf/exports dest=/etc/'
方法2:
ansible nfs -m copy -a 'content="/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)" dest=/etc/exports'
)启动
在基础环境已经启动过了,这里重载下配置信息
ansible nfs -m shell -a "exportfs -arv"

web服务器

)安装
ansible web -m yum -a "name=httpd state=installed"
)配置
)启动
ansible web -m service -a "name=httpd state=started"
)挂载NFS共享存储
ansible web -m mount -a "src=172.16.1.41:/data path=/var/www/html state=mounted fstype=nfs"

4.serysnc

)安装
#sersync需要依赖inotify和rsync,所以需要安装对应软件
ansible nfs -m yum -a "name=inotify-tools state=installed"
#安装sersync
ssh root@172.16.1.41
mkdir /server/tools -p
cd /server/tools/
wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/sersync/sersync2.5.4_64bit_binary_stable_final.tar.gz
tar xf sersync2..4_64bit_binary_stable_final.tar.gz
mv GNU-Linux-x86/ /usr/local/sersync
cd /usr/local/sersync/
)配置
vim confxml.xml
...
<fileSystem xfs="true"/> #监控对象 false改成true
<inotify> #监控信息
<delete start="true"/>
<createFolder start="true"/>
<createFile start="true"/>
<closeWrite start="true"/>
<moveFrom start="true"/>
<moveTo start="true"/>
<attrib start="true"/>
<modify start="true"/>
<localpath watch="/data">
<remote ip="172.16.1.51" name="data"/> #发送给rsync服务端的data模块
<rsync>
<commonParams params="-az"/> #命令选项
<auth start="true" users="rsync_backup" passwordfile="/etc/rsync.pass"/> #rsync的认证信息
...
)启动
ln -s /usr/local/sersync/sersync2 /usr/bin/
sersync2 -dro /usr/local/sersync/confxml.xml

Ansible部署rsync、nfs及sersync的更多相关文章

  1. rsync+nfs+sersync实战案例

    回顾: 1.rsync 统一备份各个服务器的配置文件或重要文件 系统配置文件 日志文件 系统日志文件 messages.secure.cron 服务日志文件 access_log.access.log ...

  2. CentOS7.5 -- Ansible部署与应用

    第1章 Ansible概述 Ansible是一个配置管理系统configuration management system python 语言是运维人员必须会的语言 ansible 是一个基于pyth ...

  3. rsync nfs web01总结

    目录 rsync nfs web01总结 要求 部署rsync服务端(172.16.1.41) 部署rsync客户端(172.16.1.31.172.16.1.7) 部署web代码 NFS服务端部署 ...

  4. rsync nfs 实时同步,结合实战

    目录 rsync nfs 实时同步,实战 一.部署rsync服务端(backup) 二.部署rsync客户端(nfs,web01) 三.部署web代码(web01) 四.NFS服务端部署(nfs) 五 ...

  5. SSH与ansible 部署方法与核心模块简介

    SSH与ansible 部署方法 部署环境 管理服务器 172.16.1.61 NFS服务器 172.16.1.31 备份服务器 172.16.1.41 1检查SSH服务是否运行并开启服务 netst ...

  6. 部署LAMP+NFS实现双Web服务器负载均衡

    一.需求分析 1.前端需支持更大的访问量,单台Web服务器已无法满足需求了,则需扩容Web服务器: 2.虽然动态内容可交由后端的PHP服务器执行,但静态页面还需要Web服务器自己解析,那是否意味着多台 ...

  7. 001.Ansible部署RHCS存储集群

    一 前期准备 1.1 前置条件 至少有三个不同的主机运行monitor (MON)节点: 至少三个直接存储(非外部SAN硬件)的OSD节点主: 至少两个不同的manager (MGR)节点: 如果使用 ...

  8. 使用Ansible部署etcd 3.2高可用集群

    之前写过一篇手动搭建etcd 3.1集群的文章<etcd 3.1 高可用集群搭建>,最近要初始化一套新的环境,考虑用ansible自动化部署整套环境, 先从部署etcd 3.2集群开始. ...

  9. ansible部署,规划

    部署管理服务器 第一步:先检查有没有ssh服务 [root@iZm5eeyc1al5vzh8bo57zyZ ~]# rpm -qf /etc/init.d/sshd openssh-server-5. ...

随机推荐

  1. svn报错:“Previous operation has not finished; run 'cleanup' if it was interrupted“

    今天在eclipse上使用SVN:team - 显示资源历史记录 的时候报错. 方法是在本地磁盘项目目录上右键TortoiseSVN - Clean up 我的弹出的界面和下面一样,请勾选Break ...

  2. 利用kindlegen实现txt格式小说转换为mobi格式小说(C++实现)

    一直以来喜欢在kindle上看小说,kindle不伤眼,也可以帮助控制玩手机的时间.但在kindle上看txt格式的网络小说就很头疼了,这类小说在kindle上是没有目录的,而且篇幅巨长.所以一直以来 ...

  3. idea自定义模版

    点小灯 编辑live模版设置 模版全称 private static final Logger logger = LoggerFactory.getLogger($classname$.class); ...

  4. UML-持久框架-目标&关键思想

    1.目标 1).使用模板方法.状态模式.命令模式来设计部分框架 2).介绍对象-关系(O-R)映射中的一些问题 3).使用虚代理实现的滞后具体化 2.关键思想 1).映射(Mapping) 类--表 ...

  5. POJ 2186:Popular Cows Tarjan模板题

    Popular Cows Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 25945   Accepted: 10612 De ...

  6. VC6.0 The value of ESP was not properly saved across a function call 错误解决方法

    调用DLL函数,出现错误 Run-Time Check Failure #0 - The value of ESP was not properly saved across a function c ...

  7. Spring 中将service 注入到普通的工具类中

    记录一下,防止忘记. 要求每次生成一个和数据库不重复的组队码,于是就想在工具类中加入service注入 方法1(红框是注意的地方)

  8. no.9亿级用户下的新浪微博平台架构读后感

    微博平台的第三代技术体系,使用正交分解法建立模型:在水平方向,采用典型的三级分层模型,即接口层.服务层与资源层:在垂直方向,进一步细分为业务架构.技术架构.监控平台与服务治理平台. 水平分层 (1)接 ...

  9. pycharm实用技巧

    https://mp.weixin.qq.com/s/-48vU9KtnInFaYJ6rQ9n-w

  10. jboss的JVMroute记录

    jboss5的nodename是在 /usr/local/jboss-5.1.0.GA/server/dms/deploy/jbossweb.sar/server.xml   这里的  jvmrout ...