Sib
проблема не в доступности всех нод с awx. я не могу запускать с awx напрямую по множеству факторов. к примеру - необходимо генерировать конфиги которые пришли из различных сборок. - эти плейбуки и конфиги на remote_ansible_host затем постоянно используются внутри площадки для управления. - сложность текущей реализации продукта, речь идёт о сотнях плейбуках... Он не может запуститься с awx
George
все преодолимо
Alex
настройка ProxyJump в .ssh/config
Не во всех дистрах обновился ссш, remotecommand может лучше
Sergey
все преодолимо
Если не тупо "брать под козырёк", а работать над архитектурой.
Sib
да, преодолимо, речь идёт примерно о 1.5 лет разработки. Нужно быстрее
Sib
паралельно работаем над этим
Alex
Со странным не работаем (см. правила группы)
Ну так помоги парню, скажи что надо джампхост юзать
Sergey
Уже сказано. Могу только предложить перечитать правила.
Max
да, преодолимо, речь идёт примерно о 1.5 лет разработки. Нужно быстрее
метлу в руки, отодвигаем шторку в углу, там 2.5м куча разлагающихся трупов. нос зачесался, снимаем притивогаз....
Max
не важно, лучше пометем в угол и зашторим
Timur
Либо вы криво формулируете задачу, пытаясь решить проблему, которая решается элемантарно стандартнуми средствами, либо вы просто используете не по назначению имеющийся инструментарий. Т.е. как вариант - вашу задачу вообще не нужно решать с помощью ансибла, а использовать другие инструменты. Определитесь
Sib
ещё раз, вопрос был не об этом. Вопрос был в том, почему не получается через ssh запустить плейбуку. Направление я сейчас нашёл, буду копать.
Alex
да, преодолимо, речь идёт примерно о 1.5 лет разработки. Нужно быстрее
Берешь код и тупо запускаешь его через Джамп хост и переписывать ничего не надо
Timur
поверьте, я понимаю это, и сам не рад сложившейся ситуации. но есть ограничения и требования. Не будем сводить дискусию в это, потому как без полного описания всего, оно бесмыслено
Пункт 8 правил группы: Твои ответы в духе «а мне это ну вообще никак не подходит, потому что "у нас" нельзя X, Y или Z» никому не интересны. Либо ты переводишь это в технические требования («по условиям задачи я не могу использовать A, B, C»), либо уходишь тихо плакать в уголок или писать заявление на увольнение.
Sib
так я задал изначально вопос не про это, а просто интересовался другим опытом или помощью в направлении
Max
Всё равно что молотком задницу подтирать
кстати нормально. только в туалетную бумагу обернуть. особенно если ручки короткие как у тиранозавра.
Timur
так я задал изначально вопос не про это, а просто интересовался другим опытом или помощью в направлении
Помощь оказана. Направление, в котором вы идете, изначально тупиковое
George
самое простое - доставить файлы плейбуков
George
далее через command на удаленном хосте запустить ансибл
George
но это костыль. Правильно - джампхост
Timur
самое простое - доставить файлы плейбуков
Тогда проще вообще ansible-pull юзать
Sib
Да, слышал, не подходит под требование заказчика
George
я предложил вариант - ключи не те, юзер не тот
Sib
всё, конструктив закончился, вопрос закрыт. Всем спасибо
Timur
Да, слышал, не подходит под требование заказчика
Тогда либо внятно формулируйте задачу (без заранее предложенных костылей), либо не разрушайте мозг
George
окружение (переменные) не так проброшены
George
телепатов тут, к сожалению, нет
Антон
подскажите пжлст, как выводить один слэш вместо двух? есть переменная, в которой передаётся команда при запуске контейнера. эта команда содержит слэши. энсибл всегда создаёт контейнер, в "Cmd": [] которого вместо одного слэша подставляются два
George
я не совсем проблему понимаю
George
дайте конкретный кусок плейбука. Вообще это логично - может где-то кавычки нужно поставить по-другому, или еще какая-либо банальщина такого же плана
Антон
пример: - name: "Create container" docker_container: name: "..." ... command: "... grep -Po 'inet \K[\d.]+' ..." ... на выходе получаю: ... "Cmd": [ "-c", "... grep -Po 'inet \\K[\\d.]+' ..." ], ...
Антон
я час пробую кавычки ставить по-другому и т.п. - упорно подставляются дублированные слэши
Timur
Обратный слеш внутри двойных кавычек - спецсимвол
Timur
Не используйте двойные кавычки в ансибле, если только не знаете, что именно они вам нужны
Timur
Для аргумента command модуля docker_container вообще не нужны кавычки
Антон
без двойных кавычек всё равно слэши дублируются. попробовал даже так: command: >- ... тоже дублируются. версия 2.7.9, кстати
Oleg
Есть следующий плейбук: - name: Play #1 hosts: hostname roles: - { role: some_role } - { role: role_that_will_fail } - name: Play #2 Задача: если выполнение play #1 фейлится, продолжить выполнение play #2 в зависимости от текста ошибки. Изменить роль role_that_will_fail - не вариант. Если сделать - { role: role_that_will_fail, ignore_errors: true}, то эффект немного не тот. Если во время выполнения таска возникает ошибка, то он просто скипается - такой вариант не подходит. Нужно, чтобы выполнение play #1 прекратилось, и начал выполняться play #2. Пришёл к следующему варианту: - name: Play #1 hosts: hostname tasks: - block: - include_role: name: "{{ item.role }}" loop: - { role: some_role } - { role: role_that_will_fail } rescue: - name: Make sure that error isn't fatal fail: msg: Cannot recover when: ansible_failed_result.msg != "Minor error, can continue" - name: Play #2 Как такой вариант? Или может всё-таки попроще можно? Или задумка вообще сама по себе не оч?
Oleg
роль, которая фейлится: почему ее нельзя починить?
Ну если в двух словах, то есть роль, которая разворачивает и проверяет, что сервис корректно запустился. Но для некоторых из них ошибки запуска можно пропустить, если они возникнут.
Max
жду.
Max
🤣
Oleg
Лучше оставить как есть, потому что этой ролью пользуются многие в нашей компании.
Max
(это подстава....)
xfs_repair
--- - name: test hosts: node1 tasks: - name: print copy: content: "{{ ansible_facts.default_ipv4.address}}\n" dest: /etc/motd
xfs_repair
получаю на выходе (u'192.168.11.131')
xfs_repair
как получить вывод без этой буквы "u"
Anonymous
Лучше оставить как есть, потому что этой ролью пользуются многие в нашей компании.
Так тем более стоит починить. Если совсем беда, то на уровне роли порешайте failure handling
xfs_repair
не поняд
Max
Oleg Kovalenko , вынесите роль в отдельную репу. дайте ей версию.
Max
потом, скажите всем как тянуть ее по версии - ее пользователям...
Max
потом почините роль, продвиньте версию вперед.
Max
в вашем плейбуке используйте новую версию.
Max
самый безопасный вариант - оставить старое (совместимое) поведение по умолчанию.
Max
в новой версии добавить переключатель на новое поведение.
Max
тогда даже старые плейбуки не сломаются.
Oleg
Окей, это в идеале. Текущий вариант - совсем не оч?
Max
Окей, это в идеале. Текущий вариант - совсем не оч?
да. потому что добавили мусор в код, и оставили корень зла.
Max
теперь другой джун это скопирует
Oleg
ну я тоже джун по ансиблю, поэтому и спрашиваю )
Max
и полетят клочки по закоулочкам.
Max
теперь другой джун это скопирует
в другом плейбуке, который ты не контролируешь.
Max
да. потому что добавили мусор в код, и оставили корень зла.
корень зла - роль не позволяет функционал.
Max
в роли решение данной проблемы - 2 строки.