Python
easy_install
pip
jinja2
Ansible
AnsibleDay 19

AnsibleでPython(正確にはJinja2)の文法を生かしたスマートな条件文の書き方集

More than 5 years have passed since last update.

ご存知のとおりAnsibleはPythonで書かれているので、Playbookの条件文にもPython(正確にはJinja2)の文法が適用可能です。

これを知っていると、よりスマートに条件文を書くことが出来ます。

そこで身近な例を見ていきましょう

--

before

when: animal == 'dog' or animal == 'cat'

after

when: animal in ['dog', 'cat']

--

before

when: animal != 'dog' and animal != 'cat'

after

when: animal not in ['dog', 'cat']

--

before

when: num > 0 and num <= 100

after

when: 0 < num <= 100

--

before

when: num == 0 or num == 1 or num == 2

after

when: num in range(3)

※ range関数はJinja2でデフォルトでグローバルスコープで使用できる関数のためPlaybookでも使えます。

詳しくは以下のJinja2公式サイトを参照。

http://jinja.pocoo.org/docs/templates/#list-of-global-functions

--

before

when: num == 1 or num == 2 or num == 3

after

when: num in range(1, 4)

--

before

when: animal in animals and animal != animals[0]

after

when: animal in animals[1:]


次回はクラウド型の統計分析ツール「xica adelie」を提供する株式会社サイカのkiriさんこと海老原 智取締役CTOです。どんなトピックが待ち受けているのでしょうか。次回のお楽しみです。それでは今日はここまで。