准备:

五台服务器:一台管理服务器m01:172.16.1.61、两台应用服务器web01:172.16.1.7、web02:172.16.1.8、一台存储服务器nfs:172.16.1.31、一台备份服务器rsync:172.16.1.41

实现:通过m01管理机,实现nfs服务器共享目录/data给两台web服务器

实现nfs服务器/data目录实时同步到rsync服务器/backup

实现两台web服务器,nfs服务器重要文件可以定时备份到rsync服务器

开始实战:

一、部署管理机m01环境:

1.下载软件

vim /server/scripts/benjibushu.sh

#!/bin/sh

#安装必要软件到本机

yum install oppenssh oppenssl -y

systemctl restart sshd

systemctl enable sshd

yum install epel-release -y

yum install exportfs -y

yum install libselinux-python -y

2.备份ansible配置文件

cp /etc/ansible/hosts{,.ori}

3.编辑主机列表模块

cat >/etc/ansible/hosts<<EOF

#1代表服务端,2代表客户端

[oldboy]

172.16.1.7

172.16.1.8

172.16.1.31

172.16.1.41

[rsync1]

172.16.1.41

[rsync2]

172.16.1.7

172.16.1.8

172.16.1.31

[nfs1]

172.16.1.31

[nfs2]

172.16.1.7

172.16.1.8

[sersync]

172.16.1.31

EOF

4.编辑脚本,生成并分发密钥

vim /server/scripts/fenfa.sh

#/bin/sh

yum install sshpass -y

#创建密钥

ssh-keygen -f ~/.ssh/id_rsa -P '' -q

#for循环,发送公钥给四台服务器

for ip in 7 8 31 41

do

sshpass -p123456 ssh-copy id  -i ~/.ssh/id_rsa.pub "-o StricHostKeyChecking=no" 172.16.1.$ip

done

5.编辑ansible配置文件,取消71行注释 (免密连接,已经发送公钥,此处也可省略)

6.执行/server/scripts/fenfa.sh发送公钥

sh /server/scripts/fenfa.sh

7.测试远程连接

ansible oldboy -m command -a "ifconfig"

8.可以相对优化一下ssh,此处先省略

二、编写nfs共享目录的服务端nfs1.sh

cd /server/scripts

切换到/server/scripts目录,下边全部在这个目录下执行,也就不在写全路径。。。

vim nfs1.sh

#!/bin/sh

yum install nfs-utils rpcbind -y &&\

systemctl start rpcbind.service &&\

systemctl enable rpcbind.service &&\

#先启动rpcbind服务,再启动nfs服务,相信不用注释,读者也明白吧

systemctl start nfs &&\

systemctl enable nfs &&\

#添加共享目录/data,这里不指定创建虚拟用户,使用默认的nfsnobodu用户

cat >/etc/exportfs<<EOF

/data 172.16.1.0/24(rw,sync,all_squash)

EOF

mkdir -p /data &&\

chown -R nfsnobody.nfsnobody /data &&\

exportfs -r

编写nfs客户端脚本

vim nfs2.sh

#!/bin/sh

yum install nfs-utils rpcbind -y &&\

systemctl start rpcbind.service &&\

systemctl enable rpcbind.service &&

systemctl start nfs &&\

systemctl enable nfs &&\

mount -t nfs 172.16.1.31:/data /mnt

#在此没有添加开机自动挂载,需要者把改在命令写在fstab即可。。。

三、编写rsync服务端

vim rsync1.sh

yum install rsync -y &&\

cp /etc/rsyncd.conf{,.ori} &&\

cat >/etc/rsyncd.conf<<EOF

uid = rsync

gid = rsync

use chroot = no

fask super =yes

max connections = 200

timeout = 600

pid file = /var/run/rsyncd.pid

lock file = /var/lock/rsyncd.lock

log file = /var/log/rsyncd.log

ignore errors

read only = false

list = false

hosts allow =172.16.1.0/24

auth users =rsync_backup

secrets file = /etc/rsync.password

[backup]

comment = welcome to oldboy backup!

path = /backup/

EOF

useradd -M -s /usr/bin/nologin rsync &&\

mkdir -p /backup &&\

chown -R rsync.rsync /backup/ &&\

echo "rsync_backup:123456" >/etc/rsync.password &&\

chown 600 /etc/rsync.password

systemctl start rsyncd &&\

systemctl enable rsyncd

编写rsync客户端

vim rsync2.sh

#!/bin/sh

yum install rsync -y

echo "123456" >/etc/rsync.password &&\

chmod 600 /etc/rsync.password &&

systemctl rsetart rsyncd &&\

systemctl enable rsyncd &&\

echo "exportfs RSYNC_PASSWORD=123456" >>/etc/bashrc &&\

exportfs -r

四、编辑sersync实现实时同步

vim sersync.sh

#!/bin/sh

echo "exportfs RSYNC_PASSWORD=123456"  >>/etc/bashrc &&\

source /etc/bashrc &&\

yum install inotify-tools -y &&\

touch monitor,sh &&\

cat >/server/scripts/monitor.sh<<EOF

#!/bin/sh/

/usr/bin/inotifywait -mrq --format '%w%f' -e close_write,delete /data|while read line

do

cd /data && rsync -az --delete ./ rsync-backup@172.16.1.41:;backup

done

EOF

五、我是个粗人,现在把所有推送执行命令脚本放在一个脚本里

vim one.ok.sh

#!/bin/sh

ansible rsync1 -m script -a "/server/scripts/rsync1.sh"

ansible rsync2 -m script -a "/server/scripts/rsync2.sh"

ansible nfs1 -m script -a "/server/scripts/nfs1.sh"

ansible nfs2 -m script -a "/servet/scripts/nfs2.sh"

ansible sersync -m "/server/scripts/sersync.sh"

sh one.ok.sh

执行这个脚本,即可一键完成部署四台服务器基础配置,前提是前边测试免密远程管理成功,纯手撸代码,没用脚,倘若哪里执行失败,请仔细核对,若果发现我的脚本有命令出错的地方,希望可以得到读者的反馈,第一时间改正,以免影响更多的读者。

linux系统ansible一键完成三大服务器基本配置的更多相关文章

  1. linux系统ansible一键完成三大服务器基础配置(剧本)

    ansible自动化管理剧本方式一键完成三大服务器基础配置 环境准备:五台服务器:管理机m01:172.16.1.61,两台web服务器172.16.1.7,172.16.1.8,nfs存储服务器17 ...

  2. 在本机使用虚拟机安装一个linux系统,并搭建ftp服务器

    一.Linux基础使用:linux服务器环境搭建(FTP服务器), 在本机使用虚拟机安装一个linux系统,并搭建ftp服务器,要求能使用ftp服务将本机文件到保存linux虚拟机上 资料: VMwa ...

  3. Linux系统之路——如何在服务器用U盘安装CentOS7.2(二)

    Linux系统之路——如何在服务器用U盘安装CentOS7.2(一) 说明: 截止目前CentOS 7.x最新版本为CentOS 7.2.1511,下面介绍CentOS 7.2.1511的具体安装配置 ...

  4. Linux系统之路——如何在服务器用U盘安装CentOS7.2(一)

    终于将CentOS7装上服务器(thinkserver250,不得不说联想的太烂了)了,过程无比艰辛,因为我发现网上大家提到的所有U盘安装CentOS7时碰到的问题几乎都被我碰到了,像什么: 1.刻录 ...

  5. linux系统下本地搭建git服务器

    linux系统下如何搭建本地git服务器,用于存放团队的开发代码,如下步骤: 1.先用一台服务器来安装git,安装好linux以后,在这里选用的是Ubuntu 14.04.然后配置静态IP:172.1 ...

  6. 在Linux系统中如何设置APACHE服务器里的后台页面只允许某个IP地址访问

    补充资料 本网络中使用LINUX服务器,web服务器是由APACHE搭建,IP地址为192.168.1.5,后台页面为/admin/login.jsp . 如何设置后台页面LOGIN.JSP只允许19 ...

  7. Linux系统上安装软件(ftp服务器)

    一:安装ftp服务器 在安装linux系统的时候,自定义软件包安装时,我已经勾选了ftp服务器,所以已经 安装过了,如果没有勾选,需要额外下载ftp的安装包,进行安装. ftp服务器搭建过程中遇到的问 ...

  8. Linux系统下搭建FTP/SFTP服务器

    传输文件经常使用ftp和sftp服务器.Windows下有多种可视化工具,使用快捷.Linux经常需要自行搭建这两种服务器,当然搭建熟练的话,会更加快捷. 1.检查Linux系统是否安装了vsftp和 ...

  9. Linux系统学习 十一、DHCP服务器—相关文件、配置文件、服务器配置

    2.DHCP服务器相关文件 安装SHCP服务器 yum install dhcp 对应的端口 端口号: ipv4 udp67.udp68(不推荐改端口) ipv6 udp546.udp547(暂时还没 ...

随机推荐

  1. 报文分析2、IP头的结构

    IP头的结构 版本(4位) 头长度(4位) 服务类型(8位) 封包总长度(16位) 封包标识(16位) 标志(3位) 片断偏移地址(13位) 存活时间(8位) 协议(8位) 校验和(16位) 来源IP ...

  2. 20175303 Mycp实现Linux下cp xxx1 xxx2的功能

    20175303 Mycp实现Linux下cp xxx1 xxx2的功能 一.题目要求 编写MyCP2.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP2支持两个参数: ja ...

  3. javascript 表达式

    //    for(表达式1;表达式2;表达式3){//        循环体语句;//    }//    先执行表达式1,在执行2表达式,//        如果2表达式结果为false,退出循环 ...

  4. PySe-007-解决“Chrome正在受到自动软件的控制”

    python使用selenium启动chrome的代码如下所示: #!/usr/local/bin/python # -*- coding: utf-8 -*- from selenium impor ...

  5. 解决Warning: unlink(/storage/cache/cache.catalog.language.1556158719): No such file or directory in /system/library/cache/file.php on line 68问题

    ytkah在调试opencart项目时提示Warning: unlink(/storage/cache/cache.catalog.language.1556158719): No such file ...

  6. 20175211 2018-2019-2 《Java程序设计》第五周学习总结

    目录 教材学习内容总结 第六章 接口与实现 教材学习中的问题和解决过程 代码调试中的问题和解决过程 代码托管 上周考试错题总结 学习进度条 参考资料 教材学习内容总结 第六章 接口与实现 6.1 接口 ...

  7. python selenium处理windows窗口

    selenium本身处理不了windows窗口,需要借助,PyAutoit包 与autoit工具 这里以文件上传窗口为例: 1.安装python pyauto包 pip install PyAutoi ...

  8. zipCrack-v1.1 工具介绍

    一个暴力破解zip的工具 用python开发 与kali 自带的fcrackzip类似 git地址:https://github.com/mapyJJJ/python3-for-linux-h-.gi ...

  9. 用mongols轻松打造websocket应用

    用websocket做聊天系统是非常合适的. mongols是一个运行于linux系统之上的开源c++库,可轻松开启一个websocket服务器. 首先,build一个websocket服务器. #i ...

  10. python & mysql 操作(compare_sum_fee)

    [1]源码 工作中涉及的python工具源码实现 费用比较工具源码: #!/usr/bin/python3 #coding = utf-8 import time, sqlite3, datetime ...