Ошибка при попытке создать пользователя в моем Ansible playbook?

#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». И система не принимает создание пользователя с именем пользователя, начинающимся с пробела.