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 /server/scripts

vim benjipeizhi.sh

#!/bin/sh

yum install oppenssh oppenssl -y &&\

systemctl restart sshd &&\

systemctl enable sshd &&\

yum install opel-releare -y &&\

yum install ansible -y &&\

yum install libselinux-python -y

3.编辑主机列表,方便批量管理(1代表服务端,2代表客户端)

vim /etc/ansible/hosts

[oldboy]

172.16.1.7

172.16.1.8

172.16.1.31

172.16.1.41

[rsync]

172.16.1.41

[rsync2]

172.16.1.7

172.16.1.8

172.16.1.41

[nfs1]

172.16.1.31

[nfs2]

172.16.1.7

172.16.1.8

[sersync]

172.16.1.31

4.创建并分发公钥,实现免密连接

vim fenfa.sh

#!/bin/sh

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

for ip in 7 8 31 41

do

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

done

5.下载sersync实时监控软件(本人是从桌面直接拉虚拟机的)

解压然后编辑配置文件(适当修改部分即可)这一个是通过copy模块远程复制过去的,在本机编辑好

vim /server/tools/appliction/sersync/conf

<?xml version="1.0" encoding="ISO-8859-1"?>
<head version="2.5">
<host hostip="localhost" port="8008"></host>
<debug start="false"/>
<fileSystem xfs="false"/>
<filter start="false">
<exclude expression="(.*)\.svn"></exclude>
<exclude expression="(.*)\.gz"></exclude>
<exclude expression="^info/*"></exclude>
<exclude expression="^static/*"></exclude>
</filter>
<inotify>
<delete start="true"/>
<createFolder start="true"/>
<createFile start="false"/>
<closeWrite start="true"/>
<moveFrom start="true"/>
<moveTo start="true"/>
<attrib start="false"/>
<modify start="false"/>
</inotify>

<sersync>
<localpath watch="/data">
<remote ip="172.16.1.41" name="backup"/>
<remote ip="172.16.1.41" name="oldboy"/>
<!--<remote ip="192.168.8.39" name="tongbu"/>-->
<!--<remote ip="192.168.8.40" name="tongbu"/>-->
</localpath>

rsync服务端配置文件也是通过copy模块远程推送,所以现在本机编辑好

vim /etc/rsyncd.conf

#!/bin/sh

uid = rsync

gid =  rsync

use chroot = no

fake super = yes

max connections =200

timeout = 600

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsync.lock

log file = /var/log/rsyncd.log

ignore errors

read only = false

list = false

list = false

hosts allow = 172.16.1.0/24

auth users = rsync_backup

secrets file = /etc/rsync.password

[backup]

comment = welcome to oldboyedu backup!

path = /backup/

6.连接测试

sh fenfa.sh  执行创建并分发公钥的脚本

ansible oldboy -m command -a "ifconfig"  显示四台服务器IP说明远程连接成功

重点来啦,写剧本

在/etc/ansible下创建yaml目录,剧本名为one.yml

mkdir -p /etc/ansible/yaml

vim one.yml

- hosts: nfs1

tasks:

- name: 安装nfs

yum: name=nfs-utils state=installed

- name: 安装rpc

yum: name=rpcbind state=installed

- name: 编辑nfs共享目录为/data

shell: echo "/data 172.16.1.0/24(rw,anync,all_squash)" >/etc/exports

- name: 创建目录data

file: name=/data state=dircetory mode=0755 owner=nfsnobody group=nfsnobody

- name: 写入密码

shell: echo "export RSYNC_PASSWORD=123456" >>/etc/bashrc

shell: source /etc/bashrc

shell: echo "123456" >/etc/rsync.password

- name: 启动rpc并开机自启动

systemd: name=rpcbind.service enabled=yes state=started

- name: 启动nfs并开机自启动

systemctl: name=nfs enbaled=yue state=started

- hosts: nfs2

tasks

- name: 安装nfs和rpc

shell: yum install nfs-utils -y

shell: yum install rpcbind -y

- name: 启动prc并开机自启动

systemd: name=rpcbind.service enabled=yes state=started

-name: 启动nfs

systemd: name=nfs enabled=yes start=started

- name: 写入挂载目录到fstab

mount: src='172.16.1.31:/data' path=/mnt fstype=nfs opts=rw state=present

- name: 生效fstab

shell: mount -a

- name: 写入密码

shell: echo "export RSYNC_PASSWORD=123456" >>/etc/bashrc

