
[英]How to check Regex for character / (escape slash) and ^ Using Shell Scripting Linux
[英]How escape random string for linux shell to update mysql datase entry using ansible?
对于特定情况,我需要echo
显由 ansible 的 function password_hash
返回的随机字符串,其中包含多个随机$
符号(加密方法bcrypt
)。 然后将回显的字符串通过管道传送到下一个命令。
理想情况下,我会转义整个字符串。 如果那不可能,我想转义所有$
符号。 这怎么可能? 如果有一个自动转义变量的 ansible 本机命令,那也很好。
如果需要,完成任务
- name: Update Admin password
shell: "echo \"update users set passwd={{ zabbix_conf.admin_password|password_hash('bcrypt') }} where username='Admin'\" | mysql --user={{ zabbix_conf.db_user}} --password={{ zabbix_conf.db_password }} zabbix"
当前无法按预期工作,因为$
符号会影响 echo 为空。
Ansible 已经有一个用于执行 mysql 查询的内置命令,称为mysql_query
。 因此,可以简单地做:
- name: Update Admin password
mysql_query:
login_db: "{{ zabbix_conf.db }}"
login_user: "{{ zabbix_conf.db_user}}"
login_password: "{{ zabbix_conf.db_password }}"
query: "update users set passwd='{{ zabbix_conf.admin_password|password_hash('bcrypt') }}' where username='Admin'"
这样你就不需要逃避任何东西,它看起来也更干净。
如果有人想重现这个: Ansible 需要将passlib
安装到password_hash
bycrypt
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.