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监听的端口也确实发生了改变,问题终于解决了。。

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

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

  • 相关阅读:
    SCAU 9504 面试
    SCAU 9503 懒人选座位
    SCAU 8628 相亲
    SCAU 10691 ACM 光环
    SCAU 8626 原子量计数
    SCAU 10674 等差对
    HDU ACM 1048 The Hardest Problem Ever (水题)
    SCAU 9502 ARDF
    SCAU 10686 DeathGod不知道的事情
    SCAU 8629 热身游戏(高精度)
  • 原文地址:https://www.cnblogs.com/sbhyc/p/11207721.html
Copyright © 2011-2022 走看看