Size: a a a

ansible — русскоговорящее сообщество

2021 April 16

TN

Ty Nikolay in ansible — русскоговорящее сообщество
ну хоть работает
источник

SM

Stanislav Motriy in ansible — русскоговорящее сообщество
Да ладно, тут ещё норм. Бывает пожёстче.
источник

TN

Ty Nikolay in ansible — русскоговорящее сообщество
наркомания как она есть)
источник

ММ

Микола Мельникович... in ansible — русскоговорящее сообщество
Приветствую!
Я лишь недавно начал в ansible, потому не судите строго )
Есть несколько web сервисов, которые нужно забросить на хосты.
В конфигах каждого есть порт на который он вешается. Задача найти свободные порты не есть проблемой.
Планирую, при добавлении хоста, создавать список переменных через template в /host_vars/hostName
Но и предполагается, что список сервисов может увеличиваться.
Соответственно template будет расширяться.
Но при повторном формировании vars, порты старых сервисов могут поменяется.
Что повлечет за собой пересборку конфигов самих сервисов и nginx. Вродь не страшно, но хочется этого избежать.
Может есть пример как это лучше организовать?
Подумывал как-то держать в dicts, под каждый сервис и его ворочать...
источник

ММ

Микола Мельникович... in ansible — русскоговорящее сообщество
Каждый сервис, описан как роль. Конфиги через template
источник

14

123 456 in ansible — русскоговорящее сообщество
используйте kubernetes :)
а если по делу, то наверное проще будет не извращаться с поиском свободных портов, а завести в переменных мапу типа {'app_name': {'fqdn': 'example.com', 'port': 8080}} и использовать ее как в роли для настройки nginx, так и в роли для настроки приложения
источник

ММ

Микола Мельникович... in ansible — русскоговорящее сообщество
Кубернетес не вариант. Ибо не все хотят заморачиваться с контейнерами(на сейчас уж точно).
Масла в огонь подливает то, что набор этих сервисов может продублироваться на одном хосте.
На сейчас этих сервисов 15ть штук :)
Мы определили один набор портов и тут нужно сделать дубликат. Что таки подразумевает поиск свободных портов со всеми вытекающими.
Мне два раза хватило этим вручную заняться, чтобы начать искать инструмент для облегчения труда(до меня руками это и делали).
Конфиг сервиса, конфиг nginx и еще в systemd отметиться...
Сделал каждый сервис как роль и в переменных набросал значений. Новый набор = новый алиас в хостах и новых файл переменных.
Руками создать его не так уж и сложно, но уже раз попал на занятый порт(наугад проставлял) потому и задумался...
источник

14

123 456 in ansible — русскоговорящее сообщество
ну не знаю, попробуйте генирировать конфигурацию из массива типа
- fqdn: example.com
 app_name: '123'
 app_config:

возьмите какой-нибудь min_port_num итерируйтесь по массиву, app_port будет равен min_port_num + index
источник

VC

Vladimir Chernyshev in ansible — русскоговорящее сообщество
сделать в одном наборе что-то вроде set_start_port + set[app_name][‘port’] и задавать стартовый
источник

14

123 456 in ansible — русскоговорящее сообщество
но при удалении элементов порты таки будут переконфигурироваться
источник

ММ

Микола Мельникович... in ansible — русскоговорящее сообщество
Сомневаюсь, что удаляться будут. Но вот попасть в занятый мы вродь как можем.
Напрашивается справочник, который будет наполняться, но тоже задачей которая будет знать о свободных.
Далее его пробрасывать в template...
СПС! В диалоге парочка идей таки родилась :)
источник

14

123 456 in ansible — русскоговорящее сообщество
кмк проще (а главное полезнее) раскурить кубер, а не тратить время на изобретение велосипеда с хранением стэйта заюзанных портов, но это решать вам, удачи :)
источник

ММ

Микола Мельникович... in ansible — русскоговорящее сообщество
Та я бы и с радость, но пример из жизни.
Кантора решила писать документацию.
Поиск инструмента подразумевал установку всего и вся.
Кратчайший путь - docker. Но как оказалось, админы к этому не были готовы(типа контейнер в контейнере контейнера, как я понял) и двигаться в этом направлении не хотели.
Понаустанавливал таки всего и вся, а теперь страшно что либо оттуда удалять )
Если б от меня зависело, лишь подстраиваюсь под реалии. Повторюсь, люди руками всё это конфигурировали.
И Вам успехов!
источник

ММ

Микола Мельникович... in ansible — русскоговорящее сообщество
Ну и целевые хосты... Разворачиемси у себя(кто не может предоставить сервер) или у клиента. А народ тоже разный, переживают за секъюрность.
источник

14

123 456 in ansible — русскоговорящее сообщество
Очень надеюсь, что ваши админы не фанатики-контейнероненавистники :)
источник

14

123 456 in ansible — русскоговорящее сообщество
попробуйте донести до админов и руководства мысль о том, что для ваших задач нужна оркестрация, потому что она вам нужна
источник

I

Ilgiz in ansible — русскоговорящее сообщество
А почему не лучше забиндить порты под приложение и пользоваться одними и теми же?
источник

I

Ilgiz in ansible — русскоговорящее сообщество
И второе, зачем когфигурить порты энсиблом? Он же не сохраняет конфиг, то есть по сути можно локально запустить какой-нибудь шелл скрипт. Если нужно вести список -ip-апп-порт, то нужно искать другое решение
источник

ММ

Микола Мельникович... in ansible — русскоговорящее сообщество
Два экземпляра на одном хосте.
Это уже подразумевает указание разных доя каждого из. Из собственного опыта знаю, что таки пересекаются. Например, одно приложении висит на 3050(firebird), другое тоже просит его и.... В моем случае переконфигурирую на свободный, ибо мне головняк не нужен. Другое тупо ставит свою версию firebird и вешается на 3050. Претензии не принимают, бухгалтерское ПО перекрывает все остальное )))
источник

I

Ilgiz in ansible — русскоговорящее сообщество
источник