@pro_ansible

Страница 570 из 625
bebebe
05.09.2018
15:17:19
если че variable_manager.safe_basedir = '/path/to/ansible_root'
а что вы делаете? дергаете ansible из питона?

Ievgen
05.09.2018
15:17:25
да

запускаю playbook с нужными параметрами

через http api

Google
bebebe
05.09.2018
15:19:13
через http api
типа как ansible tower/awx/semaphore? rest поверх ansible?

Dumitru
05.09.2018
15:19:52
смотря какой регексп
я пока не смог такой придумать ? так чтобы каждый раз дергал следующую строку

Ievgen
05.09.2018
15:20:38
типа как ansible tower/awx/semaphore? rest поверх ansible?
мм что то вроде, есть маленькая специфическая самописная штучка которая дергается через http и запускает определенный playbook с параметрами которые прилетели в POST

bebebe
05.09.2018
15:21:25
мм что то вроде, есть маленькая специфическая самописная штучка которая дергается через http и запускает определенный playbook с параметрами которые прилетели в POST
понятненько ? я такое делал более грубо на openresty (nginx+lua) а почему не используете awx? он "тяжелый" для ваших задач?

Udjin
05.09.2018
15:22:09
hostvars[m] это dict.
а куда копать, соориентируй пожалуйста)

Ievgen
05.09.2018
15:23:43
понятненько ? я такое делал более грубо на openresty (nginx+lua) а почему не используете awx? он "тяжелый" для ваших задач?
потому что в целом используем rundeck а эта штука была напилена вокруг http://python-rq.org/ чтобы быстро организовать очереди

ну и rundeck появился еще до того как awx стал чем то вменяемым

bebebe
05.09.2018
15:24:40
потому что в целом используем rundeck а эта штука была напилена вокруг http://python-rq.org/ чтобы быстро организовать очереди
хахаха, знаю эту проблему, сам запускаю ansible из rundeck на одном проекте. у меня там уже счетчик джоб перевалил за 40k! :) понимаю вашу боль,

Ievgen
05.09.2018
15:26:19
та в целом боли нет особо ) работает, кушать не просит особо, хистори тасков чистится по крону )

bebebe
05.09.2018
15:27:36
у меня он там дюже стааарый (2.6.1) что-ли

я даже версию побаиваюсь посмотреть, чтобы лишний раз не трогать и что бы оно не развалилось

Ievgen
05.09.2018
15:30:44
)

Google
bebebe
05.09.2018
15:31:28
что-бы завершить оффтопик, вы rundeck для службы поддержки делаете?

Ievgen
05.09.2018
15:33:02
не совсем, изначально чтобы быстро получить http интерфейс с динамическим inventory ну и как сайд эффект, те кто не умеют в ansible могут тыкать кнопочки

bebebe
05.09.2018
15:36:28
не знаю на сколько вы закопались в rundeck, но по идеи awx вам больше подходит

Ievgen
05.09.2018
15:40:40
надо тестить

awx умеет динамический inventory из амазона?

Vadim
05.09.2018
15:41:41
умеет

Ievgen
05.09.2018
15:42:07
тогда +1 за потестить

)

просто когда закапывались, awx помоему только появился

bebebe
05.09.2018
15:43:17
тогда не плодите сучностей, посмотрите в сторону awx

Ievgen
05.09.2018
15:43:34
так и будет

видимо

bebebe
05.09.2018
16:06:41
а куда копать, соориентируй пожалуйста)
нужно в template подставлят не hostvars[m] - что является dict из всех возможных свойств хоста m нужно подставлять hostvars[m].inventory_hostname или где у вас там ойпишник сидит

Denis
05.09.2018
16:10:59
У кого есть позитивный опыт с Rundeck? Нужна обратная связь. подбираю инструмент с web-ui для запуска скриптов\playbook`ов, пользовали AWX, но многовато багов и заточенность под ansible. Из основных требований возможность запускать произвольные таски (от скриптов на баше, до playbook`ов) из web-iu, с возможность гибко задавать формы для ввода параметров, которые будут переданы этим таскам, контроль выполнения, гибкое управление правами доступа, очень желательно удобный API. Какие у меня есть варианты?

Maksim
05.09.2018
16:16:49
Jenkins

Denis
05.09.2018
16:17:36
это overkill, кмк

Wom
05.09.2018
16:28:29
bebebe похоже, что ipv4[0] - это "фича" для macos

Google
Ievgen
05.09.2018
16:33:37
плагины есть, формы с параметрами есть, rest есть описание api на сайте, можно ~грабить корованы~

под капотом жаба

Denis
05.09.2018
17:00:29
Спасибо, будем думать дальше

bebebe
05.09.2018
17:27:44
Попробую не забыть завтра проверить 4 варианта
я "лайтово" гуглил, ничего такого не нашел...

Terminator
05.09.2018
19:42:47
@ivadim1 будет жить. Поприветствуем!

bebebe
05.09.2018
20:26:29
С октября полёт нормальный.
но октябрь ведь только через 25 дней??/

Sergey
05.09.2018
20:27:55
Ну с прошлого так-то

bebebe
05.09.2018
20:29:57
?

Sergey
05.09.2018
20:40:44
?
редкий случай - так толсто, что аж тонко ?

