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

带薪学习的日子不好过,要在几天内迅速掌握导师下发要求学习的技能,看着以前一起蹲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监听的端口也确实发生了改变,问题终于解决了。。

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

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

【Ansible】记一次技术博客害死人的经历——ansible模板变量注入探究的更多相关文章

  1. 自动化运维工具Ansible详细部署 - 人生理想在于坚持不懈 - 51CTO技术博客

    自动化运维工具Ansible详细部署 - 人生理想在于坚持不懈 - 51CTO技术博客 自动化运维工具Ansible详细部署

  2. 解决编译apache出现的问题:configure: error: APR not found . Please read the documentation - ____哊.時^随记 - 51CTO技术博客

    解决编译apache出现的问题:configure: error: APR not found . Please read the documentation - ____哊.時^随记 - 51CTO ...

  3. [技术博客] 敏捷软工——JavaScript踩坑记

    [技术博客] 敏捷软工--JavaScript踩坑记 一.一个令人影响深刻的坑 1.脚本语言的面向对象 面向对象特性是现代编程语言的基本特性,JavaScript中当然集成了面向对象特性.但是Java ...

  4. 从OneNote走出,技术博客养成记

    2010年9月北上求学,在一所普通本科院校学习计算机专业,年少轻狂未能领悟计算机技术的本质渐生弃学之意. 2013年9月南下参军,在一个电抗部队从事通信指控专业,填补了扛枪演练的男儿情怀却又无法抵制对 ...

  5. 如何写出高质量的技术博客 这边文章出自http://www.jianshu.com/p/ae9ab21a5730 觉得不错直接拿过来了 好东西要大家分享嘛

        如何写出高质量的技术博客?答案是:如果你想,就一定能写出高质量的技术博客.看起来很唯心,但这就是事实.有足够愿力去做一件目标明确,有良好反馈系统的事情往往很简单.就是不停地训练,慢慢地,你自己 ...

  6. 转: BAT等研发团队的技术博客

    BAT 技术团队博客   1. 美团技术团队博客:  地址: http://tech.meituan.com/ 2. 腾讯社交用户体验设计(ISUX) 地址:http://isux.tencent.c ...

  7. 不可思议的hexo,五分钟教你免费搭一个高逼格技术博客

    引言 作为程序员拥有一个属于自己的个人技术博客,绝对是百利无一害的事,不仅方便出门装b,面试时亮出博客地址也会让面试官对你的好感度倍增.经常能在很多大佬的技术文章的文末,看到这样一句话: " ...

  8. 技术博客——微信小程序的架构与原理

    技术博客--微信小程序的架构与原理 在两个月的微信小程序开发过程中,我曾走了不少弯路,也曾被很多现在看来十分可笑的问题所困扰.这些弯路与困扰,基本上都是由于当时对小程序的架构理解不够充分,对小程序的原 ...

  9. ******IT公司面试题汇总+优秀技术博客汇总

    滴滴面试题:滴滴打车数据库如何拆分 前端时间去滴滴面试,有一道题目是这样的,滴滴每天有100万的订单,如果让你去设计数据库,你会怎么去设计? 当时我的想法是根据用户id的最后一位对某个特殊的值取%操作 ...

随机推荐

  1. [人物存档]【AI少女】【捏脸数据】活泼少女

    AISChaF_20191028022750507.png

  2. nginx信号

    ps aux | grep nginx #查看nginx进程,要查看nginx的pid,就得使用这个命令查看*********************nginx信号****************** ...

  3. jquery fadeIn()方法 语法

    jquery fadeIn()方法 语法 作用:fadeIn() 方法使用淡入效果来显示被选元素,假如该元素是隐藏的.大理石平台检定规程 语法:$(selector).fadeIn(speed,cal ...

  4. 灰度图像--图像增强 Robert算子、Sobel算子

    学习DIP第36天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对此表示很不 ...

  5. LOJ #2733 [JOI2016春季合宿]Sandwiches (DP)

    题目链接 https://loj.ac/problem/2733 题解 神仙题-- 首先可以观察到一个结论: 目标块的两块小三明治一定分别是最后和倒数第二个被吃的. 由此我们可以考虑这两块谁先被吃.这 ...

  6. Composer 安装 zlib_decode(): data error 错误

    1.composer 安装一个组件(composer require topthink/think-worker) 报错如下 Failed to decode response: zlib_decod ...

  7. Linux 搭建Mysql主从节点复制

    Linux环境 Centos 6.6 64位 准备两台服务器,搭建一主一从,实现Mysql的读写分离和数据备份 主节点 192.168.43.10 leader 从节点 192.168.43.20 d ...

  8. JavaWeb_(Hibernate框架)Hibernate中一级缓存

    Hibernate中一级缓存 Hibernate 中的缓存分为一级缓存和二级缓存,这两个级别的缓存都位于持久化层,并且存储的都是数据库数据的备份.其中一级缓存是 Hibernate 的内置缓存,在前面 ...

  9. 【知识库】-数据库_MySQL 的七种 join

    掘金作者:haifeisi 文章出处: MySQL 的七种 join Learn [已经过测试校验] 一.内连接 二.左外连接 三.右外连接 四.左连接 五.右连接 六.全连接 七.两张表中都没有出现 ...

  10. Vue使用Axios实现http请求以及解决跨域问题

    Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中.Axios的中文文档以及github地址如下: 中文:https://www.kancloud.cn/y ...