ansible实践

blob.png

本偏文章以上图拓扑部署

首先准备了6台为centos7的主机(确保selinux和iptables不会成阻碍!关闭他们)

我们先来安装ansible吧!

配置EPEL源过后使用 yum -y install ansible 

blob.png

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

出师不利啊,安装ansible就失败了。!!!!!!

blob.png

看了一下 好像确实缺少了python-jinja2

后来翻看了下网上资料,好像原因是centos7上默认安装python版本为2.7,python-jinja2只能安装在2.6上,后来决定编译安装! (纠正一下,后来发现是我的安装光盘包不齐导致)

经过一番倒腾

blob.png

好像安装成功了,不确定就$?看看 ,返回值为0 ,恩 应该成功了。

blob.png

看着好像确实成功了,我们去看看/etc/ansible/ansible.cfg 的文件在不在吧!!毕竟第一步我们就要添加需要管控的主机呢!

blob.png

看来他并没有为我们提供inventory和配置文件,我们到解压包里面去找找看有实例文件没!

blob.png

果然在解压后的examples目录下有两个文件,我们还是给它放在 /etc/ansible目录下去吧

打开配置文件发现inventory和roles定义的路径都被注释掉了,我们就暂时先只改动这两处吧,以后看有什么问题在改。

再来看hosts文件,把里面的全都删掉,我们先随便定义几组

blob.png 先就这样吧。

然后我们还需要配置ansible基于秘钥方式登录各主机

blob.png生成秘钥

blob.png在将秘钥发至各个主机

由此,我们所有准备工作就算完成啦!!!

我们先来通过ansible ping下所有主机

blob.png

OK啦 

我们就可以写roles啦!!!先写keepalived+nginx吧。

我们先想一下这两台主机部署的顺序,首先要下载,我们得挂载yum的base和epel源,然后下载ntp时间进行同步(这里我用ansible这台主机做时间服务器)接着安装keepalived、提供配置文件、启动服务

接着安装nginx、修改他的配置文件、启动服务。

写的顺序计划好了,就准备开工吧!! 

blob.png

先创建目录,然后创建main.yml

blob.png

先mount然后安装ntp 然后替换ntpconf,这里我已经放了一个文件到file目录里面,因为这个配置文件可以两台nginx完全相同不用放模板里面,直接放files目录里面复制粘贴过去!

接着随便找个地方创建个nginx.yml吧!

blob.png

看上去应该OK了 我们去测试下 

blob.png

又报错了~~~~~~~~~~~~~~~~~~~~~~~

blob.png

这个箭头指向了n 我的n没写错啊ansible实践 ,应该是格式的问题,我们修改一下

blob.png

改成了这样~给他个缩进,再试试

blob.png

继续报错 我们在改

blob.png

改成了这样,继续试

blob.png

可以了~但是这里有个问题是mount居然是跳过了,但是下面的安装ntp又没问题,我去确认了一番,发现确实没挂载,我们先让他执行一次!

blob.png

看着好像是成功了 但是中间有个warning 好像是说使用挂载模块不要执行running命令?

去测试了下两台主机确实已经挂载了 接着测试下时间是否同步了这才是我们需要的!

blob.png

并没有同步。。。看到这里。。我想起了没有启动服务,以前做其他实验时都是ntpdate命令直接同步时间,在改改

blob.png

一并改成了这样,(之前其实不知道有mount模块,马哥没说ansible实践,看来还是要自己在实践中多多学习)再来试试

blob.png

貌似没问题 接着直接执行吧!

blob.png

好啦 没问题了~ 不过和我们现实时间有点差别慢了2天而且是晚上11点咯。。。这个不管他啦 不影响我们keepalived同步就好 (生产环境中不行哦,如果和现实时间不同步,到时候看日志什么的搞得你头痛)

我们接着把nginx和keepalived写完吧

blob.png

把上面的注释掉了,测试下吧

blob.png

应该是可以的,下面的报错原因是我们是测试 并没有安装,所以服务没法启动,现在我去改下配置文件。

blob.png

这是我对keepalived修改 全都注释掉了 就留了虚拟路由配置段,另外增加了一段对ngxin健康检查的。

另外要注意途中state和priority使用的是变量替换,因为在两个keepalived主机上这里是需要修改的,所以用了变量,再因此我们需要去编辑hosts文件了

blob.png

增加2个变量

接下来是nginx

blob.png

接下来写的是apache和php的playbook

blob.png

这我真的想哭了。。。这个实验做的。。。蓝屏3次,无缘无故断了四次网。。。我前面写了一下午具体的流程。。。全没了。。只能贴最终配置的结果了。。。

blob.png

这里我用nginx自己做了sorryserver,所以是此效果,(鉴于之前所说。。之前写的具体流程。。全没了。。只能看最终效果了。。。)

继续mariadb吧!

blob.png

这里是我写的mariadb的playbook  增加了个脚本授权root用户远程登录和创建一个wordpress数据库,这里我用ansible主机做了一个nfs准备让apache两台主机同时挂载,提供一个wordpress。

