实验背景:
Z公司为了提升工作效率,消除重复任务,更少的错误风险,要求尽量减少对现网服务器的改动,因此在目前主流的运维自动化工具 中选择Ansible来实现IT运维管理自动化。
实验环境:
实验内容一:
- 确认实验环境:
了解服务器和主机用的操作系统,以及各个设备的ip地址
设备 | 操作系统版本 | Ip | 与其他主机是否能ping’通 |
服务端 |
|
|
|
被管理端 |
|
|
|
- 安装ansible(在控制端用yum方式安装Ansible。)
CentOS (Yum)
第一步:新增 epel-release 第三方套件来源。
第二步安装 Ansible。
3. 安装python及ssh无密登录
第一步:在所有节点上安装yum、ssh、python:
控制节点:
被控制节点:
第二步:在控制节点上执行:ssh-keygen:
第三步:在控制节点上执行:
4. 修改配置文件ansible.cfg并配置被控制主机。
第一步:修改配置文件ansible.cfg
首先在管理节点上输入:
输入之后,会看见这样一个界面:
接着点击键盘上的i键进入insert模式,将下列图中标黄的文件编辑进去
编辑完成之后保存并退出。
第二步:配置被控制主机
首先在管理节点上输入:
输入之后会看见默认的ansible的host文件,如下图所示
同样的还是输入 i,进入insert模式编辑以下文件
因为只用了一台被控制节点,所以只输入一个被控制节点的ip地址即可
保存配置文件并退出。
结果验证:
通过输入
来测试控制节点和被控制节点的连通性。
如图所示,如果出现正确的相应信息,success,则证明上述操作无误
实验内容2 :通过ad-hoc命令批量管理服务器
任务一:测试各个远程主机组webservers连通性。
在进行完实验内容之后,通过输入命令来测试控制主机和被控制主机组之间的连通性,如果出现以下success内容,则证明实验环境良好,可继续下列实验。
任务二:查看远程主机组webservers的网卡信息。
实验解析:首先需要在被控制主机上查看被控制主机的网卡名称是什么,有的机器网卡名称是eth0,有的则不是,如下图所示,被控制主机的网卡名为eno16777736
那么当我们在控制主机上查看被控制主机的网卡信息时,一定要注意网卡的名称是否对应,
图1
我们在控制主机上输入命令之后,就可以在控制主机上查看关于被控制主机的网卡信息,如图1所示。
任务三:执行远程主机脚本test.sh。
实验解析:在控制主机上远程控制被控制主机执行主机脚本,首先在被控制主机上有脚本,所以需要现在被控制主机上去创建脚本test.sh,如图2,图3所示,
图2
创建脚本:
图3
注意:/home/test.sh 脚本需要在远程主机上存在且有执行权限,如图4所示,修改权限。
图4
在控制主机上通过输入命令来检查结果,如图5所示。
图5
任务四:主控端向目标主机拷贝test1.sh文件到/tmp/目录下,并设置该文件所有者和所属组为root,文件权限为rwxr-xr-x。
实验解析:同样的,主控端向目标主机拷贝test1.sh文件,首先在主控端是有这个文件的,所以需要在主控端去创建这个文件test1.sh。在此不做介绍了,上面已经解析过了。
如图6所示
可以到目标主机上看一下是否有test1.sh的文件产生,如图7所示,在目标主机上进入tmp目录中,查看目录下所有文件,可以发现test1.sh文件被成功建成。
图7
任务五:查看远程主机组webservers /etc/sysctl.conf文件uid, gid信息,如图8所示
图8
任务六:安装httpd到所有远程主机组webservers上。
如图9所示
图9
任务七:开启远程主机组webservers http服务,并查看服务状态,首先启动服务,如图10所示
图10
接着查看服务状态如图11所示
图11
停止服务如图12所示
图12
任务八:在远端服务器组webservers上创建/home/f1文件,并删除/home/f1。
首先创建/home/f1文件,如图13所示
图13
在被控制主机上查看是否有/home/f1文件生成,在被控制主机上先进入home目录在查看目录文件有哪些,如图14所示
图14
接着删除/home/f1文件,如图15所示
图15
结果检验:
在被控制主机上查看/home/f1是否还存在,如图16所示
图16
实验内容三:playbook自动部署Nginx
任务一:完成playbook自动部署Nginx。
首先在控制端创建文件main.yml
在这个文件里面输入一下内容,如下图所示
保存并退出。
然后执行Playbook,如下图所示
实验结果验证:
首先开启nginx,如下图所示
接着查看nginx的服务状态,如下图所示,表示成功安装了nginx。