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

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 ./ [email protected]:;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

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

原文地址:https://www.cnblogs.com/wanglonglong/p/10777410.html

时间: 2024-10-11 09:16:58

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

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

ansible自动化管理剧本方式一键完成三大服务器基础配置 环境准备:五台服务器:管理机m01:172.16.1.61,两台web服务器172.16.1.7,172.16.1.8,nfs存储服务器172.16.1.31,备份服务器rsync172.16.1.41 要求实现:nfs服务器共享目录/data给两台web服务器 三台服务器可以通过定时任务 备份到备份服务器rsync 实时监控nfs/data目录,并实时备份到备份服务器rsync 开整: 一.配置管理机m01 1.下载基本软件 cd /

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

Linux系统之路——如何在服务器用U盘安装CentOS7.2(一) 说明: 截止目前CentOS 7.x最新版本为CentOS 7.2.1511,下面介绍CentOS 7.2.1511的具体安装配置过程 服务器相关设置如下: 操作系统:CentOS 7.2.1511 IP地址:192.168.21.130 网关:192.168.21.2 DNS:8.8.8.8 8.8.4.4 备注: CentOS 7.x系列只有64位系统,没有32位.生产服务器建议安装CentOS-7-x86_64-Mini

LINUX系统下Java和Scala的环境配置

LINUX系统下Java和Scala的环境配置 最近,笔者在研究一个有关“自然语言处理”的项目,在这个项目中,需要我们用Spark进行编程.而Spark内核是由Scala语言开发的,所以在使用Spark之前,我们必须配置好Scala,而Scala又是运行在JVM上的,所以在配置Scala之前,先要配置好JDK.下面是我个人的一些总结. 我是在Win7系统下开的虚拟机,虚拟机的系统是CentOS7,在创建虚拟机完成后,它会自带一个OpenJDK,我的版本是这样的: 但是因为最开始不了解这个情况,所

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

linux系统下如何搭建本地git服务器,用于存放团队的开发代码,如下步骤: 1.先用一台服务器来安装git,安装好linux以后,在这里选用的是Ubuntu 14.04.然后配置静态IP:172.16.0.110.执行下面命令: >> sudo apt-get install git 2.创建一个git用户: >> sudo adduser git 3.建立/home/git/.ssh/authorized_keys文件,将团队每个人的~/.ssh/id_rsa.pub文件复制到

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

补充资料 本网络中使用LINUX服务器,web服务器是由APACHE搭建,IP地址为192.168.1.5,后台页面为/admin/login.jsp . 如何设置后台页面LOGIN.JSP只允许192.168.1.10访问.而前台页面所有人都可以访问?请回答的详细点,比如在APACHE的哪个部分添加怎样的字段. 谢谢 我记得论坛有帖子说怎么设置访问权限的.搜索下.........  以下供参考,比较忙没有时间整理....... 1.修改http.conf 假设你想控制权限的目录的不同访问权限,

Linux系统下Oracle 11g的安装和配置使用

因项目需求,需要在64位linux系统中安装Oracle 11g,在网上查了很多内容,结合自己的实际经验,终于安装成功,记录下来,分享给有需要的同志们,不谢哈!^_^ 一.修改操作系统核心参数 在Root用户下执行以下步骤: 1)修改用户的SHELL的限制,修改/etc/security/limits.conf文件 输入命令:vi /etc/security/limits.conf,按i键进入编辑模式,将下列内容加入该文件. ? oracle soft nproc 2047 oracle har

redis在windows和Linux系统下的下载、安装、配置

1.下载redis安装包 在redis的官网只有Linux系统下的安装包,微软的GitHub上有提供windows版本的redis安装包 redis中文网:http://www.redis.cn/ 微软redis GitHub网址:https://github.com/MSOpenTech/redis/releases 链接:https://pan.baidu.com/s/1d3fCshRXT0UBYiNejbehMA 提取码:t4l72.Windows安装 将ZIP包解压到安装路径的redis

linux系统中rsync+inotify实现服务器之间文件实时同步

最近需要对服务器上的文件实施动态备份,我又不想每次都手动来进行备份,在网上找了挺多资料,发现使用rsync就可以实现,如果想要实现实时同步,还可以使用rsync+inotify组合,本文就是以组合方式来完成的. 先介绍一下rsync与inotify. 1.rsync 与传统的cp.tar备份方式相比,rsync具有安全性高.备份迅速.支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期的备份文件服务器数据到远端服务器,对本地磁盘定期做数据镜像等.随着应用系统规模的不

Linux系统搭建私有CA证书服务器

一.CA简介 CA是什么?CA是Certificate Authority的简写,从字面意思翻译过来是凭证管理中心,认证授权.它有点类似我们生活中的身份证颁发机构,这里的CA就相当于生活中颁发身份证的机构.不同于生活中的颁发机构,这里的CA是给服务器颁发证书.颁发证书的目的同生活中的办理身份证的目的类似,都是为了证明一件事,生活中的身份证可以证明我们是一个合法的公民,而服务器颁发证书的目的也是证明我们服务是一个合法的服务器,换句话说就是有了证书我们就可以清楚知道我们访问的服务器到底是不是我们真正