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. 15. react UI组件和容器组件的拆分 及 无状态组件

    1.组件的拆分 组件拆分的前提 当所有的逻辑都出现在一个组件内时 组件会变得非常复杂 不便与代码的维护 所以对组件进行拆分 IU组件 进行页面渲染 容器组件  进行逻辑操作 UI组件的拆分 新建一个 ...

  2. bzoj 2306

    %%%%http://blog.csdn.net/popoqqq/article/details/43926365 #include<bits/stdc++.h> #define INF ...

  3. 字符,字符串,int之间互相转换

    字符转换成字符串:String str = String.valueOf(ch); 字符转换成int: int a = ch; 字符串转换成字符:char ch = str.charAt(0); 字符 ...

  4. 2019 年 Google 编程之夏活动报告

    2019 年 Google 编程之夏活动报告 主要介绍了 GSoC 2019 活动的几个课题并讲述了整个活动的组织过程 Google 编程之夏活动不仅仅是一个夏日的实习项目,对于组织和一些社区的成员来 ...

  5. tomcat的8080,8009,8443,8005都是什么端口

    <Server port="8005" shutdown="SHUTDOWN"> 远程停服务端口<Connector port="8 ...

  6. 吴裕雄--天生自然 PHP开发学习:数据类型

    <?php $x = "Hello world!"; echo $x; echo "<br>"; $x = 'Hello world!'; e ...

  7. python复习——字符串

    1.字符串:用双引号括起的内容 2.title()——首字母大写:print(变量名.title()) upper()——全部大写:print(变量名.upper()) lower()——全部小写:p ...

  8. SAP_SD常用事务代码

    1.创建/修改/显示销售订单:VA01/VA02/VA03 2.根据销售订单创建交货单:VL01N 3.修改/显示交货单:VL02N/VL03N 4.交货单发货过账:VL02N 5.发货过账冲销:VL ...

  9. tensorflow中的神经网络笔记

    1.NN----神经网络 2.CNN卷积神经网络 CNN网络一共有5个层级结构: 输入层 卷积层 激活层 池化层 全连接FC层 一.输入层 与传统神经网络/机器学习一样,模型需要输入的进行预处理操作, ...

  10. 编写软件动态加载NT式驱动

    NT式设备驱动程序的动态加载主要是由服务控制管理程序(Service Control Manager,即SCM)系统组件来完成的. Windwos服务可以在系统启动时加载,用户也可以按需在服务控制平台 ...