Vadim
05.09.2018
20:44:38
С октября полёт нормальный.
интересно. А сколько примерно билдов\запусков в день?

Sergey
05.09.2018
20:49:00
интересно. А сколько примерно билдов\запусков в день?
Сами билды у меня были на дженкинсе, а запуски ансибла - именно из рандека. По-разному бывает, может до десяти доходить, а бвыает, что и пару дней никто ничего не релизит. Мозг эта штука не ест вообще, ибо джава. Полиси настраиваются в YaML, им же можно вгрузить джобы и выгрузить, ну и REST API. Авторизация - через LDAP, с поддержкой групп. В общем, этот кусок стека причинял хлопот меньше всего.

Vadim
05.09.2018
20:49:34
Ясно, спасибо

Sergey
05.09.2018
20:51:41
Ну и до кучи есть плагин чудесный - с ним рандек внезапно начинает уметь в ансибловый инвентори (https://github.com/Batix/rundeck-ansible-plugin), читать факты с хостов и гонять на них баш-команды, модули с параметрами, а также плейбуки целиком.

Google
Alexander
05.09.2018
20:53:20
{% for host in host_group %} как здесь порядковый номер итерации вывести? {% endfor %}

loop.index?

Sergey
05.09.2018
20:54:51
http://jinja.pocoo.org/docs/2.10/templates/#for

да, loop.index

Alexander
05.09.2018
20:55:18
tyvm

Nikolai
05.09.2018
20:57:01
только там с loop.index0 начинается

Dmitry
05.09.2018
21:11:30
Ломаю голову над тем, как намутить правильный git flow с репозиторием, когда в инвентаре несколько сред

Если есть кто не спит, подкиньте пару вводных мыслей

Admin
ERROR: S client not available

Dmitry
05.09.2018
21:18:14


роли нормально под git flow подходят, но как быть с инвентарем, групповыми переменными и прочими вещами

Gleb
05.09.2018
21:19:15
а в чем проблема то?

Dmitry
05.09.2018
21:19:56
а в чем проблема то?
Что происходит с тем, что находится в environment? оно перетаскивается по всем средам?

тогда зачем нам держать dev в ветке stg?

Gleb
05.09.2018
21:23:32
все равно не понятно, Мне даже не очень понятно почему вообще роли отличаются? Зачем вообще это куда-то переносить? Роли для того и придумали чтоб переиспользовать их многократно без копирования

Dmitry
05.09.2018
21:23:46
речь идет о git flow

когда мы деплоим dev, потом говорим что все хорошо и промоутим дальше

Vadim
05.09.2018
21:44:56
Dmitry
05.09.2018
21:56:23
Может не стоит хранить несколько инвентарей в одной ветке?
Ну вот это ближе к делу. разделить по веткам как вариант

Google
Dmitry
05.09.2018
21:57:25
но тогда вопрос первый - как делать изменения к инвентарю... По идее можно дслетьа feature-branch, и с него потом сливать в среду. например dev-add-mysql

но тогда не понятно как будет выглядеть добавление mysql с нуля

1. git checkout dev && git checkout -b dev-add-mysql 2. Create PR, Merge PR 3. ???

Vadim
05.09.2018
21:59:20
Я ничего в гитфлоу не понимаю, но мы так и делали - stage-do-foo

Dmitry
05.09.2018
21:59:53
Я ничего в гитфлоу не понимаю, но мы так и делали - stage-do-foo
Ну это базовый и урезаный гит флоу, когда мы последовательно мигрируем из dev в prod по веткам

Sergey
05.09.2018
22:00:13
Dmitry
05.09.2018
22:00:22
(от тебя))

Sergey
05.09.2018
22:00:45
Спасибо, приятно.

Расскажу, что делал и что успешно взлетело.

Dmitry
05.09.2018
22:01:12
Я готов?

Sergey
05.09.2018
22:02:43
Гит флоу - это в первую очередь для разработчиков, ибо их много, у них много веток и всего такого. Сработавший в тех ситуациях, которые я видел и делал, кейс - это отдельная репа, где лежат все роли и инвентори (структура проекта по бест практис из доки ансибла).

Код собирается в артефакты, которые грузятся в репозиторий.

Sergey
05.09.2018
22:04:49
Правильно ли я понимаю, что ты хочешь опистаь процесс для случая нескольких веток именно девопс-репозитория для вновь запиливаемых ролей?

Dmitry
05.09.2018
22:06:02
Правильно ли я понимаю, что ты хочешь опистаь процесс для случая нескольких веток именно девопс-репозитория для вновь запиливаемых ролей?
точно. То есть сейчас легаси вариант когда все среды в одной ветке. Я хочу промоутить изменения из дева в прод. Например сменил шаблончик jinja, задеплоил в дев - понравилось, сделал PR dev->stg, смержил, оно само поехало в stg

Sergey
05.09.2018
22:11:47
Ты сразу налипаешь на неприятные эффекты. Вот смотри. IaaC предполагает, что где-то в репе у тебя запинены точные версии компонентов, и почти в каждый момент времени эти версии соответствуют действительности. Еслы деплоить из некоей ветки (условно - devel), то номера версий могут быть закоммичены именно в неё, а не в master, из которого всё ставится. Это боль.

Иными словами, статус "single source of truth" с devops-репозитория автомагически слетает.

Страница 570 из 625