Назад | Перейти на главную страницу

Является ли `users` собственной переменной в Ansible?

users:
  - name: hellouser
    password: pw
    accessToken: ""
    readonly: false
  - name: hellouser2
    password: pw2
    accessToken: ""
    readonly: true

приводит к:

fatal: [IP]: FAILED! => {"changed": false, "failed": true, "msg":
"AnsibleUndefinedVariable: 'unicode object' has no attribute 'name'"}

когда users изменен на users2:

users2:
  - name: hellouser
    password: pw
    accessToken: ""
    readonly: false
  - name: hellouser2
    password: pw2
    accessToken: ""
    readonly: true

запуск анзибла завершается успешно.

Обсуждение

добавить, добавить, as_integer_ratio, bit_length, capize, center, clear, сопрягать, копировать, подсчитывать, декодировать, знаменатель, разницу, difference_update, отбрасывать, кодировать, заканчивается, расширять, расширять, находить, форматировать, fromhex, fromkeys, get, has_key, шестнадцатеричный, imag, index, insert, пересечение, crossction_update, isalnum, isalpha, isdecimal, isdigit, isdisjoint, is_integer, islower, isnumeric, isspace, issubset, issueperset, istitle, isupper, items, iteritems, iterkeys, keys, itervalues, ljust, lower, lstrip, numerator, partition, pop, popitem, real, remove, replace, reverse, rfind, rindex, rjust, rpartition, rsplit, rstrip, setdefault, sort, split, splitlines, startwith, strip, swapcase, symric_difference, simric_difference_update, title, translate, union, update, upper, values, viewitems, viewkeys, viewvalues, zfill.

  • Глобальный: устанавливается конфигурацией, переменными среды и командной строкой.
  • Игра: каждая игра и содержащиеся структуры, записи переменных, include_vars, значения по умолчанию для ролей и переменные.
  • Хост: переменные, напрямую связанные с хостом, такие как инвентарь, факты или зарегистрированные выходные данные задач.

Вопросы

  1. Как предотвратить конфликты между собственными и пользовательскими переменными в Ansible?
  2. Есть ли в Ansible список собственных переменных?
  3. Есть ли в Ansible глобальные и локальные переменные, как в Puppet?

Без задач, которые подняли "AnsibleUndefinedVariable: 'unicode object' has no attribute 'name'" ошибка, трудно сказать, что здесь пошло не так. Я не могу воспроизвести эту ошибку, поэтому полагаю, что это ошибка используемого вами модуля.

Помимо уже процитированных список из known public attributes я не знаю никаких других правил. Даже используя known public attributes не привело ни к каким ошибкам в моих тестах.

В Ansible есть концепция магические переменные которые в основном представляют собой факты, собранные setup модуль. Вы можете получить список magic variables запустив setup модуль против хоста.

Нет global и local переменные в Ansible в смысле types. Переменные в Ansible имеют scope. Объем переменной зависит от того, где она установлена. Взгляни на документация по приоритету переменных.