我使用ansible来提供wordpress安装,为此我有一个wp-config.php的模板.
我的wp-config.php.j2模板替换了键和盐,它看起来像这样
{{ wordpress_keys.content }}
- 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
问题是有时键和盐在其中有“特殊”字符,如<> ;, {}等,这似乎导致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
_CK{{V%]u-#cK44dAig%v<‘);\ndefine(‘SECURE_AUTH_SALT’,
,P.,N');\ndefine('AUTH_SALT', '-pzZ6
l40^8++a@t_sldj
‘?ONdE{–{6CQT_Jrn0N4xHhI|}Rz2y1cc9Cj22XOkITU|)[email protected]?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.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。