shell:source /etc/bashrc

shell: echo "123456" >/etc/rsync.password

- hosts:rsync1

tasks:

- name: 安装rsync

yum: name=rsync state=installed

- name: 把本地配置好的rsync服务端配置文件拷贝过去

copy: src=/etc/rsyncd.conf dest=/etc/rsyncd.conf mode=0600 backup=yes

- name: 写入密码

shell: echo "rsync_backup:123456" >/etc/rsync.password

- name: 设置密码权限

file: path=/etc/rsync.password mode=0600

- name: 创建用户

user: name=rsync

- name: 创建backup备份目录

file: name=/backup state=directory mode=0755 recurse=yes owner=rsync group=rsync

- name: 启动rsync服务

systemd: name=rsync enabled=yes state=started

- hosts: rsync2

tasks:

- name: 安装rsync

yum: name=rsync state=installed

- name: 密码写入

shell: echo "export RSYNC_PASSWORD=123456" >>/etc/bashrc

shell: source /etc/bashrc

shell: echo "123456" >/etc/rsync.password

- name: 设置密码权限

filse: name=/etc/rsync.password mode=0600

- name: 启动rsync

systemd: name=rsyncd enabled=yes state=started

- hosts: sersync

tasks:

- name:  下载监控机制

yum: name=inotify-tools state=installed

- name: 复制本地编辑好的配置文件

copy: src=/server/tools dest=/server/tools

copy: src=/server/tools/applicantion dest=/ mode=755

- name: 启动监控

shell: /application/sersync/bin/sersync -d -n 10 -o /application/sersync/conf/confxml.xml

测试执行:ansible-playbook -C one.yml

正式执行:ansible-playbook one.yml

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

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

    准备: 五台服务器:一台管理服务器m01:172.16.1.61.两台应用服务器web01:172.16.1.7.web02:172.16.1.8.一台存储服务器nfs:172.16.1.31.一台备 ...

  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系统编程(12)——shell基础

    Shell的作用是解释执行用户的命令,用户输入一条命令,Shell就解释执行一条,这种方式称为交互式(Interactive),Shell还有一种执行命令的方式称为批处理(Batch),用户事先写一个 ...

随机推荐

  1. 用jieba库统计文本词频及云词图的生成

    一.安装jieba库 :\>pip install jieba #或者 pip3 install jieba 二.jieba库解析 jieba库主要提供提供分词功能,可以辅助自定义分词词典. j ...

  2. Windows命令行设置dns

    管理员运行cmd 1.dns配置成192.168.1.200 netsh interface ip set dns name="以太网" source=static addr=19 ...

  3. scrapy学习笔记(1)

    初探scrapy,发现很多入门教程对应的网址都失效或者改变布局了,走了很多弯路.于是自己摸索做一个笔记. 环境是win10 python3.6(anaconda). 安装 pip install sc ...

  4. FindVisualChild

    public static List<T> FindVisualChild<T>(DependencyObject obj) where T : DependencyObjec ...

  5. python continue的应用

    count = 1sum = 0while count < 100: if count == 88: count += 1 continue if count % 2 == 0: sum = s ...

  6. PHP多线程 curl_multi_init 的使用

    php中可以通过CURL处理HTTP请求,其中curl_init()是单线程模式,如果需要对事务处理走多线程模式,那么就需要用到curl_multi_init()函数. 本案例用来测试大并发的情况下 ...

  7. openpyxl.utils.exceptions.IllegalCharacterError

    如果是手动调用 xlwt 这种第三方库除了错可能没法找错误,但是从错误中我们看到错误是由 openpyxl 抛出的,我们试着从 openpyxl 中找解决方案 出错处的代码 value = value ...

  8. Aliyun OSS Nginx proxy module(阿里云OSS Nginx 签名代理模块)

    1.此文章主要介绍内容 本文主要介绍如何利用Nginx lua 实现将阿里云OSS存储空间做到同本地磁盘一样使用.核心是利用Nginx lua 对OSS请求进行签名并利用内部跳转将所有访问本地Ngin ...

  9. 自动化运维工具——ansile详解

    自动化运维工具——ansible详解(一) 目录 ansible 简介 ansible 是什么? ansible 特点 ansible 架构图 ansible 任务执行 ansible 任务执行模式 ...

  10. Debian install Python3.7

    Download the package. Then... tar -xvzf Python-3.7.0.tgz 进入目录: cd Python-3.7.0/ 添加配置: ./configure -- ...