Timur
Сейчас вообще новую концепцию коллекций сделали, которые по сути нивелируют необходимость в неявных зависимостях через main
Отделение Bereke Bank
Timur
Если проект сложный - проще все нужные зависимости в коллекцию внести и ставить все одним паком
Отделение Bereke Bank
там еще есть зависимости, в которые передаются vars-ы 😒
Timur
Коллекции можно где угодно
Отделение Bereke Bank
🤔 надо прочитать доку по другой диагонали
Отделение Bereke Bank
ну видимо буду решать в лоб. без ебучей меты. спасибо)
Timur
Install a collection from a private github repository ansible-galaxy collection install git@github.com:organization/repo_name.git
Anonymous
Ребята привет такой вопрос !!! # reboot system --- - name: Reboot server shell: sleep 2 && shutdown -r now && sleep 120 async: 1 poll: 0 ignore_errors: true - name: Waiting for server to come back wait_for: host: "{{ ansible_host }}" state: started port: 22 delay: 30 timeout: 6000 delegate_to: localhost become: false ignore_errors: true не отрабатывает вторая таска сразу (не дожидается когда машинка поднимется)
Николай
https://docs.ansible.com/ansible/2.9/modules/reboot_module.html
Vlad
+ лучше использовать reboot
Lamobot
Ребята привет такой вопрос !!! # reboot system --- - name: Reboot server shell: sleep 2 && shutdown -r now && sleep 120 async: 1 poll: 0 ignore_errors: true - name: Waiting for server to come back wait_for: host: "{{ ansible_host }}" state: started port: 22 delay: 30 timeout: 6000 delegate_to: localhost become: false ignore_errors: true не отрабатывает вторая таска сразу (не дожидается когда машинка поднимется)
- name: "Restart server" become: yes shell: "sleep 2 && /sbin/shutdown -r now" async: 1 poll: 0 ignore_errors: true - name: "Check for restart" wait_for: host: '{{ (ansible_ssh_host|default(ansible_host))|default(inventory_hostname) }}' state: started search_regex: 'OpenSSH' port: '{{ ansible_port|default(22) }}' delay: 30 sleep: 15 timeout: 600 msg: "Couldn't connect to host with ssh after restart!!!" vars: ansible_connection: local
Anonymous
- name: Reboot a slow machine that might have lots of updates to apply reboot: reboot_timeout: 180 А как он проверяет что машинка завелась или ему надо прямо команду скармливать какой тестить ?
Anonymous
Ждёт тайм-аут и запускает следующую таску
тоесть он сам не чекает ок или нет
Отделение Bereke Bank
Хотя стоп. Пижжу
Отделение Bereke Bank
Не помню
Lamobot
По умолчанию - команда whoami
Григорий
подскажите фильтр распарсить строку в список
Alex
split
Viktor
Коллеги, совершенно случайно не существует ли плагина/фичи, которая издавала звук в консольке после проигрыша плейбука? А то поставишь исполняться, уйдешь пить чаек, вернешься и забудешь, что у тебя там что-то крутилось
Sergey
Макбук?
Viktor
Макбук?
yep. Что-то в iterm можно вкрутить?
Gleb
https://docs.ansible.com/ansible/2.9/plugins/callback/say.html#say-callback
Sergey
https://docs.ansible.com/ansible/latest/collections/community/general/osx_say_callback.html 😁
Viktor
класс, спасибо
Sergey
ебануться
да, доку перелопатили, теперь сразу на коллекцию указывает
Alexey
Привет всем, не подскажите как я могу использовать несколько переменных при synchronize ? Хочу с локальный машины отправить на удаленную, каталог файлов - но не весь, а выборочно. Как можно указать несколько переменных ?
Unknown
подскажите пожалуйста, как исправить можно
V 🏴‍☠️
Опция -К
Unknown
с ней просит вести пароль ssh, хотя я делал ключ
V 🏴‍☠️
Он просит пароль для повышения привилегий через sudo, а не пароль ssh
V 🏴‍☠️
Хотя я бы посмотреть на плейбук/роль/настройки сперва
Alex
больше скриншотов!!!
Unknown
когда я ввожу --ask-become-pass то я ввожу пароль и все запускается
V 🏴‍☠️
Наверняка надо в таск с index.html тоже become прикрутить. Ну или убрать везде и запускать с -b
V 🏴‍☠️
Ну а пункт номер 0 - почитать документацию
Unknown
сейчас попробую, спасибо
Sergey
Пункт -1 - почитать правила, которые не приветствуют скриншоты вообще.
Sergey
Ksp вместо скриншотов залей логи на пастбин или сам их удали.
Sergey
🙏🏻 👍
Dan
что-то не получается нагуглить - надо сделать wait_for, но если не дождусь - продолжить выполнение следующих тасков а не выпадать. ignore_errors кмк не подходит, потому что не будет ждать таймаута и сразу продолжит
Dan
или я неправ?
Dan
Почему не будет ждать?
потому что при первом же фейле продолжит (я не проверял еще)
Lamobot
потому что при первом же фейле продолжит (я не проверял еще)
Это всё внутренние фейлы. Пока не отработает до timeout'а
Dan
- name: wait for DRAIN to complete shell: | journalctl -u my-server --since "1 minute ago" | grep ' DRAINED:' retries: 300 delay: 1 register: drain_result until: drain_result.rc == 0 ignore_errors: true
Dan
как-то так? ^^
Dan
Это не wait_for :)
да, пардон, но принцип тот же должен быть
Dan
жду сообщения в логе, и если оно проскакивает продолжаю. Тяну до таймаута, и если он пришел - все равно продолжаю
Dan
Будет ждать
буду тестировать :)
Lamobot
буду тестировать :)
Тестанул - будет ждать :)
Dan
супер, спасибо :) тогда пушну в гит, подожду пока тесты на автомате пройдут
Eldar
Добрый день, прошу помощи по следующему вопросу. Можно ли написать плейбук, который выполняет работу последовательно хост за хостом и в случае ошибки на одном из хостов выполняет ролбек на всех задействованых ранее в работе плейбука хостах?
Sergey
Lamobot
По идее для этого нужен свой strategy plugin + _все_ модули должны этот самый роллбэк поддерживать (niet).
На мой взгляд, это один из самых главных недостатков ансибла - невозможность откатится на начальное состояние :)
Eldar
Ясно, спасибо за помощь.
Sergey
На мой взгляд, это один из самых главных недостатков ансибла - невозможность откатится на начальное состояние :)
Ну если вспомнить про идемпотентность, то всё становится на свои места. Откат должен реализовываться внутри модулей, чтобы вызов был атомарным (состояние системы либо совпадает с описанным, либо прежнее). Но для этого надо слишком много кодить, поэтому авторы модулей, как правило, не заморачиваются.
Sergey
Плюс нередко "на Ансибле" пишут какие-то именно процессные (читай "императивные") вещи, а это тем более вот так вот не работает.
Eldar
Если вся конфигурация создается ансиблом, то все просто. Накатываешь предыдущую версию плейбука с ролями - и все.
Это тестовое задание от работодателя, в задаче необходимо написать "скрипт с ролбеком" я решил уточнить возможно ли в один плейбук всунуть установку и ролбек. Сделаю разными ролями.
Gleb
https://github.com/ansistrano/rollback
Gleb
видел я тут одних ребят ^
Timur
Да там говно какое-то
Timur
Самое близкое, что есть у ансибла на тему роллбэка, это конструкция из block/rescue