Sergey
:( комменты потеряны
Комменты потрачены прямо при разборе при переходе от токена к токену. https://github.com/yaml/pyyaml/blob/master/lib3/yaml/scanner.py#L752
Aleksey
ибо их не приклеить ни к чему
Sergey
ну вот да, спека говорит, что они - оторви и выбрось
manefesto
подскажите как передать имя хоста в такой конструкции ansible-playbook -i "8.8.8.8," playbook.yaml я так понимаю через extra-vars ?
Николай
-i "8.8.8.8," а чё это вы такое делаете?
manefesto
-i "8.8.8.8," а чё это вы такое делаете?
А не в курсе что можно не использовать inventory файл ?
Николай
Вы нормально вопрос не сформулировали, на уточняющие вопросы отвечать не хотите. Я много чего в курсе.
manefesto
Мне надо для одного Хоста выполнить плейбук. Иногда бывает что надо раскатить zabbix при этом не хочу править inventory. Или для примера поставить docker. Но если с docker все просто, то для zabbix надо задать имя хоста которое берётся из inventory чтобы потом можно было использовать при добавлении Хоста в мониторинг.
manefesto
Ладно. Сам разберусь. Спасибо за помощь
manefesto
если кому будет интересно то можно делать так ansible-playbook -i inventory "x.x.x.x," -e "inventory_hostname=example.com" playbook.yaml я так понимал что у extra_vars в данном случае приоритет выше
manefesto
ну да, как в питоне же =)
manefesto
во, LEGB
Zamil
Zdarov rebyata
Zamil
Esli u nas est bash scripting to zacem nam ansible?
Zamil
Kakie premushestva u ansible ?
Alex
Kakie premushestva u ansible ?
если у вас баш выполняет все необхоимые задачи - то ансибл вам не нужен
Salem
😂👍
Salem
зачем баш, пиши сразу в машинных кодах
Zamil
Xoroshie otveti))
Zamil
Ya noviy,poetomu sprahivayu
Zamil
))
Sergey
Xoroshie otveti))
Прожигать стулья тут никто не будет - группа-то старая, ей уже >3 лет
Alex
подскажите, я что то упускаю - debug: msg="{{ pull_docker_images_result.rc }}" - fail: msg="{{ pull_docker_images_result.rc | default(1, true) == 0 }}" почему срабатывает default фильтр, если pull_docker_images_result.rc возвращает 0 ?
Alex
если убираю default
Alex
то все отрабатывает нормально
Alex
Я не помню, чтобы кто-то тут по фотографии лечил. Логи в студию.
там все банально TASK [itests/jfmc : Pull docker images] *** changed: [app_master] => changed=true cmd: docker-compose pull -q delta: '0:02:17.403181' end: '2020-04-24 09:48:20.626684' rc: 0 start: '2020-04-24 09:46:03.223503' stderr: '' stderr_lines: <omitted> stdout: '' stdout_lines: <omitted> TASK [itests/jfmc : debug] *** ok: [app_master] => msg: '0' TASK [itests/jfmc : fail] *** fatal: [app_master]: FAILED! => changed=false msg: False
Pavel
Подскажите пожалуйста как в плагине ansible для jenkins передать аргумент --check
Vlad
extras: “—check”
Sergey
подскажите, я что то упускаю - debug: msg="{{ pull_docker_images_result.rc }}" - fail: msg="{{ pull_docker_images_result.rc | default(1, true) == 0 }}" почему срабатывает default фильтр, если pull_docker_images_result.rc возвращает 0 ?
Скорее всего, у тебя тут что-то напутано. Нулём может быть и результат сравнения, если ты там ожидаешь bool - пропусти через фильтр bool.
Alex
Скорее всего, у тебя тут что-то напутано. Нулём может быть и результат сравнения, если ты там ожидаешь bool - пропусти через фильтр bool.
debug: msg="{{ pull_docker_images_result.rc == 0 }}" вот так я получаю bool. Вопрос относительно фильтра default почему он так себя ведет. Такое ощущение, что он видит 0, считает это как False и подставляет 1. В результате выражение rc == 0 возвращает False
Sergey
Воткни, посмотри на выхлоп.
Alex
Фиг там плавал. Bool ты получишь в результате использования фильтра bool.
конкретно сейчас не важно, без фильтра default оно отрабатывает нормально. В принципе и с default тоже нормально, но только если убрать второй параметр true {{ pull_docker_images_result.rc | default(1) == 0 }} вот так норм
Pavel
extras: “—check”
Спасибо!
Sergey
:-) Спасибо за напоминание :-)
David
как запустить таск только первый раз, если это цикл?)
David
Ничего не понятно
в плейбуке делается include модуля в котором описано много тасков которые устанавливают пакеты, и этому модулю передается dict, там есть таск который надо запустить только самый первый раз, как запустить только один раз?
Desdichado
run_once: true
checkdiff
...пришлось сначала написать плагин для склеивания словарей/списков в словарь/список :-D
Кстати в 2.10 nested merge со списками завезли. https://github.com/ansible/ansible/issues/45556#issuecomment-420649317
Sergey
Кстати в 2.10 nested merge со списками завезли. https://github.com/ansible/ansible/issues/45556#issuecomment-420649317
Лол. Сложение списков, положим, и так работало, без нагораживания огорода. Это какой-то там вариант combine починили - ну такое.
checkdiff
Лол. Сложение списков, положим, и так работало, без нагораживания огорода. Это какой-то там вариант combine починили - ну такое.
Да, сложение списков работало. Но мердж словарей со списками всегда замещал) но я не угадал про склейку)
Sergey
Igor
какой правильный идемпотентный способ закомментить строку в файле? lineinfile же не используют уже, да?
Aleksey
правильный отрендерить файл целиком. идемпотентный lineinfile. иногда blockinfile
David
"stdout": "rm: невозможно удалить '/usr/local/bin/Telegram'$'\\r\\n': Нет такого файла или каталога\r\n", "stdout_lines": ["rm: невозможно удалить '/usr/local/bin/Telegram'$'\\r\\n': Нет такого файла или каталога"]} как удалить из зарегистрированной переменной знаки \r\n ??
David
нашёл, есть фильтр trim
Ivan
+1
А есть опыт установки pyenv через ансибл, не создавая всякие .pyenv/bash.rc в хомяке ансибл-юзера?
George
ты хочешь ансиблом управлять окружениями питона или наоборот ?
Ivan
Вообще, я хочу притащить нужную версию питона в нужную мне папочку ансиблом. Посмотрел - -вроде pyenv делает это легче, чем мучаться с разными пакетами в разных дистрах. Мне не надо по факту переключать ничего ни у кого, просто бинарники с либами, откуда я мотом построю вирт.окружение у себя
Ivan
Но меня смущает, что почти все роли начинают встраиваться в хомяк юзера, в башскрипты и прочее Вот и спрашиваю, не делал ли кто-то просто часть "принести и поставить в /folder"
Ivan
Может, зря смущает?
George
> что почти все роли начинают встраиваться в хомяк юзера, в башскрипты и прочее ?????
George
может проблема не в самой идее, а в ее имплементации ? Думаю, что ты зря смущаешься и просто напиши себе from scratch плейбук
George
это как раз тот случай - когда лучше самому сделать, а в чужом черпать вдохновение
Ivan
Я и пишу свой. Просто так работает pyenv, ему надо перехватывать обращения к пайтону, поэтому он в path встраивается и во всякие баш-профайлы.
Ivan
я видел, что тут это назвали лучшим вариантом, чем трогать системный питон. Поэтому и спросил, может уже кто-то решал эту проблему. нет, так нет, покажу потом на ревью
Anonymous
Все остальные это бла, бла
Anonymous
Есть 7% случаев, когда можно изменять системный python. И все они никак не связаны с ansible
Ivan
Есть 7% случаев, когда можно изменять системный python. И все они никак не связаны с ansible
Вас понесло не в ту степь Мне надо принести нужную версию питона, не гадя никому в хомяк, вот и всё
Anonymous
Если речь про линукс, то из коробки. Если про aix и подобное, то мне тебя жаль
Anonymous
Сорялис туда же
Nikolay
Вообще, я хочу притащить нужную версию питона в нужную мне папочку ансиблом. Посмотрел - -вроде pyenv делает это легче, чем мучаться с разными пакетами в разных дистрах. Мне не надо по факту переключать ничего ни у кого, просто бинарники с либами, откуда я мотом построю вирт.окружение у себя
Можно попробовать настроить несколько версий python на сервере как по ссылке. pip install будет ставить пакеты в хомяк. https://hackersandslackers.com/multiple-versions-python-ubuntu. В ansible_python_interpreter указываешь нужный интерпретатор на remote машине. Правда пакет python-apt есть только в deb репозитории системы и зависящий от системного python. Модуль apt будет работать только для системного python. Не нашел как просто это обойти. Менеджить кучу версий питонов в системе такое себе. Такой способ хорош, только если для разработки и если все нужное можно поставить через pip в хомяк.
Anonymous
Из коробки не.
Какой такой дистрибутив линукс без питона 2.7?
Anonymous
Да, и под python3 ансибл вполне живет. Я не заметил разницу
Anonymous
По своим кастомным пакетам заметил, а по пакетам ансибл нет