Доступная виртуальная машина azure для подготовки со случайным именем

#azure #ansible

Вопрос:

У меня есть доступная роль для подготовки виртуальной машины в облаке Azure. Сценарий работает нормально, но создает виртуальную машину со случайной частью в имени.

 azure_rm_virtualmachine:
    resource_group: "{{resource_group_name}}"
    location: "{{resource_group_location}}"
    name: "vm-{{env}}-sql-{{resource_odd_string}}-{{'x'|format(item)}}"
    vm_size: "{{resource_odd_vmsizetype}}"
    network_interfaces: "nic-{{env}}-sql-{{resource_agg_string}}-{{'x'|format(item)}}"
    image:
      offer: UbuntuServer
      publisher: Canonical
      sku: '18.04-LTS'
    data_disks:
      - lun: "{{resource_odd_data_disk_lun}}"
        disk_size_gb: "{{resource_odd_data_disk_size}}"
    tags:
            env: "vm-{{env}}-sql-{{resource_odd_string}}"
  loop: "{{ range(resource_odd_countstart|int, resource_odd_countend|int   1, 1)|list }}"
  tags:
    - sql_odd
 

И моя переменная yaml содержит следующие переменные

 resource_group_name: ""
resource_group_location: "East US"
resource_odd_subnet: "sqlsubnet"

resource_odd_countstart: "101"
resource_odd_countend: "102"
resource_odd_string: "mine"

resource_odd_data_disk_lun: "0"
resource_odd_data_disk_size: "512"
resource_odd_data_disk_type: "Premium_LRS"
 

Когда я выполняю этот сценарий, он успешно запускает виртуальную машину, но ее имя может содержать случайный суффикс.

Ожидаемый результат: vm-stage-sql-mine-101 , vm-stage-sql-mine-102

Но я получаю такие имена, как vm-stage-sql-mine-65 или vm-stage-sql-mine-c9 и т. Д. То же самое относится и к именам сетевых карт.

Комментарии:

1. У вас есть шаблон шестнадцатеричного форматирования ( x ), и вы удивлены, что в вашем суффиксе есть шестнадцатеричные цифры? $ printf 'x' 101 отпечатки 65 на моем панцире

2. Еще один лайнер, чтобы определить вашу проблему: ansible localhost -m debug -a "msg="Hexa: {{'x' | format(value|int) }} - Decimal: {{ 'd' | format(value|int) }}"" -e value=255 . Обратите внимание, что если вы пройдете только ints, %d то получите тот же результат. И пока вы этим занимаетесь, вы, вероятно, можете просто отказаться от форматирования и использовать {{ item | int }} напрямую.