#Rλatan
jq '.result | .[].id' как такое провернуть в ansible'е? дергаю из uri json и вот нужен value id'шника
ты ж уже задавал этот вопрос, YOUR_REGISTRED_RESPONSE_HOW_YOU_NAMED_IN_RGISTRY.content | from_json | json_query('.result.[*].id')
Tadeusz
fatal: [localhost]: FAILED! => {"msg": "JMESPathError in json_query filter plugin:\ninvalid token: Parse error at column 0, token \".\" (DOT), for expression:\n\".result.[*].id\"\n ^"}
#Rλatan
Ansible использует JSPath в этом фильтре, можете поигратся http://www.jsonquerytool.com/
#Rλatan
JSON: { "key": "value", "array": [ { "key": 1 }, { "key": 2, "dictionary": { "a": "Apple", "b": "Butterfly", "c": "Cat", "d": "Dog" } }, { "key": 3 } ] }Query: .array[0].keyResult: [ 1 ]
Tadeusz
к сожалению или к счастью, у меня не грузится данный сайт
Tadeusz
даже при подтягивании всех js'ов и отключении adblocker'ов всяких
Tadeusz
Tadeusz
=)
#Rλatan
Выстрадал😂👍
Tadeusz
та не говори... кто ж мог подумать что надо добавить .json
#Rλatan
Это от API зависит
Alexander
Попробовал еще раз завести Python Api, по-прежнему не работает
simplemice.eth
#Ansible #book [Russian] Title: Запускаем Ansible Author: Хоштейн Л., Мозер Р. Year: 2018 Pages: 384 ISBN: 978-5-97060-513-4
Alexander
Сделал все ровно как в доке, доходит до tqm.run(play) и дальше даже дебажить не выходит. До брекпоинтов внутри этого метода не доходит, трейсбеков нет, просто никакого результата
Ilya
Морнинг! Поскажите: можно ли отключить условие when заданием переменной?. т.е нет переменной, условие не проверяется, есть - она же и есть условие? смысл: задал имя виртуалки, и loop по этой сработает, не задал -по всем пройдется.
Div
https://docs.ansible.com/ansible/latest/user_guide/playbooks_conditionals.html#the-when-statement
Div
дока начинается с ответа на ваш вопрос.
Alexander
Мдэ, отловил таки багу у них, которая не давала запускать через PlaybookExecutor
Ilya
дока начинается с ответа на ваш вопрос.
например, если переменная не задана, то и джоба не выполнится. а нужно наоборот. если пусто, то она выполняется без всяких условий.
Div
is defined / is undefined
Ilya
is defined / is undefined
Спасибо. это и пробую, правда is not defined. но чот пока не то.
Артем
Морнинг! Поскажите: можно ли отключить условие when заданием переменной?. т.е нет переменной, условие не проверяется, есть - она же и есть условие? смысл: задал имя виртуалки, и loop по этой сработает, не задал -по всем пройдется.
Если список виртуалок это переменная, то, что требуется, можно сделать так: перед основной таской добавить таску set_fact, которая будет переопределять эту переменную и записывать в неё только одну, и тут поставить условие when: vm_name is defined а в основной таске loop по этой переменной если она не переопределится, то будет ходить по всем
Alex
- name: Validate JSON set_fact: is_valid_json: {{ var1 | from_json | keys | default(False) }} :)
не работает, выдает fatal: [127.0.0.1]: FAILED! => msg: 'template error while templating string: no filter named ''keys''. String: {{ dict1 | from_json | keys | default(False) }}'
Timur
Это строка, которую фильтр может превратить в словарь
Alex
Это строка, которую фильтр может превратить в словарь
так а какой тогда есть способ проверки, что переменная является валидным JSON объектом?
Alex
Как задача выглядит?
задача определение состояния сервиса - name: Check topology health become: yes shell: | docker exec xray_router curl -s http://localhost:8046/router/api/v1/topology/health register: docker_ha_topology_health ignore_errors: yes - name: Set ha topology health as failed set_fact: ha_topology_health_result: json: "" - name: Set topology health set_fact: ha_topology_health_result: "{{ {} | combine({'json': docker_ha_topology_health.stdout | from_json }) }}" но так как exec может вернуть и не json, то возникают проблемы
Alex
что странного?
Sergey
Странное - модуль shell использвать. Антипаттерн же.
Alex
да, я в курсе, но сервис доступен только внутри контейнера, так что без exec никак
Alex
Что, прям никак порт не пробросить?
может и можно, только как это решит проблему с валидацией json?
Sergey
может и можно, только как это решит проблему с валидацией json?
Модуль напиши. Зачем пытаешься кодить на Ансибле?
Alex
это уже из пушки по воробьям
Sergey
это уже из пушки по воробьям
Зависит. С учётом того, что минимальный модуль - это полчаса работы, то с этим своим JSON-ом ты явно больше приседать будешь с отягощениями.
Tadeusz
есть api'шка cloudflare, интересует удаление сайта/домена/зоны https://api.cloudflare.com/#zone-delete-zone дергаю - получаю Malformed JSON in request body ЧЯДНТ?! ok: [localhost] => { "msg": "https://api.cloudflare.com/client/v4/zones/71628736127368721а12" }
Tadeusz
дергаю так
Tadeusz
у тебя же в msg лежит строка
это я дебаг вывел чтоб понимать что прилетает в URL
Tadeusz
дергаю так
подобным образом вызываю эту же апишку методами GET/PATCH/PUT безо всяких проблем
Sergey
body?
Tadeusz
а зачем там тело?
Tadeusz
тут (в доке API) же нет -d '...'
inqfen
body_format: json
inqfen
у тебя там {} body получается
inqfen
видать недоволен он этим
Tadeusz
кстати. да - убрал body_format и проканало, благодарю
Tadeusz
body_format: json
или добавлять body: ''
Aleksey
господа multiline lookup бывает ?
George
multiline - это как?
Гайрат
var: | String
Aleksey
вот пример из доки - name: Return all secrets from a path debug: msg: "{{ lookup('hashi_vault', 'secret=secret/hello token=c975b780-d1be-8016-866b-01d0f9b688a5 url=http://myvault:8200')}}" так много букв с строку. хочу мало букв
Aleksey
var: | String
работает или теоретически ?
/dev/null
работает или теоретически ?
Ну с точки зрения yaml должно работать
Alexey
работает или теоретически ?
Работает. Valt же так работает
Aleksey
Работает. Valt же так работает
да работает. спасибо
Johnny
добрый день, подскажите, можно как-то сделать цикл в плейбуке по инвентарному файлу и отдать имя хоста в loop? Второй день бьюсь, в документации такого случая не нашел
Johnny
спасибо, буду пробовать
Johnny
получилось. за magic vars отдельное спасибо)
Aleksey
Ну с точки зрения yaml должно работать
не работает. получается на выходе AnsibleUnsafeText
Aleksey
если без мультилайнинга получается dict
Aleksey
там в итоге что бы работало надо убирать "
Igor
подскажите плз, почему запуск плейбука на локалхосте может скипать роль?
Igor
Igor
в плее почему то ничего не отрабатывает
Sergey
Опиши, что должны делать ключи командной строки.
Tadeusz
парни, а tower платный?
Yuriy
парни, а tower платный?
дыа, awx бесплатен
Tadeusz
спасибо, потыкаю
Gleb
150 баксов хост-месяц по gpl