linux系统ansible一键完成三大服务器基本配置
准备:
五台服务器:一台管理服务器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一键完成三大服务器基本配置的更多相关文章
- linux系统ansible一键完成三大服务器基础配置(剧本)
ansible自动化管理剧本方式一键完成三大服务器基础配置 环境准备:五台服务器:管理机m01:172.16.1.61,两台web服务器172.16.1.7,172.16.1.8,nfs存储服务器17 ...
- 在本机使用虚拟机安装一个linux系统,并搭建ftp服务器
一.Linux基础使用:linux服务器环境搭建(FTP服务器), 在本机使用虚拟机安装一个linux系统,并搭建ftp服务器,要求能使用ftp服务将本机文件到保存linux虚拟机上 资料: VMwa ...
- Linux系统之路——如何在服务器用U盘安装CentOS7.2(二)
Linux系统之路——如何在服务器用U盘安装CentOS7.2(一) 说明: 截止目前CentOS 7.x最新版本为CentOS 7.2.1511,下面介绍CentOS 7.2.1511的具体安装配置 ...
- Linux系统之路——如何在服务器用U盘安装CentOS7.2(一)
终于将CentOS7装上服务器(thinkserver250,不得不说联想的太烂了)了,过程无比艰辛,因为我发现网上大家提到的所有U盘安装CentOS7时碰到的问题几乎都被我碰到了,像什么: 1.刻录 ...
- linux系统下本地搭建git服务器
linux系统下如何搭建本地git服务器,用于存放团队的开发代码,如下步骤: 1.先用一台服务器来安装git,安装好linux以后,在这里选用的是Ubuntu 14.04.然后配置静态IP:172.1 ...
- 在Linux系统中如何设置APACHE服务器里的后台页面只允许某个IP地址访问
补充资料 本网络中使用LINUX服务器,web服务器是由APACHE搭建,IP地址为192.168.1.5,后台页面为/admin/login.jsp . 如何设置后台页面LOGIN.JSP只允许19 ...
- Linux系统上安装软件(ftp服务器)
一:安装ftp服务器 在安装linux系统的时候,自定义软件包安装时,我已经勾选了ftp服务器,所以已经 安装过了,如果没有勾选,需要额外下载ftp的安装包,进行安装. ftp服务器搭建过程中遇到的问 ...
- Linux系统下搭建FTP/SFTP服务器
传输文件经常使用ftp和sftp服务器.Windows下有多种可视化工具,使用快捷.Linux经常需要自行搭建这两种服务器,当然搭建熟练的话,会更加快捷. 1.检查Linux系统是否安装了vsftp和 ...
- Linux系统学习 十一、DHCP服务器—相关文件、配置文件、服务器配置
2.DHCP服务器相关文件 安装SHCP服务器 yum install dhcp 对应的端口 端口号: ipv4 udp67.udp68(不推荐改端口) ipv6 udp546.udp547(暂时还没 ...
随机推荐
- js表单反显
/* * 表单自动回显js * 依赖JQURY * 使用参考:$("#form1").form("load",{"id":"112 ...
- centos7 openfiles问题
集群环境有几台新增的机器,尝试修改open files的时候,按照平常的操作就是修改/etc/security/limits.conf和/etc/security/limits.d/90-nproc. ...
- HMAC-SHA256 签名方法各个语音的实现方式之前端JavaScriptes6
sha256和16进制输出,网上很多种后端的验证方法,几乎没有前端的,所以自己写了个,希望给类似需求的人一个帮助,适用场景 腾讯云接口鉴权 v3签名 npm install sha256npm ins ...
- 2017(5)软件架构设计,web系统的架构设计,数据库系统,分布式数据库
试题五(共 25 分) 阅读以下关于 Web 系统架构设计的叙述,在答题纸上回答问题1 至问题 3. [说明] 某公司开发的 B2C 商务平台因业务扩展,导致系统访问量不断增大,现有系统访问速度缓慢, ...
- rpc轻量级框架实例
- ADB——命令大全
基本语法 基本语法 adb [-d|-e|-s <serialNumber>] <command> # serialNumber表示设备序列号,也可以是ip地址 # 如果只有一 ...
- Django---框架简介和工程搭建
Django框架 一.Django介绍 二.Django工程搭建 回到顶部 一.Django介绍 1.简介 Django的主要目的是简便.快速的开发数据库驱动的网站.它强调代码复用,多个组件可以 ...
- 关于SSD Trim功能
TRIM指令是微软联合各大SSD厂商所开发的一项技术,属于ATA8-ACS规范的技术指令. TRIM是告诉NAND闪存固态存储设备要擦除哪些数据的SATA接口指令.当相关页面的数据可以被覆盖时,操 ...
- 深浅copy
浅拷贝 只copy了一层 可哈希的变量改变则二者不同 不可哈希变量改变二者都改变深拷贝 全部都copy了 不论什么值改变 原值都改变呢 变量赋值.浅拷贝.深拷贝 1,创建变量 1.1不可变对象 ...
- PyAutoGUI使用
PyAutoGUI是一个纯Python的GUI自动化工具,其目的是可以用程序自动控制鼠标和键盘操作,利用它可以实现自动化任务,再也不用担心有重复枯燥的任务了. 安装: pip install pyau ...