Преобразование однозначных в двузначные числа путем добавления нуля в Ansible - PullRequest
0 голосов
/ 22 апреля 2020

У меня нижеприведенная книга воспроизведения:

   - 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 }}"

Можете ли вы предложить?

Ответы [ 2 ]

1 голос
/ 22 апреля 2020

Вы были близки, вы ищете:

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

, который будет использовать jinja2 для форматирования строки "% 02d" с использованием параметров my_result, что даст вам:

01

если вы сдадите 1.

1 голос
/ 22 апреля 2020

Вы можете проверить этот пост: Показать номер с ведущими нулями

(при использовании python3) рассмотрим второй подход:

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

Или приведенный ниже с использованием f-строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...