
Алексей
18.09.2017
09:13:23

Sergey
18.09.2017
09:13:35
---
# tasks file for haproxy
- include: install.yml
tags:
- install
- include: configure.yml
tags:
- configure
handlers: restart haproxy
- include: stop.yml
tags:
- stop, restart
- include: start.yml
tags:
- start, restart
- include: status.yml
tags:
- status

Алексей
18.09.2017
09:13:43
немного костыль но лучше чем таски перед ролью

Ilya
18.09.2017
09:15:05
есть же pre_tasks

Google

Ilya
18.09.2017
09:15:16
правда не ассоциируешь с конкретной ролью

Алексей
18.09.2017
09:15:20
претаск выглядит как хрень

Konstantin
18.09.2017
09:15:26

Ilya
18.09.2017
09:15:37

Алексей
18.09.2017
09:16:45
ну и вообще выглядит как официально зарегистрированный костыль

Sergey
18.09.2017
09:18:16
{ role: xxx, tags: [ aaa, vvv ] } — есть роли которые используются в разных плейбуках. где то нужно только инстал сделать, где то и инсталл и конфигурация
...вон оно что, Михалыч.... (С)
Не зная деталей, сложно рекомендовать что-то конкретное. Лично я на своих проектах пользуюсь очень простой философией: одна роль = один компонент. Если ему нужен ещё кто-то - ок, вызываем другую роль. Явно, неявно, с тегами, без тегов - это уже вторичные детали, и "your mileage may vary".

Ilya
18.09.2017
09:20:08
>Если ему нужен ещё кто-то - ок, вызываем другую роль.
а можно пример кода для чего-то боль-мень сложного?
интересно.
например какой нить компонент опенстека который зависит от nginx, haproxy.

Konstantin
18.09.2017
09:20:29

Dmitry
18.09.2017
09:21:16
@im_citius @freeseacher Спасибо, коллеги, буду ковырять разные решения. Сначала надо понять самому, как лучше сделать.
@im_citius ну, кстати, данная хрень - для разворачивания OS - из шела генерю токен. Думаю, что легче будет под каждую инсталяцию просто генерить токен вручную

Sergey
18.09.2017
09:24:57
но это, скажем так, более высокоуровневый вызов - тегов тут нет, здесь скорее аналог автоуcтановщика. зато автовызовы ролей - есть

Google

Sergey
18.09.2017
09:26:28
или куда-то вот сюда:
roles/rundeck/meta/main.yml:
dependencies:
- { role: geerlingguy.java, java_packages: [ 'java-1.8.0-openjdk' ], java_home: '/usr/lib/jvm/jre' }

Ilya
18.09.2017
09:27:28
@tnt4brain спс.

тнн Itjunky
18.09.2017
09:27:37
Подскажите, плз, как сделать что бы файл всегда создавался на целевой системе? Даже если я его удалил на ней руками

Sergey
18.09.2017
09:28:39

тнн Itjunky
18.09.2017
09:28:56
В первый раз он прилетел на целевую систему. Потом я его поменял у себя, но он не обновился на целевой системе и я его удалил. Но при повторном запуске он не появляется, хотя после выпоолнения таска всё зелёным и ок

Sergey
18.09.2017
09:30:30
http://docs.ansible.com/ansible/latest/copy_module.html#copy
force=yes
если не появляется - значит, ты имеешь в виду один файл, а ансибл обращается к другому

тнн Itjunky
18.09.2017
09:31:35
Хмм, щас форс попробую, спасибо
И правда помогло, спасибо.

Sergey
18.09.2017
09:49:39
пожалуйста

Алексей
18.09.2017
10:08:34

Matvey
18.09.2017
17:11:29
посоны, у меня есть две роли - nginx и docker, у обоих в зависимостях стоит роль base. если я назначу обе этих роли на одну тачку, то base два раза применится?

Алексей
18.09.2017
17:17:02
Да

Matvey
18.09.2017
17:24:41
а почему так сделано

Konstantin
18.09.2017
17:27:50
Один раз, почему два
Один раз изменин, второй раз нет

Matvey
18.09.2017
17:34:40
ну плэя то два получится
а вот и нифига, один раз он плэй делает если роли пересекаются, проверил

Anton
18.09.2017
17:39:41
Хм, у меня даже и мысли бы не могло возникнуть о том, что оно может делать это больше одного раза. Абсолютно очевидно же, что глупо применять одно и то же.

Dmitrii
18.09.2017
18:27:09
Такой вопрос. А у кого сколько переменных объявлено в среднем в файле group_vars для проектов?

Google

Matvey
19.09.2017
07:23:50
у меня больше всего скорей в hosts_vars

