Anonymous
К сожалению, хорошего мало :(
Anonymous
Но живут же как то :)
Anonymous
Сложно что-то писать в чате. Любая неточность, двойное трактование сообщений. Сразу наказание и кара. Какая то агрессивная среда.
George
Не пиши. Делов-то
Anonymous
Не пиши. Делов-то
Мысль недостаточно понятна. Прошу более понятно и однозначно написать. Т.е. недостаточно токсичности? нужно еще грязными ногами и руками вломиться и спровоцировать?
Aleksey
как же звали прошлую реинкарнацию John. совсем забыл.
Anonymous
Нет желания продолжать диалог. Сейчас или когда-нибудь потом. Мне хватило. Откланиваюсь.
Timur
group_by
Lamobot
Этого вполне достаточно. https://docs.ansible.com/ansible/latest/collections/ansible/builtin/group_by_module.html
Grek 🇺🇦
ну, как обычно - есть вариант написать кастомный модуль для фактов, и тогда можно обойтись group_by в этой задаче влюбом случае готового решения нет и надо тчо-то придумывать
Dnzl
Всем привет! Подскажите ставлю модуль pexpect, затем перезагружаю сервер, но после перезагрузки дальше не выполняется модуль по работе с pexpect, а вот когда снова запускаю плейбук на данный сервер то pexpect срабатывает.В чем может быть проблема?почему сразу не выполняется в плейбуке после перезагрузки сервера.?
Anonymous
Без кода вряд ли, что получится.
Anonymous
Проблема то понятна, но "примера реализации нет".
Anonymous
И зачем перезапускайте сервер?
Anonymous
Я думаю, более опытные коллеги ответят на ваши вопросы.
Dan
Концепт порочен разделением конфигурирования и установки одного и того же софта на разные роли.
софт один, мастер эта нода или нет, на данный момент - не функция версии софта а просто свич в конфиге.
Dnzl
И зачем перезапускайте сервер?
Чтобы pexpect модуль заработал на сервере (он только после перезагрузки работать начинает)
Sergey
Чтобы pexpect модуль заработал на сервере (он только после перезагрузки работать начинает)
Это не винда, магия отключена. Скорее всего, модуль заработает в новом плее (Python обнаружит его при новом подключении). Но есть стойкое ощущение, что это - костыль. А как вообще выглядит первоначальная задача?
Dnzl
Это не винда, магия отключена. Скорее всего, модуль заработает в новом плее (Python обнаружит его при новом подключении). Но есть стойкое ощущение, что это - костыль. А как вообще выглядит первоначальная задача?
Мне нужно на сервере с помощью pexpext выполнить настройку grub, вот и я установливаю этот модуль, но он доступен только при повторном выполнении плейбука:((
Dnzl
Попробуй после установки - meta: reset_connection
Спасибо большое, обязательно попробую. Подскажи а что это делает?
𝔹𝕠𝕣𝕚𝕤
Переустанавливает ssh соединение
𝔹𝕠𝕣𝕚𝕤
По идее то что тебе и нужно
Dnzl
Отлично,спасибо, не знал про такой модуль
Dnzl
Переустанавливает ssh соединение
А в чем сущность этого модуля? Просто не понимаю как работает тогда ансибль, по идее я же сервер перезагружаю и потом снова подключаюсь к нему, соединение по идее новое же
𝔹𝕠𝕣𝕚𝕤
А в чем сущность этого модуля? Просто не понимаю как работает тогда ансибль, по идее я же сервер перезагружаю и потом снова подключаюсь к нему, соединение по идее новое же
модуль мета это просто набор всяких служебных функций. Обычно ансибл прогоняет все таски в рамках одного соединения. Если необходимо пересоединиться чтобы применились какие-то новые настройки, то подходит - meta: reset_connection между тасками. Если же необходимо перезагрузить сервер, то есть reboot.
Dnzl
модуль мета это просто набор всяких служебных функций. Обычно ансибл прогоняет все таски в рамках одного соединения. Если необходимо пересоединиться чтобы применились какие-то новые настройки, то подходит - meta: reset_connection между тасками. Если же необходимо перезагрузить сервер, то есть reboot.
Ну вот я ставлю на сервере pexpect, потом модулем ребут перезагружаю его, и пытаюсь в этом же плейбуке выполнить действия с помощью pexpect и мне пишет что pexpect не установлен. А потом если я снова запускаю плейбук, то все срабатывает .
𝔹𝕠𝕣𝕚𝕤
Может он в какие-то пути прописывается?
Lamobot
Да я вот тоже не пойму почему он сразу не срабатывает после установки
Может ошибки будут? После установки, после рестарта и после реконнекта?
Dnzl
так ошибка только о том что нет модуля pexepct и дальше не выполняются модули с использованием pexpect
checkdiff
Всем привет! Подскажите ставлю модуль pexpect, затем перезагружаю сервер, но после перезагрузки дальше не выполняется модуль по работе с pexpect, а вот когда снова запускаю плейбук на данный сервер то pexpect срабатывает.В чем может быть проблема?почему сразу не выполняется в плейбуке после перезагрузки сервера.?
Куда ставите, в корневой python? Точно на удаленный хост? Его именно ansible не видит, т.е. на хосте он есть? Может быть модуль работает по принципу template и выполняется локально, на каких-то стендах отрабатывал модуль вообще?
Sergey
можете подсказать есть ли у ансибл какое то решение по запуску плейбуков через апи
Sergey
конечно можно сделать что то свое но может что то есть подобное
Отделение Bereke Bank
AWX
Отделение Bereke Bank
Но там много ебли
Div
можете подсказать есть ли у ансибл какое то решение по запуску плейбуков через апи
поищите в истории группы. тут уже обращались с подобным вопросом и даже были ответы с рецептами
Vitalii
Есть варианты не показывать ошибку, если есть rescue?
Дивопсина сутулая породистая
Доброго времени суток! Ребят не подскажете как сделать 2 split в выводе debug? Есть такая конструкция --- - name: Nginx conf Checker hosts: test become: yes become_method: sudo become_user: root tasks: - name: Checker command: ls -ll /etc/nginx/sites-enabled register: command_result - debug: msg: "{{ command_result.stdout_lines[1:].split('->')[0] }}" Ловлю такую ошибку fatal: [test]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'list object' has no attribute 'split'\n\nThe error appears to be in '/main_ansible/utilities/nginx_conf_getter.yml': line 14, column 7, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n - debug:\n ^ here\n"} Хочу каждый элемент массива второй раз засплитить
Grek 🇺🇦
ты же обращаешся через dot notation к элементам\атрибутам объекта. используй фильтры через пайп |
Дивопсина сутулая породистая
ты же обращаешся через dot notation к элементам\атрибутам объекта. используй фильтры через пайп |
Можно подобный пример то я что-то вурить не могу как через апйпы реализовать -_-
Дивопсина сутулая породистая
а какая тут вообще задача решается?
У меня есть N-ное количество серверов с nginx, хочу стянут все активные конфиги, т.к. разрабы накидали их в разных местах. Вот я и хотел получить список симлинков и выдернуть местоположений файлов и потом дернуть их)
Grek 🇺🇦
https://stackoverflow.com/questions/53221351/get-the-full-path-of-the-symlink-target-in-ansible
Дивопсина сутулая породистая
Bral Bral
Столкнулся со следующей проблемой. Пытаюсь запустить на windows через win_shell или win_command dask-scheduler. Но проблема в том, что плейбук зависает ( поскольку при запуске dask-scheduler он перехватывает контекст исполнения). Пытался через 'start "" dask-scheduler ', но в таком случае он не создает новую cmd ( как предполагалось ) , а запускает и сразу выходит ( процесс не остается ) . Воообще каким образом запускать задания, которые предполагают исполнение, пока пользователь сам не прервет .
Bral Bral
Что такое dask-scheduler?
https://dask.org/ Да тут не важно, по-большому счету. имелось ввиду любой долгоиграющий процесс , например ping -t. Плейбук дальше не пойдет, пока не дождется завершение текущего задания, а асинхронно запускать не смысла, потому что я не знаю какой таймаут поставить. Он может работать и неделю, и месяц.
George
Ансибл как будто не для этого
M
А что если есть какая-то обёртка для этого
M
Но на Винде вообще странно да
M
А вы отменить не можете
Bral Bral
А вы отменить не можете
Мне отменять не нужно, нужно запустить - и пусть оно выполняется (висит в процессах) - а плейбук успешно завершится .
Bral Bral
command &
это в линуксе же
M
А вообще наверно будет проще сделать виндоавй сервис
M
И ему дать старт
M
А там пусть живёт или умрет
M
Нам уже не важно
M
Вообще может есть смысл поискать аналог для юатника или пошика
M
Хз
Bral Bral
Зачем там ансибл вообще?
ну вот представьте - есть N нод с дасками, и нужно оперативно обновить окружение / загрузить новые скрипты и тд. собенность в том, что все это не в докерах, а на хостах. Хотелось бы все оставливать ( проблем нет -> получаю процесс и убиваю) . обновлять ( закинуть новые скрипты тд и тп), и запускать. А вот с запуском такие проблемы и получаются.
Bral Bral
А вообще наверно будет проще сделать виндоавй сервис
да, вы правы. с сервисом будет проще.
Bral Bral
но все равно как-то не понятно, почему банальное 'start "" ' не открывает новую cmd , а делает это где-то в бекграунде и сразу завершает.
Sergey
но все равно как-то не понятно, почему банальное 'start "" ' не открывает новую cmd , а делает это где-то в бекграунде и сразу завершает.
Потому что это не Linux, а Windows. В Windows программы для исполнения прикрепляются к рабочему столу. Кстати, сервисы - тоже, там ещё рабочий стол носит своё хитрое название, и его видно, когда отбражается экран входа в систему. Например, можно прямо на нём отобразить калькулятор.
Sergey
Только это всё здесь оффтоп.
Aleksey
кто нить уже проверял ансибл на 3,9 норм работает ?
Александр
https://dask.org/ Да тут не важно, по-большому счету. имелось ввиду любой долгоиграющий процесс , например ping -t. Плейбук дальше не пойдет, пока не дождется завершение текущего задания, а асинхронно запускать не смысла, потому что я не знаю какой таймаут поставить. Он может работать и неделю, и месяц.
Это Windows. Ansible работает с виндой через WinRM, под капотом powershell. Загугли ради интереса запуск интерактивных приложений в сеансе WinRM, узнаешь много нового и странного :) Как вариант, можешь сделать банально батник на запуск своего приложения, создать задачу в планировщике винды, а уже в плейбуке ансибла запускать её модулем "win_shell" через "schtasks" (командлет управления планировщиком винды) с соотв. параметрами. Тогда любое интерактивное приложение стартанет и будет работать, как будто ты залогинился в сеанс и запустил этот экзешник. А ансибл продолжит играть плейбуку, потому как получит от планировщика флаг о завершении таска. Костылюга конечно, но работать будет.