Никита
"msg": { "changed": false, "examined": 477, "failed": false, "files": [ { "attributes": "Directory", "creationtime": 1524066562.5394163, "filename": "LogicalModules", "isarchive": false, "isdir": true, "ishidden": false, "islnk": false, "isreadonly": false, "isshared": false, "lastaccesstime": 1606679504.7810788, "lastwritetime": 1606679504.7810788, "owner": "BUILTIN\\Administrators", "path": "C:\\Program Files\\Штрих-М\\Кассир v. 5. Базовая версия с ЕГАИС\\DB\\ExtFiles\\LogicalModules", "size": 4775851 } ], "matched": 1 } }
Никита
И я пытаюсь обратиться к параметру path
Никита
logical_module_dir.files - работает
Никита
logical_module_dir.files.path - не работает
Никита
logical_module_dir.['files'] - работает
Никита
logical_module_dir[files']['path'] не работает
Никита
Как мне получить path?
Anonymous
logical_module_dir.['path']
citius
logical_module_dir[files']['path'] не работает
Попробуй что-то вроде ['files'][0]['path'] потому что files это список словарей из одного элемента
Anonymous
Это ж список , как в python, по идее обращение к списку по ключу [path]
Никита
спасибо
citius
Дмитрий
а есть ли какой-нибудь сервис для расстановки отступов в yaml файле ansible?
Дмитрий
ide?
visual studio code. Нашел yamllint - сейчас его устанавливаю
M
он вроде как-то криво линтил
M
для ansible
M
может у меня так плохо вышло хз
Anonymous
а есть ли какой-нибудь сервис для расстановки отступов в yaml файле ansible?
Если речь про автоматические расстановки отступов(а-ля gofmt), то не видел.
Anonymous
visual studio code. Нашел yamllint - сейчас его устанавливаю
Просто пишет варнинги, как и любой линтер. Он не может привести к красивому виду по одному клику/команде.
Дмитрий
да уже ручками все сделал
Anonymous
В норм ide это достаточно просто сделать ;)
tutunak
В норм ide это достаточно просто сделать ;)
Vim emacs тоже с yaml на ура справляются
Anonymous
Gofmt без ide...
Anonymous
По линтам ansible проще через molecule. Можно добавить ansible lint
Anonymous
Создать разные профили. По линтам или идемпотентности.
Anonymous
После настройки molecule примерно 80% вопросов отпадут сами по себе.
checkdiff
https://www.digitalocean.com/community/tutorials/how-to-manage-multistage-environments-with-ansible Мне из этой статьи понравился вариант с линками на файлы с общими переменными для нескольких окружений.
Дошли руки чуток поизучать, на неделе надеюсь сделать прототип. Коротко про линки: пугает путаница, которая точно возникнет, дополнительные расходы на создание и поддержание линков. Статья, особо не помогла, а вот ролик, https://youtu.be/35UVffLINkc , описывает все тоже самое, что в статье, но голосом, что чуточку восприимчивее. Харизма рулит :) Но что более важно, ролик содержит issue ( https://github.com/ansible/ansible/issues/14556 ) из 2016, которое разрезолвилось в 2017 документацией - https://github.com/ansible/ansible/pull/28777 - которая в свою очередь даёт четкий ответ как надо действовать в таких ситуаций по «стандарту ансимбла» и без костыльных симлинков (имхо, сам себя осуждаю), но это так. Надо действовать через инвентарь и наследование групп. Если необходимо пример прототипа шарану сюда, как будет)
checkdiff
Я пока так и делаю, через подгруппы.
А, тогда, наверное не правильно понял, прошу прощения) но для тех кто будет смотреть в сторону линков - не стоит:)
Lamobot
А, тогда, наверное не правильно понял, прошу прощения) но для тех кто будет смотреть в сторону линков - не стоит:)
На мой взгляд, оно выглядит логичнее для большого количества инвентарей и сложной иерархии групп. Думал его использовать, но пока проще и спокойнее через подгруппы.
Sergey
Странным пахнет :-)))) Принцип в основе очень простой: одинаковое - в роли и другие занятные места, разное - в inventory, остальное от лукавого :-)
checkdiff
> Почему тогда ее не делать на каждое окружение свое ? В ролике об этом говорится. Миллион префиксов, которые уничтожают чтение и усложняют восприятие.)
checkdiff
Это хорошо :)
checkdiff
Там очень много нюансов. Как выстроить иерархию : - какую группу выделить как приоритетную? - как минимизировать дублирование? - как нагляднее показывать иерархию через директории? - упростят ли коллекции ситуацию? (нет, коллекции нормально работают только в 2.10, который надо тестить и мигрировать, это уже вчера и разбирал) Ответов на эти вопросы боюсь никто не даст, так как они очень зависят от изначальной организации и задачи) поэтому и буду разбирать и смотреть устройство, чтобы уложить не только в свою голову, но и перестроить весь процесс, так как такого рода знания уникальны, к сожалению. кто еще знал про смену приоритета групп? Сколько не был на конференциях ни на одной об этом не говорилось))
Sergey
Там очень много нюансов. Как выстроить иерархию : - какую группу выделить как приоритетную? - как минимизировать дублирование? - как нагляднее показывать иерархию через директории? - упростят ли коллекции ситуацию? (нет, коллекции нормально работают только в 2.10, который надо тестить и мигрировать, это уже вчера и разбирал) Ответов на эти вопросы боюсь никто не даст, так как они очень зависят от изначальной организации и задачи) поэтому и буду разбирать и смотреть устройство, чтобы уложить не только в свою голову, но и перестроить весь процесс, так как такого рода знания уникальны, к сожалению. кто еще знал про смену приоритета групп? Сколько не был на конференциях ни на одной об этом не говорилось))
Использование приоритета групп - дичефича. На конфах и митапах об этом не говорится не потому, что этого нет, а потому, что само использование этой фичи автоматически переводит проект на тёмную сторону, превращая наследование параметров в веганский вариант салата "оливье" (то есть винигрет, только без свеклы).
Sergey
Чел же на видео пытается решить известную проблему натягивания матрицы на дерево. Если кто в больших компаниях работал, где есть административная подчинённость ("дерево") и подчинённость проектная ("люди из разных мест дерева, собранные под конкретный проект"), то такую ситуацию мог наблюдать, только не на инвентори и хостах, а живых людях и их задачах ("чьи указания приоритетнее?", "какие задачи важнее?" и вот это вот всё)
checkdiff
Видимо мы друг друга не поняли. Так как речь не про таски, а про инвентарь. Можно(нужно) ли приоритетом выделять, если да, то как? Если да, то как интуитивнее было бы это отразить через директории. Ваши же ответы читаются, что фичу, о которой я только узнал, а вы уже пользуетесь, не стоит использовать совсем. Противоречие, однако)
Anonymous
как выводить output от таска shell в консоль в реальном времени?
Maksim
подскажите можно поставить ansible на машину с виндой и управлять серверами линукса?
Div
и то несмотря на все обещалки от ms хз как оно все там под капотом.
Div
сетевой стек под wsl это больная тема...
Maksim
спасибо, лучше ставить на линукс как я понял)
Div
в идеале да.
Aleksey
в идеале ставить в докер
Div
чем меньше прослоек между сабжем и собсно инфраструктурой, тем прозрачнее будет коммуникация
Div
в идеале ставить в докер
согласен, только если не пытаться лезть в другие контейнеры.
Div
будет докер в докере докером...
Aleksey
согласен, только если не пытаться лезть в другие контейнеры.
контейнеры они же ro ну лезть так лезть. только там скучно и нечего делать ансиблу. а если контейнеры не ro значит что то пошло не так
Sergey
подскажите можно поставить ansible на машину с виндой и управлять серверами линукса?
Пакет cryptography, что ди, в винду не умеет. Сотв-но, установка ломается.
checkdiff
Так я этим и буду заниматься (отвечать на эти вопросы) :)
checkdiff
Видимо мои формулировки от ваших отличаются просто.
Anonymous
избегать шелтаски.
а как тогда сделать docker-compose up -d
Aleksey
а как тогда сделать docker-compose up -d
не делать docker-compose up. у вас же целый ансибл есть. создавайте контейнеры им.
Anonymous
блин ну я уже настроил докер компоуз :(
Aleksey
понимаю я тоже так делал. но перестал. ансиблом реально получается удобно и не распылаемся на три инструмента
Aleksey
синтаксис переносится почти один в один https://docs.ansible.com/ansible/latest/collections/community/general/docker_container_module.html
Aleksey
ну и это работает в 7 случаев из 10. исключение если у вас сварм (будет не приятно, но если у вас сварм вам не привыкать страдать) и если вы не делаете хитрые депенды
Anonymous
ну и это работает в 7 случаев из 10. исключение если у вас сварм (будет не приятно, но если у вас сварм вам не привыкать страдать) и если вы не делаете хитрые депенды
а ансибл по умолчанию все контейнеры поднимет в изолированной общей сети или надо это дополнительно указывать
Anonymous
а если никак не напишу то как он сделает
Aleksey
по дефолту в общей
Aleksey
он тупо зовёт докерный апи.
Aleksey
https://www.ansible.com/blog/how-i-switched-from-docker-compose-to-pure-ansible
Anonymous
хы прикольно , видимо я не первый кто об этом задумался если таже такая статья есть.. так что докер компоуз вообще ненужен?
Aleksey
https://docs.ansible.com/ansible/latest/collections/community/general/docker_compose_module.html
Aleksey
omg
Aleksey
этого я не видел...
Anonymous
https://docs.ansible.com/ansible/latest/collections/community/general/docker_compose_module.html
а ну вот видишь значит все таки нужен