Evgeniy
ща проверим
Vladislav 👻
Только именно такой формат записи обычно указывает только на env
Max
берёт темплейт roles/myrole/templates/mytemplate, подставляет в него переменные из roles/myrole/defaults/main.yml. на выходе test.txt с готовым содержимым
да, благодар) конструкция не привычная, да и переменных в defaults нет, там данные из инвентаря
Maxim
FAILED! => {"cache_update_time": 1561990382, "cache_updated": false, "changed": false, "msg": "'/usr/bin/apt-get -y -o \"Dpkg::Options::=--force-confdef\" -o \"Dpkg::Options::=--force-confold\" install 'aptitude' 'git' 'docker.io'' failed: E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)\nE: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?\n", "rc": 100, "stderr": "E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)\nE: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?\n", "stderr_lines": ["E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)", "E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?"], "stdout": "", "stdout_lines": []}
Maxim
Кто подскажет, что делать?
George
Написано же )
Maxim
Поискал, нифига не понял)
Andor
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable) E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?проблема выходит за рамки этого чята
George
У тебя убунта качает обновы, пока ты применяешь плейбук
George
Варианты: 1. Подождать 2. Убить процессы apt, dpkg
George
Возможно ещё unattented update
Maxim
понял
George
👍
Max
Возможно ещё unattented update
или кто-то еще подключается к этой убунте (двойной параллельный запуск) плейбука или разных плейбуков, в конце вызывающих apt/dpkg
Vladislav 👻
Вопросик, на сколько адекватно один хост использовать в разных инвентори?
Vladislav 👻
Суть проста, мне надо два контейнера поднять, один прод, второй дев
Vladislav 👻
Моральную сторону вопроса "один хост" предлагаю опустить сразу
Timur
Главное, чтобы вы понимали, что делаете
Vladislav 👻
а на грабли в таком сетапе кто-нибудь нарывался?
George
Если ты будешь менять общую конфигурацию, то грабли будут
George
Если только доливать независимые части - то ок
Vladislav 👻
да я хотел только докер контейнер поднять, порты поменять в рамках инвентори и радоваться, пока навскидку грабли только, если оба инвентори сразу катить буду
Vladislav 👻
но этот вариант, по теории, можно разрулить просто прописав дополнительный CNAME
Alexander
Товарищи, привет вам. Подскажите, пожалуйста, по обработке ошибок. Вот есть модуль win_updates и простейший таск: win_updates: state: installed reboot: yes Если ОС просто требует установки обновлений, он отрабатывает без проблем. Но если ОС находится в состоянии, когда обновления уже установлены и требуется перезагрузка - задача подает в Failed.
Alexander
Alexander
Вот мне бы хотелось в этом случае перезагружать целевой сервер принудительно. Думаю, что надо юзать when_failed, но не могу сообразить как.
Alexander
when_failed: msg != "A reboot is required..." ?
Denis
failed_when: false используется чтобы таска не валилась
Denis
По идее да
Denis
И состояние failed можно попробовать прочитать, или stdout
George
Сколько таких пачек обновлений может прилететь ?
Alexander
failed_when: false используется чтобы таска не валилась
Ну да, так-то оно пошло, но ведь если будет реальная ошибка, оно не отработает.
Alexander
Сколько таких пачек обновлений может прилететь ?
Да дело не в пачках, а в том, что если кто-то руками или чем-то еще установил обновления на ОС и она ждёт перезагрузки, win_updates модуль падает в Fatal.
George
Да дело не в пачках, а в том, что если кто-то руками или чем-то еще установил обновления на ОС и она ждёт перезагрузки, win_updates модуль падает в Fatal.
Смотри. Вот ты поставил эти обновления. Они потребовали ребут. Перезагрузился. Дальше продолжаешь ставить ? А если не все обновы установились ?
Denis
Ну да, так-то оно пошло, но ведь если будет реальная ошибка, оно не отработает.
Поэтому нужно регистрировать переменную и проверять, что ошибка была "нормальная", иначе фейлиться
George
По идее должен быть отдельный флаг, что система требует ребута
George
Не при вызове этого модуля (чтоб его не фейлить лишний раз)
Alexander
Т.е. он смотрит сколько обновлений нужно поставить и будет перезагружаться пока не поставил всё, что есть.
Alexander
Вряд ли
Я проверял
George
Хм, интересно
Alexander
Не, ну, само собой, ему же надо статистику отправить на WSUS чтобы понять, есть ли еще обновления. Т.ч. если ему надо поставить на момент запуска 10 штук и между ними надо 2 ребута - он их сделает.
George
Т.е. проблема только вначале. Ну, как кажется, у него должен быть флаг - типа игнорируй ошибку и ребутай
Alexander
Но если он поставил 10, а потом оказалось, что WSUS еще 10 нашел - это уже в рамках следующего запуска плейбука
George
Да, в начале. ) И флага я не нашел.
Можешь им ишью написать )
George
Что типа глупость делают. Что если стоит флаг reboot, то эту ошибку не надо обрабатывать, а ребутать тачку и устанавливать обновы
George
Но это мое видение )
George
George
George
И чтоб не фейлить таску они предлагают http://ilovepowershell.com/2015/09/10/how-to-check-if-a-server-needs-a-reboot/
Alexander
И чтоб не фейлить таску они предлагают http://ilovepowershell.com/2015/09/10/how-to-check-if-a-server-needs-a-reboot/
Ну да, я уже думал так сделать - проверку необходимости ребута. Но решил попробовать с обработкой ошибок)
Sergey
Здесь хитрее, здесь требуется перезагрузка не "вообще", а "перед дальнейшей установкой апдейтов".
Sergey
Да дело не в пачках, а в том, что если кто-то руками или чем-то еще установил обновления на ОС и она ждёт перезагрузки, win_updates модуль падает в Fatal.
Это нормально, потому что мы про декларативность. Декларативность описывает: "все обновы установлены". Реальность не совпадает. Значит, фатально.
Alexander
Идеологически)
Sergey
Тру вей - не использовать винду (trollface.jpg) А если серьёзно, то такие штуки просто не ложатся в объектную модель ансибла. Она ведь предполагает, что у тебя есть модули - описания состояния, и всё бы ничего, но здесь вмешиваются side effects от установки обновления.
Sergey
Абстракция протекла 😞
Sergey
По-хорошему нужен пулл-реквест с флагом, говорящим: "перезагружайяподожду"
George
я про это и говорю выше
George
что вариантов два
Alexander
что вариантов два
Не использовать винду и пулл-реквест)
Sergey
И вот эту вот дряньку от установщика прямо в модуле обрабатывать..... но я плохо представляю, как должна машинеря асибла работать в случае винды o_O. Общие принципы вроде на месте, но вот использование PoSH вместо SSH - это прям ой.
George
1. reboot:yes - ребутаем, даже если надо сделать это сразу (до установки обнов, т.к. юзер нам разрешил) 2. имплементить отдельный флаг - ребутай, если не можешь поставить обновы
Sergey
Да, я больше ко второму варианту склоняюсь.
Alexander
Окей, спасибо, я понял. Буду думать.)
Timur
Ssh в новых версиях тоже завезли
Sergey
Ssh в новых версиях тоже завезли
Да, с этим согласен (https://docs.microsoft.com/ru-ru/windows-server/administration/openssh/openssh_install_firstuse). Но на картинке 2012R2, так что - нет, туда никто ничего не завёз.
Vlad
Есть старый порт от microsoft, работает в 2008r2/7: https://github.com/PowerShell/Win32-OpenSSH/wiki/Install-Win32-OpenSSH
[IPT] Dmitry
- block: - name: set playbook start_time fact set_fact: play_start_time: "{{ lookup('pipe','date \"+%Y-%m-%d %H:%M:%S\"') }}" ... any_errors_fatal: yes rescue: - include_role: name: telegram-error ребят, а почему такое может не падать на fatal? просто продолжает дальше выполнение
Lamobot
У тебя при ошибке срабатывает rescue, успешно выполняется и удаляет статус ошибки для плейбука