Nklya
ifconfig.co еще есть
Даня
господа, подскажите сеттинг, который делает вывод ошибок ансибла человекочитаемым
Даня
не могу вспомнить, как он называется
Даня
добавляется в ansible.cfg
Vadim
stdout callback = yml
Даня
чтоб stderr не был в одну строку
Даня
спасибо
Даня
stdout callback = yml
хм, странненько, я добавлял этот сеттинг, но в awx вывод все равно кривой
Vadim
хм, странненько, я добавлял этот сеттинг, но в awx вывод все равно кривой
так с пробелом и добавили или вспомнили что он пишется как stdout_callback = yaml?
Даня
вот в таком виде, все правильно stdout_callback = yaml
Vadim
алсо awx такое не поддерживает - https://docs.ansible.com/ansible-tower/latest/html/administration/tipsandtricks.html#using-callback-plugins-with-tower
Даня
лежит в директиве [defaults]
Даня
а, вот оно как
Даня
спасибо за инфо
manefesto
Мечтаю переехать с awx на jenkins
manefesto
убью много зайцев сразу
bebebe
Мечтаю переехать с awx на jenkins
переезжайте. полегчает
manefesto
ну вот, как раз на новую работу выйду, буду делать
manefesto
ничем не плох, просто jenkins закрывает более одной задачи
Tadeusz
Шляпой 😆
Vadim
и чем дженкинс так хорош?
manefesto
см.выше
bebebe
и чем дженкинс так хорош?
как минимум очень большим комьюнити с очень большим количеством плагинов (Это и плюс. и минус)
bebebe
как обычно.
bebebe
ну и изначально можно построить красивый процесс CI/CD
Vadim
ну и всякие дженкинсовские штучки типа "везде нужна ява"
bebebe
в целом, немного не корректно сравнивать awx, и jenkins
manefesto
мне надо строить CI, CD, поэтому awx будет лишним, будет лишь ansible для провижена
manefesto
и деплоя
bebebe
аминь.
Nataliia
Всем, привет. Ткните носом где почитать или помогите, пожалуйста, разобраться. Есть вот такой вызов модуля get_url - name: Download archive to server get_url: url: "{{ search.artifact.full_path }}" dest: "{{ app_deploy_artifact_path }}/{{ search.artifact.name }}" headers: "X-JFrog-Art-Api: {{ artifactory.api_key }}" checksum: md5:{{ search.artifact.actual_md5 }} timeout: "{{ fetch_artifact.timeout }}" force: yes register: fetch_artifact until: fetch_artifact.status_code is defined and fetch_artifact.status_code == 200 retries: "{{ fetch_artifact.retries }}" delay: "{{ fetch_artifact.delay }}" when: search.artifact.remote До добавления until все работало нормально. Сейчас при попытке скачать архив, который уже присутствует на сервере падает 'file already exists'. Но мне казалось что в этом случае из-за checksum с force скачивание архива должно скипаться, как написано в доке. Почему until портит картину?
Nataliia
2.4.4
Kirill
jenkins + zuul вообще очень вкусно
Sergey
в смысле - я умею читать доку, как звучит изначальная задача?
Nataliia
Удаленность между сервером артифактори и сервером на который скачивается архив достаточная большая, возможно периодическое отваливание запроса по таймаута. Заказчик устанавливает кол-во попыток скачивания.
Vladislav 👻
на 3.7 питоне не заводили ansible?
Vladislav 👻
я пока вижу, что привязка к python3.6 и на 3.7 ansible не ставится через pip
Vladislav 👻
хочу
Gleb
хотя и по аватарке понятно что наркоман :D
Vladislav 👻
ок, а по теме есть что написать?
Gleb
зачем?
вот же
Vladislav 👻
уже обсудили
Vladislav 👻
по писать в чат можно и в других флудильнях
Sergey
уже обсудили
Ансибл на неподдерживаемых версиях питона = ССЗБ
Sergey
нечего тут обсуждать, в общем-то
Nklya
я бы продолжил до ансибл на третьем питоне = ССЗБ
Sergey
я бы продолжил до ансибл на третьем питоне = ССЗБ
А я бы в доку заглянул: https://docs.ansible.com/ansible/latest/reference_appendices/python_3_support.html
Nataliia
Вот код: https://github.com/ansible/ansible/blob/v2.4.4.0-1/lib/ansible/modules/net_tools/basics/get_url.py Судя по коду и сообщению об ошибке, твой аргумент force нехорош.
Но в случае если включен checksum, чтобы скипалось скачивание нужно force включать. Или я не правильно понимаю текст? Additionally, if a checksum is passed to this parameter, and the file exist under the C(dest) location, the I(destination_checksum) would be calculated, and if checksum equals I(destination_checksum), the file download would be skipped (unless C(force) is true)
Nklya
я знаю что умеет, но не думаю что настолько хорошо как со вторым. плюс, что делать с комбинациями инфраструктуры с 2 и 3 питоном на хостах?
Nataliia
а включите побольше дебага, что оказывается в fetch_artifact в первом проходе таски, при наличие файла на сервере?
И при наличии until, и при отсутствии fetch_artifact возвращает ok: [group1-host] => { "changed": false, "dest": "/data/archive.zip", "gid": 31861, "group": "group1", "invocation": { "module_args": { "attributes": null, "backup": null, "checksum": "md5:b4851d48c2a45d9d53116db039f630a4", "client_cert": null, "client_key": null, "content": null, "delimiter": null, "dest": "/data/archive.zip", "directory_mode": null, "follow": false, "force": false, "force_basic_auth": false, "group": null, "headers": "X-JFrog-Art-Api: xxx", "http_agent": "ansible-httpget", "mode": null, "owner": null, "regexp": null, "remote_src": null, "selevel": null, "serole": null, "setype": null, "seuser": null, "sha256sum": "", "src": null, "timeout": 10, "tmp_dest": null, "unsafe_writes": null, "url": "http://xxx.ru/archive.zip", "url_password": null, "url_username": null, "use_proxy": true, "validate_certs": true } }, "mode": "0664", "msg": "file already exists", "owner": "perf", "size": 475190739, "state": "file", "uid": 31861, "url": "http://xxx.ru/archive.zip" Только в случае с until такой возврат интерпретируется как ошибка.
Sergey
И при наличии until, и при отсутствии fetch_artifact возвращает ok: [group1-host] => { "changed": false, "dest": "/data/archive.zip", "gid": 31861, "group": "group1", "invocation": { "module_args": { "attributes": null, "backup": null, "checksum": "md5:b4851d48c2a45d9d53116db039f630a4", "client_cert": null, "client_key": null, "content": null, "delimiter": null, "dest": "/data/archive.zip", "directory_mode": null, "follow": false, "force": false, "force_basic_auth": false, "group": null, "headers": "X-JFrog-Art-Api: xxx", "http_agent": "ansible-httpget", "mode": null, "owner": null, "regexp": null, "remote_src": null, "selevel": null, "serole": null, "setype": null, "seuser": null, "sha256sum": "", "src": null, "timeout": 10, "tmp_dest": null, "unsafe_writes": null, "url": "http://xxx.ru/archive.zip", "url_password": null, "url_username": null, "use_proxy": true, "validate_certs": true } }, "mode": "0664", "msg": "file already exists", "owner": "perf", "size": 475190739, "state": "file", "uid": 31861, "url": "http://xxx.ru/archive.zip" Только в случае с until такой возврат интерпретируется как ошибка.
----> "force": false
Sergey
ну и портянки, канеш, лучше на пастебин или тип того
Nataliia
Ага, уже писала. Мой косяк, говорила, что force включила, а на самом деле нет)
Nataliia
С включенным все работает отлично
Vladislav 👻
А я бы в доку заглянул: https://docs.ansible.com/ansible/latest/reference_appendices/python_3_support.html
ну вот тут ничего нет про 3.7, поэтому вопрос и возник
Nklya
задавать ansible_python_interpreter отдельно для хоста
и оно будет ок работать когда например у тебя только 2-й питон на управляющей машине?
Nklya
интересненько, надо будет попробовать
Vadim
не думаю что настолько хорошо как со вторым == "в сибирской тайге найден софт без багов"
Nklya
мне всегда казалось проще привести всех ко второму питону
Vadim
это ... не очень дальновидно
bebebe
Ага, уже писала. Мой косяк, говорила, что force включила, а на самом деле нет)
вообще мне не очень нравилось то условие, until status_code is defined and status_code == 200, там ведь может быть и 301
bebebe
вполне валидно
Sergey
Ага, уже писала. Мой косяк, говорила, что force включила, а на самом деле нет)
дык код же говорит, что если force не включен, а чексуммы совпадают - ошибка вываливается.
Sergey
но в общем чтобы работало как хочется - форсить надо
Sergey
подчистил оффтоп
Nataliia
Да, с force поняла, спасибо огромное. А по поводу кода возврата, на сколько знаю, артифактори на запрос скачивания артифакта возвращает код 200 при удаче, поэтому и сравниваю только с ним.
Vladimir
поскажите как экранировать - (дефис) в переменной ? Например: hostvars.a-b.ansible_default_ipv4.address