ansible模板在OSX上扩展,而不是在Linux

时间:2017-06-12 18:40:42

标签: ansible jinja2

我正在尝试使用set_fact构建一个剧本,但似乎是模板 我在OSX上本地测试时扩展,但是当我调用ansible时不扩展 詹金斯在Linux上。这是行:

- set_fact:
    snapshot_id: "production-snapshot-{{ 2000000000 | random | to_uuid | replace('-', '') | truncate(12, end='') }}"

当我在OSX上测试时,这个值会被正确填充 “生产快照4d378e43eede”。当我在Linux上的Jenkins中调用它时 价值是“生产快照 - ”。没有其他输出或错误 除了截断值之外的消息。

两种环境都使用ansible 2.3.0。 Linux使用Python 2.7.5,OSX使用Python 2.7.13。

知道这里发生了什么吗?这是一个错误吗?

1 个答案:

答案 0 :(得分:2)

问题出在truncate命令中。

"如果第二个参数为true,则过滤器将剪切文本的长度。否则它将丢弃最后一个字。" Template Designer Documentation

将您的游戏更改为:

- set_fact:
    snapshot_id: "production-snapshot-{{ 2000000000 | random | to_uuid | replace('-', '') | truncate(12, 'true', end='') }}"