Sun
гайз, хелб Запускаю докер-композ из анзибла с внешними волумами. Получаю какую-то ересь на выходе: $ ll volumes/app/mattermost/ ls: cannot access volumes/app/mattermost/config: Permission denied ls: cannot access volumes/app/mattermost/data: Permission denied ls: cannot access volumes/app/mattermost/logs: Permission denied ls: cannot access volumes/app/mattermost/plugins: Permission denied ls: cannot access volumes/app/mattermost/client-plugins: Permission denied total 0 d????????? ? ? ? ? ? client-plugins d????????? ? ? ? ? ? config d????????? ? ? ? ? ? data d????????? ? ? ? ? ? logs d????????? ? ? ? ? ? plugins
Sun
Это вообще законно?
Sun
Разобрался. execution bit потерялся. Но возникает второй вопрос: как
Max
Не поможет. Deprecation warnings на уровне модулей генерятся. Общего API для них нет. Если только на каждый deprecation warning свое правило писать
в принцие это правильно. я поспал над этим. идея депрекации - подготовить к ломающему изменению в будущем, т.е. позволить "в удобное для теья время" изменить код. если чел хочет фейлить тесты, он может грепать.
Timur
Если кто готов законтрибьютать кастомные правила линта по деприкейшенам - у нас есть специальная репа на гитхабе для такого.
Timur
Можно пройтись по коду ансибл-модулей, вытащить оттуда все ворнинги по deprecation и сделать соответствующие правила для ansible-lint. Задача не очень сложная для любого, владеющего питоном. Есть желающие?
Artem
Коллеги, подскажите такой вопрос у меня есть инвентори с группами серверов [primary] 192,168,88,1 [secondary] 192,168,88,2 192,168,88,3 мне надо на primary группу закинуть айпишники secondary серверов если я правильно понял,то мне нужно {{ ansible_default_ipv4.address }} использовать но я запутался как должен в таком случае выглядеть плейбук
Oleksandr
кровь из глаз
Artem
почему ?
Artem
* дополнение - в инвентори айпишники белые, а {{ ansible_default_ipv4.address }} использую для получения приватных айпишников
Roman
не до конца понятна формулировка того что ты хочешь сделать. но возможно тебе стоит почитать про https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html#groups-of-groups-and-group-variables
Artem
перефразирую мне надо чтобы сервер в группе primary знал приватные айпишники всех серверов в группе secondary
Max
т.е. ансибл, в процессе щапуска плейбука знает факты о всех серверах инвентаря.
Artem
я ж так понимаю, что он знает их в том случае, если включен gather_facts и плейбук выполняется на этих серверах?
Artem
например на primary сервере я создаю конфиг с приватным айпишником таким макаром {{ ansible_default_ipv4.address }}
Max
я ж так понимаю, что он знает их в том случае, если включен gather_facts и плейбук выполняется на этих серверах?
модуль setup запускается периодически до выполнения плейбука. только если ты уверен, что сбор фактов тебе не нужен - выключают этот механизм. иначе будет stale cache.
Max
посмотри, что там есть.
Max
если выпиливали руками инфру, могут быть косяки в симметрии названий интерфейсов
Max
(или если типы тачек сильно отличаются)
Max
а так интерфейсы будут одноименные
Max
и найти их легко
Artem
посмотри, что там есть.
да, инфу собирает, нужные мне апишники там есть
Artem
да, они одноименные, все eth0
Max
умеешь из таски в группе x взять факт тачки из группы y?
Artem
это наверное и был мой основной вопрос ))
Max
groups.groupname.machine.var_name
Max
если склероз не не подводит.
Artem
вроде понял, спасибо, разбираюсь дальше
Artem
{{ hostvars['foo.example.com']['ansible_eth0']['ipv4']['address'] }}
Max
а создать список айпишек - читай как делают selectattr или map
Artem
наверное оно ?
Kirill
groups.groupname.machine.var_name
А модулем group_by нельзя воспользоваться? Или совсем хреновая практика?
Max
наверное оно ?
наверное. я всегда путаюсь, но отказываюсь помнить.
Max
А модулем group_by нельзя воспользоваться? Или совсем хреновая практика?
можно, если выборку можешь сделать что туда положить
Artem
в любом случае спасибо, понял куда дальше читать не мог правильно сформулировать свой вопрос ))
Artem
@naughtius_max наверное я таки чтото упускаю вот часть плейбука - hosts: primary roles: - role: add-members вот роль - debug: msg: "{{ hostvars[groups['secondary'][0]]['ansible_default_ipv4']['address'] }}" логично, что переменная не известна, т.к. плейбук выполняется только на primary но добавлять менять hosts c primary на all - вариант не подходит, т.к. файл будет создаваться на всех хостах что я делаю не так ?
Kirill
Я там выше предложил заюзать модуль group_by. Этот модуль создаёт группы из фактов. Тут его можно заюзать для того, чтобы добавить хосты primary в группу secondary. Тогда группе primary будут доступны переменные группы secondary, а плейбук выполнится только на группе primary.
Artem
звучит логично, гляну его, спасибо
Kirill
tasks: - name: Add host group group_by: key: tag_gitlab-server
Kirill
Юзать вот так. key - это группа, переменные которой ты хочешь посмотреть
Artem
на хост primary мне надо закинуть файл, с айпишниками secondary, в формате rs.add("{{ groups['secondary'][0] }}:27017"); rs.add("{{ groups['secondary'][1] }}:27017"); который потом шелл коммандой будет выполняться это реплика для монги, если эта информация важна
NS 🇷🇺
Всем привет. Есть вопрос по тегам
NS 🇷🇺
у меня есть некая роль с таском name: блаблабла copy: блаблабла tags: - driver - never
NS 🇷🇺
если руками вызвать и передать тег driver то она выполняется, не передать не выполняется логично
NS 🇷🇺
а вот автоматом не работает - name: Deploy блаблабла become: yes hosts: хосты gather_facts: yes roles: - role: one - role: two tags: - driver
NS 🇷🇺
кто может подсказать, что я делаю не так
nett00n
кто может подсказать, что я делаю не так
У тебя тэг указывается внутри role:two, для начала
NS 🇷🇺
Oleksandr
Господа. Простой вопрос. Как идеологически правильно обрабатывать jinja2-шаблоны конфигов, которые находятся на удаленном хранилище артефактов? То есть хочется в идеале в template задании src указать урл и все, но так не бывает насколько понимаю
Farukh
Всем привет. Интересует вопрос динамического инвентаря где host_vars и group_vars так же динамически подтягиваются вместе с hosts. Оно нужно мне для AWX
k
Всем привет. Интересует вопрос динамического инвентаря где host_vars и group_vars так же динамически подтягиваются вместе с hosts. Оно нужно мне для AWX
В inventory можно указывать переменные и для хостов, и для групп. В динамическом - тоже. Если это не то, задайте вопрос конкретней.
Алексей
У когонибудь получалось создать проект в гитлабе с помощью ansible?
Lex
ребят подскажите плиз
Lex
а можно сделать смешанную сортировку в джиндже
Lex
смешанную = строковая+нумерик
Lex
чтобы было srv1 srv2 srv9 srv10
Lex
а не srv1 srv10 srv2 srv9
Lex
Это как?
может немного не правлильно обозвал ) но суть в сообщении ниже
Sergey
Полагаю, можно дописать джинджа-фильтр соответствующий.
Dr. L.S.Dee
Так. С "нумерик" все ясно, попробую определить, что такое "строковая". Сортировка сперва по крайнему левому символу строки, потом по второму слева, потом по третьему etc. Так? Ну, в данном случае, если принять за истину, что объекты примерно так, как в примере, и поименованы: srv1 srv2 srv9 srv10, - то есть, сходный буквенный префикс и далее нумерация, то сортировка будет в любом случае т.н. "строковая", только вначале сортировать надо будет подстроку с префиксом, а потом подстроку с нумерацией.
Dr. L.S.Dee
А вот обзывались бы объекты так: srv01 srv02 srv09 srv10, и проблемы бы не было. Пока количество не перевалило бы за сотню.
Dr. L.S.Dee
Если это вообще уместно здесь.
Dr. L.S.Dee
А вот обзывались бы объекты так: srv01 srv02 srv09 srv10, и проблемы бы не было. Пока количество не перевалило бы за сотню.
Но ведь можно использовать и шестнадцатеричную систему. Тогда хватит до srvff
Dr. L.S.Dee
ну это уже поздно...
Переименовать!
Lex
где-то это завязано на документацию...и уже не так это просто переименовать чтобы не запутаться
Lex
всмысле сам то сервер в инфраструктуре переименовать можно...а вот его хостнэйм нет...и так далее
Lex
потом побежит расхождение, а это уже никому не надо