blob.png

看上去应该OK了,我们用ansible主机登录试试 

blob.png

OK啦,可以去下wordpress了

blob.png

已经把wordpress放到共享出去的分区啦,最后再来改一改apache的两台主机吧!

blob.png

这里只添加了最下面的3个安装nfs挂载nfs和拷贝一个配置文件过去,如果配置文件更改就reload一下httpd服务。

blob.png

这是handlers里面所定义的。

接着来测试一遍吧

blob.png

ok了,直接运行一次

最后我们来改一改wordpress的文件

blob.png

接着打开浏览器来试下。

blob.png

报错了,先来看下日志记录了什么

blob.png

上面的都不用管它 居然提示tmp目录下没有匹配到index.html或者index.php页面(这是肯定有的),通过最后一行推断原因是不能用tmp做目录,换一个目录试下

blob.png

最后还是在根目录下建了个html目录,挂载至此吧。

blob.png

果然是我们推断的原因,但是这里忘了装php-mysql,手动装下,

blob.png

装上了,接着重启服务,在访问。

blob.png

成功了,我们先填写下信息上去

blob.png

好像有点问题,这个问题跟当初做apache和php分离一样,图片加载不出来,当初以为是apache上没有静态内容,导致加载不出来,后面又把wordpress放到apache上,确实就可以了,但是现在挂载到本地的啊。。。应该不存在这个问题啊!!!!!但是这个状况应该是wordpress的问题,暂时先不研究啦~(搞不懂这里是啥情况了,请求192.168.20.106,主页的一部分请求被自动转到105上,应该确实是wordpress问题)

还在我们这个实验并不依赖这个,现在停一个apache试一下,看是否也能打开,还是可以打开的 接着把apache都停掉~看能否出来我们的sorry页面!!

blob.png

可以的,我们实践就做这里啦~~

ps:第一次感觉写个不是作业的博客。。好心酸。。蓝屏了4次。。无故断网N次。。。。。

原创文章,作者:N24_Ghost,如若转载,请注明出处:http://www.178linux.com/67206

(0)
N24_GhostN24_Ghost
上一篇 2017-01-26
下一篇 2017-01-27

相关推荐

  • linux 病毒 sfewfesfs

    由于昨天在内网服务器A不小心rm -fr / ,导致服务器A完蛋,重装系统后,不知道啥原因,局域网瘫痪不能上网,最后发现内网服务器A的一个进程sfewfesfs cpu 300%。路由器被网络阻塞啦。 于是百度这个病毒:都说该病毒很变态。第一次中linux病毒,幸亏是内网,感觉比较爽。(总结网络内容,引以为戒) 1、病毒现象 服务器不停向外网发送数据包,占网…

    Linux干货 2015-04-03
  • iptables/netfilter入门到进阶

    防火墙的概念 Firewall:工作于主机或网络边缘,对于进出本主机或网络的报文根据事先定义的规则作匹配检测,对于更改被规则匹配到的报文做出相应处理的组件 网络层防火墙(包过滤防火墙): 优点:对用户来说透明,处理速度快且易于防护 缺点:一旦黑客突破防火墙,就可以请以伪造数据包源地址、目的地址和IP端口号 代理服务型防火墙(Proxy Service) 优点…

    2017-06-17
  • Linux磁盘管理(一)之分区、格式化、挂载使用

    磁盘管理(一)   本章节内容: 磁盘结构 分区类型   管理分区   管理文件系统   挂载设备   一、磁盘结构: 1、设备号码:  主设备号:major number, 标识设备类型 次设备号:minor number, 标识同一类型下的不同设备  &n…

    Linux干货 2016-08-26
  • 系统启动及恢复

    一、知识整理 1、modinfo命令:显示模块的详细描述信息: -n 只显示模块文件路径 -p 显示模块参数 -a auther -d description -l license协议 modprobe命令:装载或卸载内核 -r卸载内核,同rmmod 配置文件:/etc/modprobe.d/*.conf depmod命令:内核模块依赖关系文件及系统信息映射…

    Linux干货 2016-09-22
  • 博客作业网络班22期+第6周(9.12-9.18)

    请详细总结vim编辑器的使用并完成以下练习题1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; [root@localhost /]# cp /etc/rc.d/rc.sysinit /tmp[root@localhost /]# sed -i 's/\…

    Linux干货 2016-09-19
  • linux的终端类型

    1、什么是终端 终端(Terminal)也称终端设备,是计算机网络中处于网络最外围的设备,主要用于用户信息的输入以及处理结果的输出等。 在早期计算机系统中,由于计算机主机昂贵,因此一个主机(IBM大型计算机)一般会配置多个终端,这些终端本身不具备计算能力,仅仅承担信息输入输出的工作,运算和处理均由主机来完成。 在个人计算机时代,个人计算机可以运行称为终端仿真…

    Linux干货 2016-10-19

评论列表(1条)

  • luoweiro
    luoweiro 2017-02-22 22:31

    很不错的过程,尤其是出问题后排查思路,这部分是大家都需要学习的,赞。