
Sergey
18.04.2017
08:16:41
не, здесь придётся явным образом прописать в роли, которая меняет код, на таске обновления - notify nginx.reload

Anufant
18.04.2017
08:17:06

Sergey
18.04.2017
08:17:24
Роль - лишь набор заданий, а результат выполнения отдельного задания совсем не обязательно булевый.

Google

Anufant
18.04.2017
08:18:45

Sergey
18.04.2017
08:20:22
Роль с кодом сайта имеет в зависимостях nginx. Следовательно, роль nginx будет вызвана ДО роли с кодом сайта. Следовательно, роль с кодом сайта имеет полное право вызывать и ссылаться на хэндлер nginx.

Anufant
18.04.2017
08:23:26
Только роль с кодом не зависит от сервера. И не должна, на мой взгляд. Мне просто подумалось, что было бы круто, если подключение роли в итоге имело статус, примерно как волнение таска.

Sergey
18.04.2017
08:26:07
Позволю себе заметить, что такая объектная модель расходится с объектной моделью Ансибла, поэтому в контексте заданного вопроса - да, имеет место желание странного.
Если бы роль с кодом сайта не нуждалась в веб-сервере, то и разговора бы не было, так? Код бы мог работать самостоятельно, без этих ваших энджинксов. А получается-то наоборот! Типа "есть прямая зависимость, а хочу сделать вид, что её нет".

Anatoly
18.04.2017
08:28:45

Anufant
18.04.2017
08:32:49

Sergey
18.04.2017
08:38:55
Дык до меня расписали всё - http://docs.ansible.com/ansible/playbooks_roles.html.
Есть задания, есть роли, есть пьесы (plays). Задания составляют роль, роли составляют пьесу.
Фактически твоя пьеса состоит из указаний: узлы (hosts) такие-то исполняют роли (hosts) такие-то.
А уже эти пьесы собираются в плейбуки (я хз как толком перевести, тупо "сборники пьес", что ли)

here1am
18.04.2017
08:57:25
хз, надо код почитать=) ты стрейсом смотрел? разные модули?
ну кароч да, вызывает как исполняемый, первым аргументом передаёт файлик с параметрами, параметры в ансибловом стиле (puk=perd), но если в модуле есть WANT_JSON (судя по всему, парсит наличие текста в любом месте), то в файле оказывается жсончик

Dmitry
18.04.2017
09:48:32
То есть ставит веб-сервер одна роль, да. Которая в зависимостях. А виртуальный хост, к примеру, создаёт другая, вот эта - которая только что раскатила бэкенд.

Anufant
18.04.2017
09:53:32

Dmitry
18.04.2017
09:54:17
Чё? :)

Google

Anufant
18.04.2017
09:54:56
А? )
Я не спорю с тем, что ты написал. Но скорее немного уточняю ситуацию :) У нас есть роль, которая содает виртуалхост( на самом деле не совсем, но суть примерно такая же ). Перед тем как установить виртуал хост этой роли нужно установить некоторый код. Эта операция установки когда используется в разных местах, и для нее выделена отдельная роль. Соответсвенно получается, что роль конфигурации бэкэнда зависит от роли, которая раскладывает код. Но получается так, что роль бэкэнда слегка зависит от роли установки кода. Собственно мне и хотелось понять, как эту зависимость лучше всего организовать. Но есть верочтность, что моя вот эта ар[итектура "Дичь" (c) и тогда я хочу понять, как правильно!
Что-то я много букв пишу сегондя :)


Oleg
18.04.2017
10:02:34
Уважаемые сэры, посоветуйте опенсорцную вебморду для Ansible?
Есть вот Semaphore, но оно выглядит как-то сыро. В гугле советуют попробовать запускать анс из Rundeck, но ведь оно не вточено спецом под анс это вообще что-то отдельное
Анальные саасы и прочий кошмар просьба не советовать, дело будет происходить в закрытой криптоанархичной локалочке для инхаус разработки ?
Шпасибо, с меня как всегда ничего
Я хочу от морды, чтобы для нее было удобно было делать плагины.
Нужно чтобы админы заходили, жмякали кнопки, которые будут где-то там далеко дергать энсибл мастер, который скажем будет ворочать кластерами
И хочется чтобы эта морда искаропки знала об энсибле - понимала и хорошо отображала его логи, снимала метрики и рисовала на графиках, итп
Короче, всё как у людей чтобы было
Подошло бы купить Tower, но нельзя, можно только опенсорц фриваре

