greydjin
плейбук либо для хоста, либо для службы, когда для изменения службы, впн например, нужно бегать по разным хостам и менять ключи
Max
ансибл для запуска действий параллельно на группах компов.
Max
для этого его данные (инвентарь, и разные переменные) нужно организовать так, чтобы он сделал то что нужно где нужно.
Max
и еще в нем есть свойство "идемпотеньность", т.е когда то же самое запускается на хосте, на котором то же самое уже бежало, то ансибл не должен навредить. а обычно вообще ничего не должен изменять.
greydjin
для этого его данные (инвентарь, и разные переменные) нужно организовать так, чтобы он сделал то что нужно где нужно.
ну то есть указать в плейбуке группу хостов, а если изменения нужны только на одном хосте из группы - указать это в теге при запуске плейбука? чтобы не ждать пока он по всем хостам будет проверять
Max
ансибл хорош, если у тебя есть несколько групп ресурсов со схожими свойствами, и эти свойства меняются медленно но на всех членах групп.
greydjin
ансибл самый простой для моих нужд. и его выбрали другие люди в соседних отделах, если нужно будет на вермя отпуска их в чем-то разбираться - лучше уж мы в одной среде будем вести описание
Max
если группы постоянно изменяются, или конфигурация , то либо внедряйте центральный сервис конфигурации, либо динамический инвентарь, либо и то и это. но ансибл не для управления конфигурацией.
Max
в некоторых узких случаях он может делать схожие функции.
Max
чтобы не сказать другой частью тела
greydjin
а есть пример - галкси плейбук можете кинуть, где норм?
Max
вы меня не поняли. проблема, что данные: групировка + иерархия переменных у вас неясны. запишите себе список операций, которые надо было делать за посл. 6 месяцев в табличке: из столбиков: | список хостов | действия | данные |
Max
это ваши use cases
Max
на основе этой таблицы - узрите закономерности.
Max
по ним создайте группы хостов
Max
если данные + действия - сильно "разбросаны", то вам поможет центральное управление identity.
Max
а не ансибл.
Max
любую технологию надо юзать с пониманием недостатков.
Max
вам предложили ldap. можете его защитить с помощью kerberos, или x509.
Max
но прыгать по разным хостам, и добавлять/убирать доступ, по-моему так - не дело.
greydjin
Спасибо
Max
есть вариант динамически работать с хостами, они у вас on-prem?
greydjin
Я не знаю что такое on-prem
Max
у вас сервера бегут на своих железках в своем datacenter, или в public cloud?
Max
или услуга private cloud.
greydjin
на своих гипервизорах
greydjin
и так и так вобщет, публик клауд тоже
Max
понятно. есть в ансибле т.н. dynamic inventory
Max
можно содержать метаданные об endpoints в системе управления, или поднять свою систему управления, напр. consul, etcd, или может есть еще что.
greydjin
+
Max
я предполагаю, что вас кто-то дергает, и говорит: вот на этом хосте подними этих юзеров.
Max
и так список хостов.
Max
правильно?
greydjin
так + новые хосты, где я сразу должен накататить юзеров
Timur
Просто это нужно делать правильно
Max
ну вот и сказка. т.е. в какой-то момент нужно где-то указывать связку хост - юзеры.
Max
Просто это нужно делать правильно
ансибл был придуман как ssh loop. т.е. если de Haan мне не врал.
greydjin
ну вот и сказка. т.е. в какой-то момент нужно где-то указывать связку хост - юзеры.
и она указывается сейчас в файле переменных для роли создания юзеров https://github.com/greydjin/publicansible/blob/master/vars/avon_users.yml
Max
и из ансибла всегда бежать по всем ресурсам. тогда в 1 месте вы правите "базу данных".
Max
если сами операции написены не башсиблом, то это уже идемпотентный код.
Max
и тогда твоя задача содержать 1-2 "карты местности" в порядке.
Max
@greydjin , как слышно, прём?
greydjin
и тогда твоя задача содержать 1-2 "карты местности" в порядке.
об этом как раз мой изначальный вопрос. сейчас карта местности содержится в варианте - хост - группа пользователей а хочется группа хостов - группа пользователей
Max
я бы ее разделил на "инвентарь" и "данные запуска".
greydjin
инвентарь и так нормально поддерживается
Oleksandr
Мне не понравилось, что вы сразу советуете центральный сервис идентификации. С ним отдельные проблемы и там надо планировать и строить отказоустойчивость. Размещение мощностей в нескольких датацентрах ещё и репликацию потянет. Мне понравился совет с полугодами и табличкой + советы по инвентарю
Max
если нет ничего общего, в наихудшем случае будет у тебя # inventory [g1] h1 h2 ... [g2] h1 h4 ... [g1:vars] admins_group=g1_admins ... [g2:vars] ....
Max
вот поэтому у меня его и нет. лдап централизованный есть, но репликацию я сделать не смог
это всего лишь планировка базы данных. лдап реплицируется легко. и позволяет хранить данные в легко раплицирумом формате
Oleksandr
А сам инвентори лучше всего в git. Даже локальный
greydjin
это всего лишь планировка базы данных. лдап реплицируется легко. и позволяет хранить данные в легко раплицирумом формате
в документации лдапа написано "и вот, после изучения схем лдапа (обычно хватает 6 лет) вы сможете понять как он работает"
Max
роль дожна быть независимой от перегрща пнрнменных и хостов, на которых ее применяют.
greydjin
вопрос же не о том плохо или хорошо. Вопрос в том, почему я не могу использовать эту переменную в таске
Max
вопрос же не о том плохо или хорошо. Вопрос в том, почему я не могу использовать эту переменную в таске
потому что некоторые переменные неудобно трогать, потому что это не полезно для здоровья.
Max
технически (до 2.4) можно было стереть хосты из бегущего инвентаря. но это - насилие над трупами детей животных (некропедозоофилия)
Max
но те кто так делали были замечены нередко в последствии в очень крепкой длиннорукавке, в обнимку с высокорослыми санитарами психиатрической лечебницы.
greydjin
слишком много алегорий
Max
сорри, ну как тебя еще уговорить to do the right thing: поднять красный флаг в команде.
Max
пахнет от тебя любовью сохранить статус кво и продолжить это зло ;)
greydjin
красный флаг поднимается когда тема понятна настолько что ты понимаешь проблему. из алегорий проблему понять невозможно
Max
проблема: некорректно используется ансибл. в результате тебе трудно его поддерживать.
greydjin
я не понимаю даже твое описание проблемы
Max
т.е. "напиши мне что мне написать".
Max
🤣
Max
счастливо перечитывать.
greydjin
Спасибо что потратил время
Max