はじめに
なにか連番を生成する際に、user1、user2・・user10 ではなく、user01、user02・・のように 特定の桁数でゼロパディングしたいことはないでしょうか。
Jinja2 の filter
でフォーマットするのが便利です。
- 動作確認環境
- Ansible 2.9.9
- Jinja2 2.11.2
サンプル1: 簡単な例(単一の値)
10進数を2桁で揃えたいときは %02d
です。
- hosts: localhost connection: local gather_facts: false tasks: - debug: msg: "{{ 'user%02d' | format(1) }}"
実行結果
TASK [debug] ********************************************************************************** ok: [localhost] => { "msg": "user01" }
サンプル2: 連番
- hosts: localhost connection: local gather_facts: false tasks: - debug: msg: "{{ 'user%02d' | format(item) }}" loop: "{{ range(1, 10 + 1 , 1)| list }}"
実行結果
TASK [debug] ********************************************************************************** ok: [localhost] => (item=1) => { "msg": "user01" } ok: [localhost] => (item=2) => { "msg": "user02" } ok: [localhost] => (item=3) => { "msg": "user03" } ok: [localhost] => (item=4) => { "msg": "user04" } ok: [localhost] => (item=5) => { "msg": "user05" } ok: [localhost] => (item=6) => { "msg": "user06" } ok: [localhost] => (item=7) => { "msg": "user07" } ok: [localhost] => (item=8) => { "msg": "user08" } ok: [localhost] => (item=9) => { "msg": "user09" } ok: [localhost] => (item=10) => { "msg": "user10" }