Lev
19.09.2017
09:11:17
Было?
А тем временем, сегодня Ansible обновился до версии 2.4
Из основных изменений:
— Множество новых модулей для облаков, сетей, windows
— become для windows хостов
— Новая директива order, позволяющая переупорядочивать выполнение тасков на хостах
— Директиву include разделили на import/include
— Много улучшений в inventory
— Перестали поддерживаться python 2.4, 2.5
https://goo.gl/q1vfCu

Nklya
19.09.2017
09:11:56
Неа

Алексей
19.09.2017
09:21:00
инвентори в виде yaml!
ура

Maksim
19.09.2017
09:32:08
про windows надо почитать
кто нибудь щупал chocolatey ?
в винде так просто не задашь http_proxy через который chocolatey может скачивать пакеты
на сколько я знаю, ансибл можно использовать локально, то есть он будет по крону накатывать плейбуки дергая их из git'а

Kirill
19.09.2017
09:43:10

Pavel
19.09.2017
09:52:30
инвентори в виде yaml!
ну не знаю, у меня давно уже сам "инвентори" - только декларирование групп и хостов (только имена), а все параметры - в переменных в хост_варс и груп_варс (а там ямл)

;)
19.09.2017
09:53:15
Кто нибудь в курсе чат по докеру есть?

Pavel
19.09.2017
09:53:46

;)
19.09.2017
09:53:52
Спс

Алексей
19.09.2017
09:58:12
или же официальная группа. @ru_docker

Vitaliy
19.09.2017
13:44:52
Коллеги, просветите пожалуйста. Есть приложение разворачивается очень просто. из архива :) Используем модуль unarchive. ансибл каждый раз распаковывает архив и заменяет файлы.
как это делать правильным образом? чтобы распаковал 1 раз, и если директория существует, то не повторял каждый раз

Алексей
19.09.2017
13:45:59
через пару итераций решения проблемы придете к пакетам.
проверено

Vitaliy
19.09.2017
13:46:59
что за пакеты?

Google

Алексей
19.09.2017
13:47:13
пакаты операционой системы
deb/rpm

Vitaliy
19.09.2017
13:47:20
всмысле поставлять приложение в виде пакетов?

Maksim
19.09.2017
13:47:26

Алексей
19.09.2017
13:48:06
там много на самом деле костыльных решений разной степени рабочести.

Vitaliy
19.09.2017
13:48:28

Алексей
19.09.2017
13:48:38
unarchive в /tmp/random
сopy /tmp/random /opt/app

Maksim
19.09.2017
13:48:39
- name: check archive exist
stat:
path: /tmp/xxxx
register: stat_result

Vladimir
19.09.2017
13:48:45
+ за пакеты. штатный и самый универсальный способ

Dmitry
19.09.2017
13:48:47

Алексей
19.09.2017
13:49:02
наименее костльное. но всё равно потом будут с ним вопросы и в итоге пакеты.

Maksim
19.09.2017
13:49:06
делай через stat

Алексей
19.09.2017
13:49:17
я сейчас тоже на этом перепутье

Vitaliy
19.09.2017
13:49:22

Maksim
19.09.2017
13:50:03
- name: check archive exist
stat:
path: /tmp/apache-servicemix-7.0.0.zip
register: stat_result

Алексей
19.09.2017
13:50:05
да. и тут вохникает соблазн присоединится к не всем.

Dmitry
19.09.2017
13:50:13

Алексей
19.09.2017
13:50:14
но чег оя говорю я тоже не пакетами.
но я _страдаю_ что не пакетами.

Google

Алексей
19.09.2017
13:50:44
так что вы тоже можете. но не забывайте страдать.

Vitaliy
19.09.2017
13:50:57

Dmitry
19.09.2017
13:51:10

Алексей
19.09.2017
13:51:28

Dmitry
19.09.2017
13:51:35

Алексей
19.09.2017
13:51:42
ну я чуть помоложе...

Anatoly
19.09.2017
14:01:44
приложение то не наше :)
Написать скриптец который будет упаковывать не_ваше приложение в нужный вам вид не рокет сайнс вроде
https://github.com/jordansissel/fpm/wiki
Ну и хранить артефакт таки надежнее у себя в репке чем надеяться на то что сайт компании рога и копыта всегда будет сервить вам правильную версию пакета...

Vitaliy
19.09.2017
14:02:36

Vladimir
19.09.2017
14:02:38
Ну или аналог fpm есть ещё: https://github.com/flussonic/epm
Слово Erlang не должно отпугивать. :) Там всё пакуется :)

Denis 災 nobody
19.09.2017
14:29:07
Но своя репа это легко.

Алексей
19.09.2017
14:55:19
оно под капотом fpm юзает :)

Vladimir
19.09.2017
14:55:42
:)

Алексей
19.09.2017
14:56:41
хотя я конечно тот еще читатель ерланга

Vladimir
19.09.2017
14:57:12
я проверяю, ща) но не помню, чтобы я fpm ставил

Алексей
19.09.2017
14:57:51
ну там просто в коде уж очень часто встречается fpm{