@pro_ansible

Страница 273 из 625
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
что именно писать ещё раз? роль одна, теги задают вызываемую часть
{ role: xxx, tags: [ aaa, vvv ] } — есть роли которые используются в разных плейбуках. где то нужно только инстал сделать, где то и инсталл и конфигурация

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.

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

@im_citius ну, кстати, данная хрень - для разворачивания OS - из шела генерю токен. Думаю, что легче будет под каждую инсталяцию просто генерить токен вручную

Sergey
18.09.2017
09:24:57
>Если ему нужен ещё кто-то - ок, вызываем другую роль. а можно пример кода для чего-то боль-мень сложного? интересно. например какой нить компонент опенстека который зависит от nginx, haproxy.
пожалуйста. из того, что под рукой: (roles/Graylog2/graylog-ansible-role/meta/main.yml) —- dependencies: - role: 'lesmyrmidons.mongodb' when: graylog_install_mongodb - role: 'elastic.elasticsearch' when: graylog_install_elasticsearch - role: 'jdauphant.nginx' when: graylog_install_nginx

но это, скажем так, более высокоуровневый вызов - тегов тут нет, здесь скорее аналог автоу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
Подскажите, плз, как сделать что бы файл всегда создавался на целевой системе? Даже если я его удалил на ней руками

тнн Itjunky
18.09.2017
09:28:56
зависит от содержимого файла (может быть три разных модуля)
Ну вот я его копирую из подскаталога files

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

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
пожалуйста

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
кто нибудь щупал chocolatey ?
если поищешь по истории сообщений - там можно много чего прочитать про него )

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
всмысле поставлять приложение в виде пакетов?

Алексей
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
делай через stat
пасиба, попробуем :)

я сейчас тоже на этом перепутье
но ведь не все поставляется в виде пакетов

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
так что вы тоже можете. но не забывайте страдать.

Dmitry
19.09.2017
13:51:10
но чег оя говорю я тоже не пакетами.
я сейчас в страшном признаюсь. привет, я Дима, мне 39 и у нас бэкенды обновляются через hg pull, а не через pip install :(

Dmitry
19.09.2017
13:51:35
приложение то не наше :)
и что? руки отсохнут невнятный архив перепаковать в deb?

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

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

Vladimir
19.09.2017
14:02:38
Ну или аналог fpm есть ещё: https://github.com/flussonic/epm

Слово Erlang не должно отпугивать. :) Там всё пакуется :)

Алексей
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{

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