加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 如何防止ansible模板被收到的内容混淆?

发布时间:2020-12-20 11:42:47 所属栏目:Python 来源:网络整理
导读:我使用ansible来提供wordpress安装,为此我有一个wp-config.php的模板. 我的wp-config.php.j2模板替换了键和盐,它看起来像这样 {{ wordpress_keys.content }} wordpress_keys来自一个任务,如下所示: - name: retrieve new wordpress keys and salts uri: url
我使用ansible来提供wordpress安装,为此我有一个wp-config.php的模板.

我的wp-config.php.j2模板替换了键和盐,它看起来像这样

{{ wordpress_keys.content }}

wordpress_keys来自一个任务,如下所示:

- name: retrieve new wordpress keys and salts
  uri:
    url: "https://api.wordpress.org/secret-key/1.1/salt/"
    method: GET
    return_content: yes
  register: wordpress_keys

问题是有时键和盐在其中有“特殊”字符,如<&gt ;,{}等,这似乎导致ansible生成如下错误:

fatal: [ddc-wpchange2.ddc.prod] => {‘msg’: “AnsibleError: Failed to
template define(‘AUTH_KEY’,
‘1=MFI*+!d^1/y;}za6$Qfw4vo{bv!gV?lmX ?^P h/5L?szDv &V<~in+.~^oOdCFpyt]Tu8FSmGE}@||,Pe(:(1%CjjAwhq{Gi#j-
‘);ndefine(‘LOGGED_IN_KEY’,
‘BJ6c9#/XDBVDB-8Q+ctK9DLZiKUzPYbM&aMlO!.v7COPb8=[9HdU&Y7%SzE{&xh’);ndefine(‘NONCE_KEY’,
‘.xB:3|/#|^2*JMh6+t$Ek:DG+wEqyO4:QZmMo}g|MeZi~LrvNpJ-z(8/S
,P.,N');ndefine('AUTH_SALT','-pzZ6
l40^8++a@t_sldj
_CK{{V%]u-#cK44dAig%v<‘);ndefine(‘SECURE_AUTH_SALT’,
‘?ONdE{–{6CQT_Jrn0N4xHhI|}Rz2y1cc9Cj22XO
kITU|)BJm@BgPd5.lPW-?e;’);ndefine(‘LOGGED_IN_SALT’,
‘O_Q7}Q.fx,Gt#0m30-@$k +~>dSk
k6gz/I+>$k~h9)<6(M~F+}UFU:
‘y+zF=
o1:>p1S:2FB6)e~vO_#[-i1ur}V?y$>EOyF;{lkU8Y;y0Znt’);n: template
error while templating string: unexpected ‘]'”,‘failed’: True}

只有当存在某些特殊字符时,错误才会一直发生.

我的问题是……我怎样才能在请求的结果中替换,而不会发生这种情况?是否有某种逃避或引用可行?

谢谢,
约翰

解决方法

逃避某些角色将是困难的,因为uri模块不仅需要支持它,而且模板引擎引擎也必须不受欢迎.

相反,这是一个解决方法:

修改任务,以便将内容保存到文件而不是变量:

- name: retrieve new wordpress keys and salts
  uri:
    url: "https://api.wordpress.org/secret-key/1.1/salt/"
    method: GET
    dest: wp_keys.php
    return_content: yes

然后在wp-config.php.j2模板中添加一行,其中包含wp_keys.php.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读