here1am
18.04.2017
10:06:24
>чтобы админы... жмякали кнопки
советую сменить админов

Andrey
18.04.2017
10:08:18

here1am
18.04.2017
10:09:30
почему?

Andrey
18.04.2017
10:29:29
потому что например тогда с "секретами" проще оперировать
у человека нет доступа к плейбуку
не всё должен делать девопс или админ
есть менее квалифицированный персонал

here1am
18.04.2017
10:31:06
ну речь шла о том, что админы должны кнопки жмякать. если кнопки должен жмякать не админ, тогда я бы спросил, а зачем это должен делать не админ (на самом деле не спросил бы)

Oleg
18.04.2017
10:33:09
когда у человека на поддержке под сотню проектов одновременно, ему иногда удобней жмякать кнопочки с хорошо продуманным UI, иначе он просто шизонется и отправится пускать слюни в дурке

here1am
18.04.2017
10:35:21
как по мне, проще скрипт/алиас накорябать, чем ещё и браузер открывать, но дело привычки наверно

Oleg
18.04.2017
10:40:02
так тебе придется название этого скрипта набивать. В голове держать все названия. Придумать какую-то схему наименований, которой фанатично придерживать. Наизусть заучивать сотни комбинаций каких-то флагов и настроечек, которые у каждого проекта свои
а так можно например, вывести на дашборд 100 на 100 элементов все текущие проекты, и цветом красить состояние проблем в них. И когда там что-то стало мигать оранжевеньким, ты в 1 клик можешь что-то там починить (потому что на квадратике есть основные кнопки "сделай мне зашибись")


Dmitry
18.04.2017
10:40:58
Я не спорю с тем, что ты написал. Но скорее немного уточняю ситуацию :) У нас есть роль, которая содает виртуалхост( на самом деле не совсем, но суть примерно такая же ). Перед тем как установить виртуал хост этой роли нужно установить некоторый код. Эта операция установки когда используется в разных местах, и для нее выделена отдельная роль. Соответсвенно получается, что роль конфигурации бэкэнда зависит от роли, которая раскладывает код. Но получается так, что роль бэкэнда слегка зависит от роли установки кода. Собственно мне и хотелось понять, как эту зависимость лучше всего организовать. Но есть верочтность, что моя вот эта ар[итектура "Дичь" (c) и тогда я хочу понять, как правильно!
Что-то я много букв пишу сегондя :)
наизнанку вывернул просто, мне кажется

Andrey
18.04.2017
10:41:07
и всё это конечно можно скриптами / кроном сделать самому
но хочется готовый продукт, слаженно работающий

Google

Andrey
18.04.2017
10:41:27
а не делать велосипед

here1am
18.04.2017
10:41:36

Oleg
18.04.2017
10:47:00
Я не спорю с тем, что ты написал. Но скорее немного уточняю ситуацию :) У нас есть роль, которая содает виртуалхост( на самом деле не совсем, но суть примерно такая же ). Перед тем как установить виртуал хост этой роли нужно установить некоторый код. Эта операция установки когда используется в разных местах, и для нее выделена отдельная роль. Соответсвенно получается, что роль конфигурации бэкэнда зависит от роли, которая раскладывает код. Но получается так, что роль бэкэнда слегка зависит от роли установки кода. Собственно мне и хотелось понять, как эту зависимость лучше всего организовать. Но есть верочтность, что моя вот эта ар[итектура "Дичь" (c) и тогда я хочу понять, как правильно!
Что-то я много букв пишу сегондя :)
В мастере энсибла есть вложенные роли

Anufant
18.04.2017
11:07:11

Denis 災 nobody
18.04.2017
11:32:48

Konstantin
18.04.2017
11:41:25
https://github.com/ansible-semaphore/semaphore

