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

быть.
Задача: если выключаться кондиционеры, то необходимо корректно погасить все хосты(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 ответов

127 просмотров

Поскольку запускается 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
Такой вариант мне кажется крайне небезопасным. наш...

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

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

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

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта