2017-06-12 8 views
0

set_factを使ってプレイブックを作成しようとしていますが、テンプレートは のように見えますが、Linux上で Jenkinsを経由してOSXでローカルにテストします。ここでは行があります:Linuxではなく、OSX上で拡張可能なテンプレート

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

私はOSX上でこれをテストすると値が 「生産・スナップショット・4d378e43eede」のようなもので、正しく読み込まれます。 LinuxのJenkinsでこれを呼び出すと、 の値は "production-snapshot-"になります。切り捨てられた値の他に出力またはエラーメッセージがありません。

どちらの環境も2.3.0を使用しています。 LinuxはPython 2.7.5を使用し、OSXはPython 2.7.13を使用します。

ここで何が起こっているのでしょうか?これはバグですか?

+0

。 – Jack

+0

@Jackランダムな呼び出しを完全に削除しようとしましたが、この問題に対処できませんでした。 –

+0

'truncate(12)'とは何ですか?それはuuid部分を取り除きます。 – Jack

答えて

2

問題はtruncateコマンドにあります。

"2番目のパラメータがtrueの場合、フィルタはテキストを長さでカットし、それ以外の場合は最後の単語を破棄します。 Template Designer Documentation

に自分のプレーを変更

: `だけでなく` random`の)( `ランダム使用してみてください

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

が必要です.1つの明確化、一見壊れたtruncate()呼び出しはOSX上でどのように機能しますか? –

+0

OSXを実行しないので、 Linuxで彼のエラーを再現し、それを修正する。 – Jack

+0

答えに感謝 –

関連する問題