Рейтинг:3

Ansible переменная без кавычек

флаг cn
raw

Чтобы использовать переменную, собранную из json, мне нужно, чтобы она была сырой, без кавычек:

У меня есть

хорошо: [устройство] => {
    "факт": {
        "целое": "7"
    },
}

Я хочу

хорошо: [устройство] => {
    "факт": {
        "целое": 7
    },
}

Дело в том, что кавычки не являются частью переменной, поэтому я не могу использовать | инт или же | заменять убрать кавычки.

Есть ли способ?

Рейтинг:6
флаг br

Результат Джинджа выражение всегда является строкой. Вы не можете получить целое число. Думаю, вам действительно нужно значение атрибута инт в словаре факт быть целым числом. Проверьте текущее значение, например.

        - отладка:
            переменная: fact.int
        - отладка:
            переменная: fact.int|type_debug

Если значение атрибута инт это строка, которую вы получите (сокращенно)

  факт.инт: '7'
  fact.int|type_debug: AnsibleUnicode

Вы можете преобразовать строку в целое число, например.

        - set_fact:
            факт: "{{ факт|объединить({'int': _int|int}) }}"
          вары:
            _int: "{{ факт.int }}"
        - отладка:
            переменная: fact.int
        - отладка:
            переменная: fact.int|type_debug

ты получишь (сокращенно)

  факт.инт: '7'
  fact.int|type_debug: int

Теперь значение атрибута инт является целым числом. Но результат выражения Jinja переменная: fact.int все еще строка факт.инт: '7'.


Примечания

  • Имейте в виду, что вар вариант отлаживать модуль уже работает в контексте Jinja2 и имеет неявную оболочку {{ }}.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.