实验背景:

Z公司为了提升工作效率,消除重复任务,更少的错误风险,要求尽量减少对现网服务器的改动,因此在目前主流的运维自动化工具 中选择Ansible来实现IT运维管理自动化。

 

实验环境:

ansible playbook 测试 ansible调试_配置文件

                                                                                                          

实验内容一

  1. 确认实验环境:

了解服务器和主机用的操作系统,以及各个设备的ip地址

设备

操作系统版本

Ip

与其他主机是否能ping’通

服务端

 

 

 

被管理端

 

 

 

 

 

  1. 安装ansible(在控制端用yum方式安装Ansible。)

CentOS (Yum)

 

第一步:新增 epel-release 第三方套件来源。

ansible playbook 测试 ansible调试_配置文件_02

第二步安装 Ansible。

ansible playbook 测试 ansible调试_运维_03

 

 

3. 安装python及ssh无密登录

第一步:在所有节点上安装yum、ssh、python:

控制节点:

ansible playbook 测试 ansible调试_配置文件_04

被控制节点:

ansible playbook 测试 ansible调试_服务器_05

 

第二步:在控制节点上执行:ssh-keygen:

 

ansible playbook 测试 ansible调试_运维_06

 

第三步:在控制节点上执行:

ansible playbook 测试 ansible调试_连通性_07

4. 修改配置文件ansible.cfg并配置被控制主机。

第一步:修改配置文件ansible.cfg

首先在管理节点上输入:

ansible playbook 测试 ansible调试_运维_08

 

输入之后,会看见这样一个界面:

ansible playbook 测试 ansible调试_ansible playbook 测试_09

 

接着点击键盘上的i键进入insert模式,将下列图中标黄的文件编辑进去

ansible playbook 测试 ansible调试_配置文件_10

 

编辑完成之后保存并退出。

 

第二步:配置被控制主机

首先在管理节点上输入:

ansible playbook 测试 ansible调试_连通性_11

输入之后会看见默认的ansible的host文件,如下图所示

ansible playbook 测试 ansible调试_配置文件_12

同样的还是输入 i,进入insert模式编辑以下文件

 

ansible playbook 测试 ansible调试_连通性_13

因为只用了一台被控制节点,所以只输入一个被控制节点的ip地址即可

保存配置文件并退出。

 

结果验证:

 

通过输入

ansible playbook 测试 ansible调试_运维_14

来测试控制节点和被控制节点的连通性。

如图所示,如果出现正确的相应信息,success,则证明上述操作无误

ansible playbook 测试 ansible调试_服务器_15

 

 

 

实验内容2 :通过ad-hoc命令批量管理服务器

任务一:测试各个远程主机组webservers连通性。

在进行完实验内容之后,通过输入命令来测试控制主机和被控制主机组之间的连通性,如果出现以下success内容,则证明实验环境良好,可继续下列实验。

ansible playbook 测试 ansible调试_运维_16

 

任务二:查看远程主机组webservers的网卡信息。

实验解析:首先需要在被控制主机上查看被控制主机的网卡名称是什么,有的机器网卡名称是eth0,有的则不是,如下图所示,被控制主机的网卡名为eno16777736

ansible playbook 测试 ansible调试_连通性_17

那么当我们在控制主机上查看被控制主机的网卡信息时,一定要注意网卡的名称是否对应,

ansible playbook 测试 ansible调试_配置文件_18

                   图1

我们在控制主机上输入命令之后,就可以在控制主机上查看关于被控制主机的网卡信息,如图1所示。

 

任务三:执行远程主机脚本test.sh。

实验解析:在控制主机上远程控制被控制主机执行主机脚本,首先在被控制主机上有脚本,所以需要现在被控制主机上去创建脚本test.sh,如图2,图3所示,

ansible playbook 测试 ansible调试_ansible playbook 测试_19

                   图2

创建脚本:

ansible playbook 测试 ansible调试_连通性_20

                       图3

 

注意:/home/test.sh 脚本需要在远程主机上存在且有执行权限,如图4所示,修改权限。

ansible playbook 测试 ansible调试_ansible playbook 测试_21

                    图4

在控制主机上通过输入命令来检查结果,如图5所示。

ansible playbook 测试 ansible调试_运维_22

                    图5

 

 

任务四:主控端向目标主机拷贝test1.sh文件到/tmp/目录下,并设置该文件所有者和所属组为root,文件权限为rwxr-xr-x。

实验解析:同样的,主控端向目标主机拷贝test1.sh文件,首先在主控端是有这个文件的,所以需要在主控端去创建这个文件test1.sh。在此不做介绍了,上面已经解析过了。

如图6所示

ansible playbook 测试 ansible调试_服务器_23

可以到目标主机上看一下是否有test1.sh的文件产生,如图7所示,在目标主机上进入tmp目录中,查看目录下所有文件,可以发现test1.sh文件被成功建成。

ansible playbook 测试 ansible调试_服务器_24

                  图7

 

任务五:查看远程主机组webservers /etc/sysctl.conf文件uid, gid信息,如图8所示

ansible playbook 测试 ansible调试_运维_25

                   图8

 

 

任务六:安装httpd到所有远程主机组webservers上。

如图9所示

ansible playbook 测试 ansible调试_ansible playbook 测试_26

                  图9

 

任务七:开启远程主机组webservers http服务,并查看服务状态,首先启动服务,如图10所示

 

ansible playbook 测试 ansible调试_连通性_27

                 图10

接着查看服务状态如图11所示

ansible playbook 测试 ansible调试_连通性_28

                     图11

 

停止服务如图12所示

ansible playbook 测试 ansible调试_配置文件_29

                         图12

 

 

任务八:在远端服务器组webservers上创建/home/f1文件,并删除/home/f1。

 

首先创建/home/f1文件,如图13所示

ansible playbook 测试 ansible调试_服务器_30

                   图13

在被控制主机上查看是否有/home/f1文件生成,在被控制主机上先进入home目录在查看目录文件有哪些,如图14所示

ansible playbook 测试 ansible调试_ansible playbook 测试_31

             图14

 

接着删除/home/f1文件,如图15所示

ansible playbook 测试 ansible调试_配置文件_32

图15

结果检验:

在被控制主机上查看/home/f1是否还存在,如图16所示

ansible playbook 测试 ansible调试_配置文件_33

                      图16

 

 

实验内容三:playbook自动部署Nginx

任务一:完成playbook自动部署Nginx。

首先在控制端创建文件main.yml

ansible playbook 测试 ansible调试_服务器_34

 

在这个文件里面输入一下内容,如下图所示

ansible playbook 测试 ansible调试_运维_35

保存并退出。

 

然后执行Playbook,如下图所示

ansible playbook 测试 ansible调试_ansible playbook 测试_36

 

 

实验结果验证:

首先开启nginx,如下图所示

ansible playbook 测试 ansible调试_服务器_24

接着查看nginx的服务状态,如下图所示,表示成功安装了nginx。

ansible playbook 测试 ansible调试_ansible playbook 测试_38