Nick
18.04.2017
11:43:50
мы семафор пробовали, но что-то не пошел - часто падал :(
остановились на rundeck - тоже со своими закидонами - но основную функцию - дать енд-юзеру возможность запускать предустановленные задачи через веб-морду - делает неплохо
"не забывай что "башня" это ещё и очередь задач и шедулер"
вот и в rundeck тоже это есть, что не может не радовать

Andrey
18.04.2017
12:03:41

Oleg
18.04.2017
13:21:33

Denis 災 nobody
18.04.2017
13:21:47
пилите опенсорс.. )
опять же, если это "побочный продукт" - нет смысла пытаться это продавать и закрывать

netten
18.04.2017
15:05:49
Всем здрасьте.
Пытаюсь вывод команд с сетевых железок записать в файл в том виде, в котором он отдаётся самим оборудованием. Но всё равно получается словарь или список.
Доки читал, гугл гуглил. Copy, lineinfile, replace, split не помогли.
Дайте кто-нибудь наводку на решение, буду премного благодарен.

Dmitry
18.04.2017
15:06:15
join ? :)

netten
18.04.2017
15:07:20
join ? :)
Получается join соберёт в одну строку. Условно, вывод меня и так в одну строку. А должен быть построчно

Единорожа
18.04.2017
15:21:32
Я идиот, спасибо)

Dmitry
18.04.2017
15:23:43
у тебя лист, список.
вывод разбился = каждая строка элемент этого списка?

netten
18.04.2017
15:25:49

Google

Dmitry
18.04.2017
15:26:10
'\n'.join(stupid_list)

netten
18.04.2017
15:27:41
Вероятно, ничего. ) Спасибо

Dmitry
18.04.2017
15:29:11
вот! :)

Max
18.04.2017
17:16:32
Итак, господа

Admin
ERROR: S client not available

Max
18.04.2017
17:16:39
есть вот такая загвоздка
docker_container:
command: --yoba {{ var }}
если var = a,b,c он считает её как три аргумента игнорируя запятые

here1am
18.04.2017
17:18:19
'{{ var }}'?

Max
18.04.2017
17:18:31
неа

here1am
18.04.2017
17:18:35
я наугад тыкаю тащемта

Lev
18.04.2017
17:19:12
а все в ковычки обернуть?

Max
18.04.2017
17:19:25
да не помогает
он видит запятые и парсит их как разные аргументы хоть ты тресни
docker inspect
args {
a,
b,
c
}

Lev
18.04.2017
17:20:11
а если там, как в кубернетесе? каждый аргумент через -

here1am
18.04.2017
17:20:13
а ты вар откуда задаёшь? может в кавычки надо пихнуть там, где задаёшь?

Max
18.04.2017
17:21:12

Google

Единорожа
19.04.2017
09:32:48
Есть скрипт который задает переменные, вызываю его при помощи shell: source setenv.sh
args:
executable: /bin/bash
Сам скрипт
for path in ${PATH_LIST};
do
export PYTHONPATH=${PYTHONPATH}:$(readlink -f ${path});
done
Эти переменные используются в софте написанном на питоне /opt/project/py35/bin/python /opt/project/blaba/gw_ms/manage.py
Но он их не видит
Все происходит в одном плейбуке
Это нормально?

A
19.04.2017
10:00:23
сделай еще один shell сразу после, и посмотри там PYTHONPATH

Anatoly
19.04.2017
10:07:16

Единорожа
19.04.2017
10:08:04

Dmitry
19.04.2017
10:10:50
хрень какую-то городят. судя по всему django. зачем править PYTHONPATH вообще?
что там за проект, которому (для импортов?) нужна такая помойка каталогов?

Единорожа
19.04.2017
10:14:55
Сервер мобильной игры)
Ладно как лучше задать сами переменные?
environment ?

Dmitry
19.04.2017
10:32:07
сделать проект нормально, чтобы эти приседания стоя в гамаке были не нужны. но боюсь, этот вариант джангоёбам не понравится, они всегда бугуртят от такого :)

A
19.04.2017
10:36:36
т.е. да, это нормально

Dmitry
19.04.2017
10:36:47
но вообще мне кажется (но я не уверен, просто не попробовал, сейчас некогда), что ты пропустил кое-что в доке (всего ансибла, а не модуля pip)
Ansible makes it easy for you to configure your environment by using the ‘environment’ keyword.