cent
Ну, вот и я о том же
Andrey
ну его нах, лучше shell+helm
Andrey
хоть там тоже грабли типа инициализации home
cent
Andrey
не, надо всякие helm --init --client-only делать и helm repo update при каждом запуске
Ilya
Вопрос, я передаю hosts как имена груп. Оно в какой либо переменной хранится? условно у меня hosts указано a1, a2
и я хочу сделать в таске shell: echo {{ чудо переменная которая содержит имя группы по которой выполняется}} - {{group_names}} не то, выдает все группы
cent
А как в ansible передать yaml переменные в vars, чтобы потом их использовать как файл для какой-то shell команды?
Ждун
/me читает 3й раз вопрос и нихрена не понимает
Sergey
cent
Нашел только такой хак https://pastebin.com/raw/Q5xgvfEW
Если кто знает как это сделать проще, то напишите пожалуйста
Sergey
Sergey
Sergey
Им создать файл на целевом хосте, который скормить баш команде (подсказка всем - #ненадотак)
cent
Sergey
Читал. Ответ читал?
cent
Ладно.. Спишем на усталось в конце трудового дня.
Alexandr
Anonymous
Алексей
Anonymous
@mobilesfinks Ну смысл в том, что вот тут сказали как правильно)) Если у тебя не разовый костыль, то ты лучше это, прекращай там хосты в ролях регулировать и прочую дичь творить.
А вообще, я не глянула на время вопроса. Думаю, уже не актуально.
Anonymous
иерархия такая: группа хостов это список хостов на который ты хочешь запускать какие то общие роли.
Алексей
Ну у меня так и есть. Какую я дичь творю?
Алексей
Я хосты в ролях не регулирую
Алексей
всё регулирование происходит в переменных групп/хостов
Anonymous
Кек, походу, я неверно поняла мессагу твою. Сорян.
Eduard
Hey. Подскажите как
grant all privileges on database dbname to dbuser;
обернуть в postgresql_privs?
Денис
postgresql_privs:
database: "dbname"
state: present
roles: "dbuser"
privs: "ALL
Денис
вроде как-то так
Антон
# GRANT ALL PRIVILEGES ON DATABASE library TO librarian
# Note that here "db: postgres" specifies the database to connect to, not the
# database to grant privileges on (which is specified via the "objs" param)
- postgresql_privs:
db: postgres
privs: ALL
type: database
obj: library
role: librarian
Eduard
Веселее
Eduard
Но пасибо
Антон
из доки
Eduard
Eduard
- postgresql_privs:
db: postgres
privs: ALL
type: database
obj: zabbix
role: zabbix
become: true
become_user: postgres
- postgresql_privs:
database: "zabbix"
state: present
roles: "zabbix"
objs: ALL_IN_SCHEMA
privs: "ALL"
become: true
become_user: postgres
Eduard
И никак иначе
Eduard
Уже пол часа в неё тупил
cent
@alexsuslin Alexandr Сорри, быстро писал.
Но я же сразу пример привел
https://t.me/pro_ansible/85416
В общем, смысл такой, что есть хитрая shell команда, которой нужно подсунуть генерируемый из переменных ansible yaml файлик.
И желательно это все сделать одной командой, чтобы не плодить временные файлики и не чистить их потом
Alexandr
cent
Alexandr
Описываешь нужную структуру yaml файла, вместо значений параметров пишешь плейсхолдер {{ansible_var_name}}. В плейбуке зовёшь модуль template. Все. На удаленном хосте у тебя лежит файл yaml со значениями переменных ansible
cent
Alexandr
Без модуля теплейт все равно не обойтись. Можно его позвать на контрольной ноде, считать в переменную и ее значения отдать в поток скрипту
cent
Alexandr
Да эту задачу можно десятками способами решить
Alexandr
Только сам скрипт в 10 раз длинее 1 модуля и вызова команды на удаление временного файла
Alexandr
Я не понимаю преимущества
Alexandr
Можно содержимое в env запихнуть, отдать в stdin из енва
Alexandr
Голь на выдумку хитра
cent
Alexandr
Щас нет :). Не у компа.
cent
Понятно)
Vladislav 👻
Vladislav 👻
И вариант закинуть темплейт и потом убрать - самый адекватный
Vladislav 👻
Опять бле башсибл
cent
Опять бле башсибл
Ну, если все равно дергать bash в ansible, то какая разница в какую сторону будет уклон?
Vladislav 👻
Тогда зачем ансибл, дернуть можно и по ссш
Sergey
Boris
Подскажите пожалуйста
ansible win -m win_ping
[WARNING]: ERROR DURING WINRM SEND INPUT - attempting to recover: WinRMError
WinRMError(u"\u041a\u0430\u043d\u0430\u043b \u0431\u044b\u043b
\u0437\u0430\u043a\u0440\u044b\u0442. (extended fault data: {u'fault_subcode':
'w:InternalError', u'fault_code': 's:Receiver', u'wsmanfault_code': '109',
'transport_message': u'Bad HTTP response returned from server. Code 500',
'http_status_code': 500})",)
Boris
# test out HTTPS, ignoring certificate verification
$username = "Username"
$password = ConvertTo-SecureString -String "Password" -AsPlainText -Force
$cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username, $password
$session_option = New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck
Invoke-Command -ComputerName server -UseSSL -ScriptBlock { ipconfig } -Credential $cred -SessionOption $session_option
Boris
с удаленной машинки получаю ipconfig
Boris
Sergey
Есть ощущение, что это не сильно про Ансибл. В текущей его реализации win-люди должны страдать: даже для использования башсибла нужно страдать.
Timur
Vladislav 👻
Sergey
В интернетах. Объявление было в этом чате. На прошлой неделе в среду собирались.
Vladislav 👻
Что-то я пропустил 😕
Aleksey
Коллеги а если у меня хендлер состоит из 2 тасков они выполняются по очереди ?
Womchik
сначала второй, не?
Aleksey
мой вопрос про гарантии выполнения
Aleksey
я до этого не пробовал в хендлер несколько выносить
Max
Aleksey
ладно я проверил работает последовательно