准备:

五台服务器:一台管理服务器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. 修改了my.ini没有效果,MySql的字符集还是没有变成utf8——mysql中文乱码

    https://www.jianshu.com/p/554b9575c5da Windows下修改MySql 5.6的字符集,根据网上提供的方法.就是修改my.ini配置文件,然后增加几个字段就可以了 ...

  2. [dev] Go的协程切换问题

    子标题:runtime.Gosched() 是干嘛用的? 1. go程序都有一个环境变量,做线程数设置 GOMAXPROCS 2. 当协程数小于等于线程数的时候,程序行为上与多线程没有区别. 3. 当 ...

  3. C#即时释放内存

    using System;using System.Diagnostics;using System.Runtime.InteropServices; [DllImport("kernel3 ...

  4. Pycharm汉化

    简单的汉化方法:    需要把以下链接的文件放到Pycharm安装目录的lib目录下记得重启pycharm即可https://pan.baidu.com/s/1GG4zXZ_0xSB-AlDdu0Tu ...

  5. idea右键没有svn选项

    然后apply,当然也可以只是某些指定的文件夹.project就是当前项目,包括所有的module.

  6. django 缓存信号等

    参考别人的博客:写的挺好 http://www.cnblogs.com/wupeiqi/articles/5246483.html

  7. vi命令撤销及恢复

    u   :插销上一步操作 Ctrl + r :恢复被撤销的上一步操作

  8. python小程序打包

    1.首先先要安装 pip install pywin32 pip install pyinstaller 没有越狱安装不了加个国内镜像地址: pip install pyinstaller -i ht ...

  9. vue国际化

    插件:vue-i18n main.js引入i18n.js:+2行 新建文件(i18n.js),引入VueI18n.locale.语言包 新建语言包,包括index/zh/en(名字随意,引用正确就好) ...

  10. setoolkit 制作钓鱼网页

    由于是在虚拟机下实验,仅做示范 下载地址 git clone https://github.com/trustedsec/social-engineer-toolkit/ 终端输入setoolkit启 ...