通过在 Ansible 中附加零将个位数转换为两位数

Convert single to double digits by appending zero in Ansible

提问人:Ashar 提问时间:4/22/2020 最后编辑:Brian Tompsett - 汤莱恩Ashar 更新时间:4/24/2020 访问量:2919

问:

我有以下剧本:

   - name: Add hosts
     include_tasks: "{{ playbook_dir }}/gethosts1.yml"
     vars:
       PROFILE_NUM: "{{ my_result }}"
     loop: "{{ query('sequence', 'start=1 end='+(PROFILES)) }}"
     loop_control:
       loop_var: my_result

我按以下方式运行剧本:

ansible-playbook test.yml -e  PROFILES=12

这使我PROFILE_NUM为 1,2,3,4,5...12

但是,我希望PROFILE_NUM是两位数,即 01,02,03,04,05....12

我尝试了以下方法,但它出错了PROFILE_NUM: "%02d{{ my_result }}"

你能建议吗?

python 字符串 ansible

评论


答:

1赞 Alexander Brockmeier 4/22/2020 #1

您可以查看此相关帖子: 显示带有前导零的数字

(如果使用 python3)考虑采用第二种方法:

print("{:02d}".format(1))

或者下面使用 f 字符串的那个。

评论

0赞 Ashar 4/22/2020
您能否建议@Alexander Brockmeier 编写一个 ansible 代码,我将它分配给一个变量PROFILE_NUM: "{{ my_result }}"
0赞 Alexander Brockmeier 4/22/2020
@Ashar 我很抱歉只使用过几次 ansible,但是:stackoverflow.com/questions/18050911/...可能会对您有所帮助。
6赞 gaige 4/22/2020 #2

你很接近,你正在寻找:

PROFILE_NUM: '{{ "%02d" | format(my_result) }}'

它将使用 jinja2 使用参数格式化字符串“%02d”,为您提供:my_result

01

如果您通过 1.