Alex
2.10 вышел?
нет, только rc - https://github.com/ansible/ansible/blob/stable-2.10/changelogs/CHANGELOG-v2.10.rst
Sergey
2.10 вышел?
Положим, в develop уже достаточно давно скучно и пусто.
Alex
а сталкивался кто то с таким случаем, что в модуле archive в результате в expanded_paths попадают не все элементы из списка, некоторых просто нет. Причем их нет даже в missing ?
Dimitri
Привет народ пытаюсь через ansible добавить запить в route53 ловлю вот такую ошибку : ERROR! 'route53' is not a valid attribute for a Play The error appears to be in '/home/ec2-user/playbooks/aws/route53/createrecord.yaml': line 1, column 3, but may be elsewhere in the file depending on the exact syntax problem. The offending line appears to be: - name: Create DNS route ^ here playbook простой и стандартный - name: Create DNS route route53: command: create zone: "kuku" record: new.foo.com type: A ttl: 300 value: 1.1.1.1,2.2.2.2,3.3.3.3 wait: yes
UglyKoyote
пробелы/табы?
Alex
сам таск простой - name: Archiving logs become: yes archive: path: "{{ app_logs_path }}" dest: "{{ app_installer_dir }}/logs/{{ log_name }}" format: zip app_logs_path выглядит так app_logs_path: - /etc/elasticsearch/* - /var/log/elasticsearch/* - "{{ jfmc_product_home }}/var/log/*" - "{{ jfmc_product_home }}/var/etc/*" - "{{ jfmc_es_conf_base }}/config/*" - "{{ jfmc_es_conf_base }}/logs/*"
UglyKoyote
смотри внимательно отступы, чудес не бывает.
Dimitri
покажи весь плейбук
да это и есть весь просто для начала тестовый вариант
UglyKoyote
добавь перед первой таской три -
UglyKoyote
погоди.. а хост. и прочие атрибуты где
Grek 🇺🇦
это же не плейбук в роли
Dimitri
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all' ERROR! 'route53' is not a valid attribute for a Play The error appears to be in '/home/ec2-user/playbooks/aws/route53/createrecord.yaml': line 1, column 3, but may be elsewhere in the file depending on the exact syntax problem. The offending line appears to be: - name: Create DNS route ^ here какие атрибуты тут должны быть еше этож просто example
Dimitri
да именно !
Grek 🇺🇦
рука лицо
Dimitri
ansible-playbook createrecord.yaml
Grek 🇺🇦
у плейбука есть директивы, идите документацию почитайте
Sergey
да именно !
В правилах есть ссылки для почитать.
Grek 🇺🇦
--- - name: Deploy hosts: all tasks: - name: и тут уже уваши таски это как минимум
UglyKoyote
https://www.ansible.com/blog/getting-started-writing-your-first-playbook
UglyKoyote
В правилах есть ссылки для почитать.
если ссылка моя не айс - удалять?
Sergey
Чойта?? Онтопик жи.
Sergey
Тем более - оф. дока
UglyKoyote
хорошо. учту)
Dimitri
предустановка python и boto и все
Igor
Всем привет!
Igor
Подскажите, пж, или ткните в пример, где подробно описывается, как через ansible залазить на третий и глубже уровни в json Например в custom facts или в ansible_facts.
Igor
У меня выходит в один заход только на 2 уровень через subelements и lookup
Igor
Закидываю полученный результат в переменную и повторно попадаю на нужный мне уровень
Igor
Можно это как-то проще сделать? в стиле foreach { foreach { foreach { "условие" } } }
Igor
ansible_facts['lvl1']['lvl2']['lvl3']
а, точно, забыл указать, третий уровень массива
Igor
{ test_array_level_1: [ { "type": "AS", "env": "PROD", "friendly_name": "AS_PROD", "test_array_level_2": [ { "test_key1":"test_data", }, { "test_key2":"test_data" }, { "test_key3":"test_data" "test_array_level_3": [ { "test_key4_1":"data", "test_key4_2":"data", "test_key4_3":"data" }, { "test_key4_1":"data1", "test_key4_2":"data1", "test_key4_3":"data1" } ] } ] }, { "type": "AS", "env": "TEST", "friendly_name": "AS_TEST", }, { "type": "DB", "env": "PROD", "friendly_name": "DB_PROD", }, { "type": "DB", "env": "TEST", "friendly_name": "DB_TEST", "test_array": [ { "test_key1":"test_data", } ] } ] }
Igor
Нужно добраться до "test_key4_1":"data1",
Dimitri
В правилах есть ссылки для почитать.
предустановка python и boto и все
Grek 🇺🇦
Igor
ты привел не валидный json
Извини, сейчас проверю. Спасибо.
Alex
это вы к чему?
думаю это из серии - покажите плейбук по настройке linux/cisco ))
Dimitri
это вы к чему?
к тому что больше никаких атрибутов и предустановок я там не видел https://docs.ansible.com/ansible/latest/modules/route53_module.html
Grek 🇺🇦
Не у модуля, а у плейбука
Grek 🇺🇦
Ну йожик, даже написал
Grek 🇺🇦
@amarao вот только недавно делал годную статью на Хабре, по основам прям
Igor
ты привел не валидный json
{ "test_array_level_1": [ { "type": "AS", "env": "PROD", "friendly_name": "AS_PROD", "test_array_level_2": [ { "test_key1":"test_data" }, { "test_key2":"test_data" }, { "test_key3":"test_data", "test_array_level_3": [ { "test_key4_1":"data", "test_key4_2":"data", "test_key4_3":"data" }, { "test_key4_1":"data1", "test_key4_2":"data1", "test_key4_3":"data1" } ] } ] }, { "type": "AS", "env": "TEST", "friendly_name": "AS_TEST" }, { "type": "DB", "env": "PROD", "friendly_name": "DB_PROD" }, { "type": "DB", "env": "TEST", "friendly_name": "DB_TEST", "test_array": [ { "test_key1":"test_data" } ] } ] }
Igor
Простыня в чате, тревога!
Извините, надо было в личку?
Андрей
Надо было на пастбин
Sergey
+++ ^^^
Alex
Извините, надо было в личку?
print(json['test_array_level_1'][0]['test_array_level_2'][2]['test_array_level_3'][1]['test_key4_1']) в питоне вот так можно
Alex
но это если у тебя кол-во элементов в массиве постоянное, если разное, то надо смотреть в сторону jmespath/json_query
Alex
@tnt4brain мб будут какие то идеи насчет модуля archive? Уже запускал с -vvv ничего полезного нет
Igor
но это если у тебя кол-во элементов в массиве постоянное, если разное, то надо смотреть в сторону jmespath/json_query
О, спасибо! Да количество и состав элементов меняется. json_query, думаю, поможет. Спасибо за наводку, почитаю.
Sergey
У тебя в итоге звездатых элементов нет? Так звезду баш раскрывает, если что.
Sergey
А, вижу в доке, модуль тоже поддерживает.
Sergey
В чём проблема-то?
Alex
Не переписывать logrotate на Ansible, например.
Я и не переписываю, просто надо собирать логи приложений для последующего дебага
Sergey
Ансиблом?....
Sergey
Оооооокей, ога.
Sergey
Так и в чём проблема?
Alex
Так и в чём проблема?
Два элемента из app_logs_path как будто пропадают и не доходят до модуля archive, т.е. их там вообще нет
Grek 🇺🇦
случайно не те 2 что без кавычек?
Alex
Конкретно 3 и 4й из списка. Все остальные отрабатывают нормально
Alex
случайно не те 2 что без кавычек?
Они, но в доке примеры с * тоже без кавычек
Sergey
Они могут быть силинками или чем ещё похуже - например, каталогами со сбитыми правами.
Alex
Они, но в доке примеры с * тоже без кавычек
Точнее вру, первые два как раз нормально отрабатывают
Sergey
Единственное более-мене внятное объяснение - там где-нибудь omit болтается. У тебя же из 6 путей есть два нормальных, и две пары - из разных переменных. Может, в переменной кака, и ансибл её бросает?
Grek 🇺🇦
а если заменить переменную на вполне конкретный путь, и перед этим убедится что по этому пути есть нужные файлы?
Alex
а если заменить переменную на вполне конкретный путь, и перед этим убедится что по этому пути есть нужные файлы?
Попробую убрать переменную. А насчет путей/файлов - они и не должны существовать. Модуль напишет, что он не сможет найти из списка
Alex
будет типа такого dest: /opt/installers/logs/jfmc_sanity_native.zip expanded_exclude_paths: [] expanded_paths: - /etc/elasticsearch/elasticsearch.yml - /etc/elasticsearch/jvm.options - /etc/elasticsearch/jvm.options.d … … … missing: - /opt/installers/logs/elasticsearch-docker.log - /opt/installers/docker/4.6.0-m030/jfrog-xray-4.6.0-m030-compose/.env - /opt/installers/docker/4.6.0-m030/jfrog-xray-4.6.0-m030-compose/config.log
Aleksey
не хотите пойди работать в яндекс ? например в яндекс такси ?
Anastasia
Добрый день! а в чем вопрос, собственно (возможно, неверно прочитала ваше сообщение)?
Aleksandr
сделайте все возможное, чтобы конфиги не различались
Aleksey
https://jinja.palletsprojects.com/en/2.11.x/templates/#child-template