Коллеги! День добрый. Подскажите, пожалуйста. Сутки не могу понять как

быть.
Задача: если выключаться кондиционеры, то необходимо корректно погасить все хосты(Linux, windows, esxi, proxmox) перед этим погасить все сервисы, а потом хосты, но сейчас задача просто понять как погасить хосты через ansible semaphore.

По сути сводиться к тому, что пользователь видит, что температура поднялась, нажимает запустить таск и всё, что написано в hosts выключается.
Хосты в изолированной подсети, без доступа к интернету.

Поставил на main_host docker-compose с ansible. Долго не мог понять как получить через вебку доступ к playbooks, в итоге тоже закидываю их в локальную директорию докер-контейнера.

Указываю репозиторий — локальную папку

Environment (Extra variables и Environment variables) оставляю пустыми, не очень понимаю что это
Inventory (указываю static ip адрес- хоста который надо выключить)
собираю task,
указываю имя playbook
---
- name: Выключить хост
hosts: all
become: yes
become_method: sudo
tasks:
- name: Unconditionally shut down the machine with all defaults
community.general.shutdown:

следом указываю Inventory, Repository, Environment

Запускаю, пишет:
8:01:11 PM
Run TaskRunner with template: new_shutdown
8:01:11 PM
Preparing: 56
8:01:11 PM
installing static inventory
8:01:11 PM
No collections/requirements.yml file found. Skip galaxy install process.
8:01:11 PM
No roles/requirements.yml file found. Skip galaxy install process.
8:01:12 PM
8:01:12 PM
PLAY [Выключить хост] **********************************************************
8:01:12 PM
8:01:12 PM
TASK [Gathering Facts] *********************************************************
8:01:16 PM
ok: [192.168.146.132]
8:01:16 PM
8:01:16 PM
TASK [Unconditionally shut down the machine with all defaults] *****************
8:01:17 PM
fatal: [192.168.146.132]: FAILED! => {"changed": false, "msg": "Shutdown command failed. Error was Failed to set wall message, ignoring: Interactive authentication required.\r\nFailed to call ScheduleShutdown in logind, no action will be taken: Interactive authentication required., Shared connection to 192.168.146.132 closed.", "shutdown": false}
8:01:17 PM
8:01:17 PM
PLAY RECAP *********************************************************************
8:01:17 PM
192.168.146.132 : ok=1 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
8:01:17 PM
8:01:17 PM
Running playbook failed: exit status 2

Предполагаю, что он жалуется, что команда делается не под рутом, подскажите как исправить это?
спасибо

17 ответов

47 просмотров

Поскольку запускается sudo, то если для юзера ансибла не задан беспарольный доступ к sudo и сам пароль не передан ансиблу явно, то при попытке доступа он дополнительно запрашивает пароль.

Sam- Автор вопроса

Как задать беспарольный доступ? Я в контейнере ансибла сделал ssh-keygen и ssh-copy-id и проверил руками, с ssh user@192.168.146.132 заходит без пароля

Sam- Автор вопроса
Sam
Как задать беспарольный доступ? Я в контейнере анс...

В конфиге sudo поправить ansibleUserName ALL=(ALL) NOPASSWD:ALL

Что не так?

Sam- Автор вопроса
Timur Gadiev
В конфиге sudo поправить ansibleUserName ALL=(AL...

Такой вариант мне кажется крайне небезопасным. нашел пример [all:vars] ansible_sudo_pass=VeryStrongPassword указываю в Inventory, та же ошибка... + в таске указываю учетку в поле ​Vault Password, все равно тоже самое выводит

Sam
Такой вариант мне кажется крайне небезопасным. наш...

Кто бы ещё эту переменную куда-нибудь подставил.

Sam
Такой вариант мне кажется крайне небезопасным. наш...

О да, указывать пароль в файлике -- это наиболее безопасно. Для достижения более высокой степени безопасности надо запушить этот файлик в публично доступный репозиторий. Тогда вас точно никто не вломает.

Sam- Автор вопроса

Так тоже пробовал, все так же ошибка, будто через semaphore он их не видит

Sam
Так тоже пробовал, все так же ошибка, будто через ...

Надо разрешать ансибл юзеру на хосте то, что вы хотите сделать, либо через sudoers, либо добавляйте в группу

Sam
Такой вариант мне кажется крайне небезопасным. наш...

Такой вариант по умолчанию используется на админских учетках во многих облачных провайдерах. В AWS и Azure, например. Расскажите им, что они небезопасно делают.

Timur Gadiev
Такой вариант по умолчанию используется на админск...

Ну, не будут же они рассказывать, что лучше вариантов не нашли....

Sam
Такой вариант мне кажется крайне небезопасным. наш...

можно еще с указанием ключа, если такой сгенерирован, через переменную через group_vars, но чаще подписывают в инвентори: ssh_private_key=/путь/до/вашего/ключа только помните, что юзер должен быть в sudoers. а ansible_sudo_pass убрать.

Sam
Такой вариант мне кажется крайне небезопасным. наш...

В чем же «небезопасность», расскажете? 🙂

Похожие вопросы

Обсуждают сегодня

Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Портфолио: Зовут меня Александр, мне 41 год. Город Киров. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github.co...
Magic
11
Подскажите, пожалуйста, где в backende, или не в нем можно дату поправить? Логирует действия не в том часовом поясе
Лео
7
Всем привет В общем надо на странице вакансии вывести вакансии с hh, но когда я пишу код в разделе Code ошибка Invalid URL format. The URL should start with the forward slash...
A da
1
Есть магистры regex в чате? Задача: нужно написать regex который мэтчит полные (без сокращений по типу ::1/128) ipv6 адреса кроме 2001:0df7:cef7:29f7:52f7:adf7:2cf7:4ff7, при ...
Илья
5
Приветствую всех, есть вопросик. Передали проект на OctoberCms, без инсталяшки в полуразвернутом виде, нужно было залить бекап бд, после залития бд, оказалось, что части строк...
Лео
14
мне как апи hh написать?
A da
3
Привет! Подскажите может кто сталкивался, при создании купона выходит вот в таком виде окно. Как поправить это?
Ruslan
4
где собака, админ группы? нычкуется и боится проявить волю, в толерантность еще не наигрался? @yelizariev
Ognezar
61
Помните я тут рассказывал про таролога программистку? Мне выдали новый мем
Magic
6
Карта сайта