在ansible变量中添加变量周围的引号

Geo*_*lin 5 postgresql jinja2 ansible

我的 ansible 剧本之一(enrise.postgresql)有问题。

它接受变量 postgresql_listen_addresses (/etc/postgresql/9.3/main/postgresql.conf 中的listen_addresses 值列表)。

我想使用值ansible_default_ipv4.address,但ansible提供的值不带引号,而postgress希望它带有单引号(如'192.168.0.1')。

我有这样的变量:

postgresql_listen_addresses: '{{ [ ansible_default_ipv4.address ] }}'
Run Code Online (Sandbox Code Playgroud)

当地址不带引号时,postgress 会抱怨不带引号的 IP 地址(语法错误)。

如何在 ansible_default_ipv4.address 的值周围添加引号?

谢谢。

更新:

我能够用这个丑陋的代码解决它。如果有人可以更好,请帮忙。

print_quotes: "'%s'"
postgresql_listen_addresses: [ "{{print_quotes|format(ansible_default_ipv4.address) }}"
Run Code Online (Sandbox Code Playgroud)

Kas*_*yap 1

你已经尝试过这个了吗?

postgresql_listen_addresses: "[ '{{ansible_default_ipv4.address}}' ]"
Run Code Online (Sandbox Code Playgroud)

或者如果 postgress 需要双引号而不是单引号。

postgresql_listen_addresses: '[ "{{ansible_default_ipv4.address}}" ]'
Run Code Online (Sandbox Code Playgroud)

我没有简单的测试方法,所以我只希望支持这个理论......:-)