#ansible #ansible-2.x
#ansible #ansible-2.x
Вопрос:
Я запускаю этот сборник:
---
- name: New user is created
hosts: machine2
become: true
vars:
username: test
tasks:
- name: User gets created
user:
name: " {{ username }}"
state: present
Однако я получаю следующую ошибку:
Комментарии:
1. Привет, Марти, и добро пожаловать, будет лучше, если вы скопируете и вставите свой код (и поместите его в блок кода для выделения синтаксиса), чем предоставите скриншот. Это помогает боту для индексации и людям копировать сообщение об ошибке и, например, Google.
Ответ №1:
Просмотрите строку, в которой вы используете переменное имя пользователя. Пока есть пустое место. Это должно быть:
name: "{{username}}"
.
На втором изображении вы можете видеть, что он жалуется, потому что пытается создать пользовательский «тест» (с пробелом в начале). В любом случае, для целей отладки может оказаться удобным использовать -v flat при запуске playbook. Вы можете использовать:
ansible-playbook example.yml -v
ansible-playbook example.yml -vv
ansible-playbook example.yml -vvv
ansible-playbook example.yml -vvvv
Каждый v увеличивает уровень детализации.
Ответ №2:
Проблема
Проблема в том, что у вас есть дополнительное пространство перед переменной
name: " {{ username }}"
Это должно быть:
name: "{{ username }}"
Объяснение для начинающих
На самом деле это какой-то шаблон jinja2. Вы установили переменную username
с « test
» в качестве содержимого. Итак, если в " {{ username }}"
вас заменить {{ username }}
на test
вас заканчивается " test"
. Обратите внимание, что пробел перед первой фигурной скобкой остается и стоит перед «test». И система не принимает создание пользователя с именем пользователя, начинающимся с пробела.