Timur
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 потерялся.
Но возникает второй вопрос: как
Timur
Timur
Если кто готов законтрибьютать кастомные правила линта по деприкейшенам - у нас есть специальная репа на гитхабе для такого.
Timur
Можно пройтись по коду ансибл-модулей, вытащить оттуда все ворнинги по deprecation и сделать соответствующие правила для ansible-lint. Задача не очень сложная для любого, владеющего питоном. Есть желающие?
Lev
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
Max
Artem
перефразирую
мне надо чтобы сервер в группе primary знал приватные айпишники всех серверов в группе secondary
Max
Max
т.е. ансибл, в процессе щапуска плейбука знает факты о всех серверах инвентаря.
Artem
я ж так понимаю, что он знает их в том случае, если включен gather_facts и плейбук выполняется на этих серверах?
Artem
например на primary сервере я создаю конфиг с приватным айпишником таким макаром {{ ansible_default_ipv4.address }}
Artem
Max
Max
посмотри, что там есть.
Max
если выпиливали руками инфру, могут быть косяки в симметрии названий интерфейсов
Max
(или если типы тачек сильно отличаются)
Max
а так интерфейсы будут одноименные
Max
и найти их легко
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
наверное оно ?
Max
наверное оно ?
наверное. я всегда путаюсь, но отказываюсь помнить.
Max
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 - это группа, переменные которой ты хочешь посмотреть
Max
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 🇷🇺
кто может подсказать, что я делаю не так
NS 🇷🇺
Oleksandr
Господа.
Простой вопрос.
Как идеологически правильно обрабатывать jinja2-шаблоны конфигов, которые находятся на удаленном хранилище артефактов? То есть хочется в идеале в template задании src указать урл и все, но так не бывает насколько понимаю
Farukh
Всем привет. Интересует вопрос динамического инвентаря где host_vars и group_vars так же динамически подтягиваются вместе с hosts. Оно нужно мне для AWX
k
Алексей
У когонибудь получалось создать проект в гитлабе с помощью ansible?
Lex
ребят подскажите плиз
Lex
а можно сделать смешанную сортировку в джиндже
Lex
смешанную = строковая+нумерик
Sergey
Lex
чтобы было
srv1
srv2
srv9
srv10
Lex
а не
srv1
srv10
srv2
srv9
Lex
Это как?
может немного не правлильно обозвал ) но суть в сообщении ниже
Sergey
Полагаю, можно дописать джинджа-фильтр соответствующий.
Dr. L.S.Dee
Так. С "нумерик" все ясно, попробую определить, что такое "строковая". Сортировка сперва по крайнему левому символу строки, потом по второму слева, потом по третьему etc. Так?
Ну, в данном случае, если принять за истину, что объекты примерно так, как в примере, и поименованы:
srv1
srv2
srv9
srv10,
- то есть, сходный буквенный префикс и далее нумерация, то сортировка будет в любом случае т.н. "строковая", только вначале сортировать надо будет подстроку с префиксом, а потом подстроку с нумерацией.
Lex
Так. С "нумерик" все ясно, попробую определить, что такое "строковая". Сортировка сперва по крайнему левому символу строки, потом по второму слева, потом по третьему etc. Так?
Ну, в данном случае, если принять за истину, что объекты примерно так, как в примере, и поименованы:
srv1
srv2
srv9
srv10,
- то есть, сходный буквенный префикс и далее нумерация, то сортировка будет в любом случае т.н. "строковая", только вначале сортировать надо будет подстроку с префиксом, а потом подстроку с нумерацией.
речь про двойной цикл?
Dr. L.S.Dee
А вот обзывались бы объекты так:
srv01
srv02
srv09
srv10,
и проблемы бы не было. Пока количество не перевалило бы за сотню.
Dr. L.S.Dee
Dr. L.S.Dee
Если это вообще уместно здесь.
Max
Dr. L.S.Dee
Lex
Dr. L.S.Dee
Lex
где-то это завязано на документацию...и уже не так это просто переименовать чтобы не запутаться
Lex
всмысле сам то сервер в инфраструктуре переименовать можно...а вот его хостнэйм нет...и так далее
Lex
потом побежит расхождение, а это уже никому не надо