zoukankan      html  css  js  c++  java
  • 【Ansible】记一次技术博客害死人的经历——ansible模板变量注入探究

    风和日丽,夏天的北京湿热并举,睁不开的眼睛里,横竖都看着是“吃人”。

    带薪学习的日子不好过,要在几天内迅速掌握导师下发要求学习的技能,看着以前一起蹲IT坑的同事人来人往,用隔壁同性黄同学的话来说,就是愧疚中隐隐的感到一些不安。

    这种不安,终于随着一次排查ansible模板撰写问题,而被怼到了嗓子眼。

    事情是这样的。

    本人花了两天时间,终于找到了ansible的一个良心教程。估计学习ansible的各位都有过耳闻,就是珂儿吖的这篇全面的ansible入门指南(下面就是链接)。

    https://www.cnblogs.com/keerya/p/8004566.html

    全篇教程通俗易懂,循序渐进,容易上手,让我这个职场菜鸡如同进了大菜园,心满意足,啄个不停。但是,却在这里碰到了硬石头。

    如图,图片中介绍了如何利用ansible模板机制,使得可以生成依据变量不同而不同的配置文件。

    并且,在更改完之后,根据文中的说法,在保持playbook内copy模块不变的情况下,仅仅是.conf变成.j2,剧本执行便应该能够自动进行jinja2模板内变量替换,从而达到效果。

    可是,事实并不是如此。我们来看:

    修改完成后,在重启nginx时,发现nginx无法正常启动。登入远程服务器,检查nginx服务状态(systemctl status nginx)发现启动状态为failed。原因初步判定为“由于错误的配置文件”。

    在进入nginx配置文档内,惊人的发现变量并没有被替换!怪不得会出问题。。。修改替换失败的变量后,经过服务停止-杀进程-重启服务后,nginx可算能够重新启动。

    但是这个并没有解决根本问题。我们的目的是要能够让模板真正成为模板,能够响应变量替换的请求。

    经过一天的排查无果,最终询问导师,导师惊叹为什么我那里使用的模块还是copy。。。

    正确应该是使用template……如图所示:

    playbook正常了,其他什么都正常了。nginx监听的端口也确实发生了改变,问题终于解决了。。

    简而言之,那个博客关于模板的介绍有问题!!!

    为什么就没人在那个博客下面反应这个问题呢?细思极恐……

  • 相关阅读:
    《C++ Primer(第五版)》知识巩固
    Ubuntu下配置安装Hadoop 2.2
    Golang框架beego和bee的开发使用
    C++下混合编译c语言方法总结
    算法导论学习笔记1---排序算法(平台:gcc 4.6.7)
    基于web端去除空格小工具
    Google Map API抓取地图坐标信息小程序
    【算法导论】散列表
    【算法导论】二叉搜索树
    【算法导论】基本数据结构
  • 原文地址:https://www.cnblogs.com/sbhyc/p/11207721.html
Copyright © 2011-2022 走看看