Рейтинг:1

Ошибка при создании группы с помощью ansible sudo/become

флаг cn

Я пытаюсь создать группу с помощью Ansible, которая терпит неудачу, но работает, если я запускаю ее как команду SSH.

Игра

- имя: Тестовая ошибка при создании групп
  хозяева: все
  стать: да
  стать_метод: sudo
  стать_пользователем: xdradmin
  задачи:
  - имя: Убедитесь, что тестовая группа существует
    группа:
      название: тест
      состояние: присутствует
      Гид: 1001

Попытка создать группу завершается ошибкой.

$ ansible-playbook -i web, -u xdradmin test.yml 

PLAY [Проверка ошибок при создании групп] ************************************************* ****************************************************

ЗАДАНИЕ [Сбор фактов] *************************************************** ******************************************************* ********
хорошо: [веб]

ЗАДАЧА [Убедиться, что тестовая группа существует] ************************************************* ******************************************************* *
фатальный: [Интернет]: FAILED! => {"changed": false, "msg": "groupadd: Отказано в доступе.\ngroupadd: невозможно заблокировать /etc/group; повторите попытку позже.\n", "name": "test"}

ОБЗОР ИГРЫ ******************************************************* ******************************************************* *****************
web: ok=1 изменено=0 недостижимо=0 не удалось=1 пропущено=0 спасено=0 проигнорировано=0   

Однако, если я делаю то же самое вручную, все работает нормально.

 ssh xdradmin@web 'sudo groupadd -g 1001 test && tail -n1 /etc/group'
тест:х:1001:
Рейтинг:1
флаг cz

Вы сказали ansible стать (в данном случае sudo) пользователю xdradmin, у которого, по-видимому, нет разрешения на создание групп. Большую часть времени вы должны стать корень поскольку это пользователь-администратор, который будет выполнять все задачи, требующие привилегий root. Действительно, это то, что вы сделали с вашей командой ssh: вы стали корень, нет xdradmin. Таким образом, команда сработала.

Исправьте свой стать_пользователем, например:

стать_пользователем = корень

Ставший пользователь отличается от пользователя, под которым ansible подключается к удаленной системе. Это удаленный_пользователь.

remote_user=xdradmin

С этими двумя изменениями ansible будет подключаться к системе по ssh от имени пользователя. xdradmin, затем sudo для корень и, наконец, запустите свою задачу.

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

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