【发布时间】:2019-11-22 10:54:22
【问题描述】:
我需要创建一个将字符串值插入数据库的 ansible 任务。问题是字符串值可能包含各种空格、引号等。
我打算这样做:
- name: Insert record
command: mysql db_name -e "INSERT INTO table(column) VALUES ('{{ the_value }}');"
the_value 变量包含字符串,但正如我提到的,其中包含各种空格和引号。所以,它应该被转义。
标准的 ansible quote 过滤器在这里可能不合适,因为它转义了要在 shell 命令中使用的字符串,但我不使用 shell。
这里有一些类似的问题:Insert data into mysql tables using ansible,但对解决转义问题没有帮助。
【问题讨论】:
-
您是否在
ansible-playbook通话中与the_value通话?如果是这样,您可以使用包含空格值的缩写版本来发布该调用吗? -
@WEBjuju 我是 ansible 的新手,所以我不知道
the_value变量将如何获得它的价值。它的值将从文件中读取 - 该文件应该包含一些配置。只需将此文件的全部内容保存到数据库中即可。
标签: mysql insert ansible escaping