
Pavel
26.06.2018
11:42:24
Но тогда я не понимаю, о чём всё же написано в оф. статье
https://docs.ansible.com/ansible/latest/reference_appendices/galaxy.html?highlight=galaxy#dependencies

Vladimir
26.06.2018
11:42:54
Что тебе там не ясно ?!
Я уже 100 раз рассказал же

Vasiliy
26.06.2018
11:43:22
Может кто подсказать - что не так с инвентори в yaml
$ cat inventory.yml
all:
vm:
ubuntu-bay10:
ansible_ssh_host: 192.168.80.36
ansible_ssh_user: root
$ ansible -i inventory.yml -m shell -a 'uname -a' vm
[WARNING]: provided hosts list is empty, only localhost is available
$ ansible --version
ansible 2.1.1.0

Google

Vladimir
26.06.2018
11:44:33
файл hosts ...

Pavel
26.06.2018
11:44:34
То есть нет понимания, зачем прописывать зависимости в "meta/main.yml", если ВСЁ-РАВНО придётся запустить ansible-galaxy перед выполнением всего плейбука? Я надеялся, что в этом случае ansible-playbook скачает зависимости по URL сам.

Vladimir
26.06.2018
11:44:52
А стоп все верно не то
мета для ansible galaxy а не для ansible playbook

Pavel
26.06.2018
11:46:55

Vasiliy
26.06.2018
11:47:00

Vladimir
26.06.2018
11:47:03
и скидывай на пастбин или что то подобное читать не удобно

Nklya
26.06.2018
11:47:16

Vladimir
26.06.2018
11:47:27
Я уже писал это ему
А playbook ругается значит там и есть проблема с синтаксисом!
ansible-playbook не читает твой файл МЕТА

Pavel
26.06.2018
11:48:18

Google

Pavel
26.06.2018
11:48:57

Nklya
26.06.2018
11:50:01
Не читает ансибл плейбук никакую мету. Нахер надо оно ему?

Vladimir
26.06.2018
11:50:23

Pavel
26.06.2018
11:50:51

Nklya
26.06.2018
11:50:52

Vladimir
26.06.2018
11:50:52
https://docs.ansible.com/ansible/2.5/user_guide/playbooks_reuse_roles.html#using-roles

Pavel
26.06.2018
11:52:48
Потому как для одной роли в одном и том же плейбуке я хочу поднять одну версию кластера БД, а для других более старую.

Nklya
26.06.2018
11:53:38
Как говорится, PRs are welcome

Vladimir
26.06.2018
11:54:19

Nklya
26.06.2018
11:54:33
Странные решения рождаются из странных задач

Pavel
26.06.2018
11:55:01
Роль другая получается. Причём тут факты. Это как бы другая версия репозитория. Старая версия MySQL, например.

bebebe
26.06.2018
11:55:27
что-то утомительно как-то, давай начнем с простого
какую проблему вы решаете?

Nklya
26.06.2018
11:55:55

Pavel
26.06.2018
11:56:42
какую проблему вы решаете?
В разных ветках разных головных репозиториев, с плейбуками, использовать вспомогательные репозитории, и желательно разных версий.
Вот пример из оф. доки:
dependencies:
- src: geerlingguy.ansible
- src: git+https://github.com/geerlingguy/ansible-role-composer.git
version: 775396299f2da1f519f0d8885022ca2d6ee80ee8
name: composer
Который бы меня устроил. Но он не работает.

Nklya
26.06.2018
11:58:01

bebebe
26.06.2018
11:58:17
артефакты в виде контейнеров вам должен деливерить сам CI

Google

Pavel
26.06.2018
11:59:06

Nklya
26.06.2018
11:59:51
И что?

bebebe
26.06.2018
11:59:55
это один из бест-практисов, либо пригласите в чатик сюда человека который вам инфру делает, я ему объясню за жизнь

Pavel
26.06.2018
12:00:49
артефакты в виде контейнеров вам должен деливерить сам CI
Но задача не в этом. А в гибкости синтеза конечного продукта. То етсь основную ветку тестировать со старой версией БД, потом с новой. Потом девелоп ветку со старой, потом с новой. Потом легаси ветку, со старой и новой версией кластера БД. Вот в чём задача.

bebebe
26.06.2018
12:01:16

Pavel
26.06.2018
12:01:30

bebebe
26.06.2018
12:02:06
еще раз, на мой взгляд, у вас проблема не совсем ансибла, а подхода к процессу, тут скорее нужен @devops_ru чатик или похожее

Nklya
26.06.2018
12:02:11

Pavel
26.06.2018
12:03:15
Тут у меня лично, только одна проблема. Я лишь правлю плейбуки и запускаю, некоторые из них пишут сами разрабы. И они хотят выбирать сами без CI, какую версию им использовать, например локально.

Vladimir
26.06.2018
12:03:24
Где ты можешь указать если из мастера то такое то делать и такие переменные

Vladimir
26.06.2018
12:03:49
Вы решаете проблему CI CD через ansible

Pavel
26.06.2018
12:04:07

Vladimir
26.06.2018
12:04:16
https://docs.gitlab.com/ee/ci/environments.html
В gitlab ci все достаточно гибко и просто, а про jenkins я не знаю.

Pavel
26.06.2018
12:04:42

Vladimir
26.06.2018
12:04:55
Но думаю там такое тоже решается
Гелакси
Это как github для git

Google

Nklya
26.06.2018
12:05:10
Вы прослушали час наркомании

Vladimir
26.06.2018
12:05:25

Pavel
26.06.2018
12:05:26
И ничего из этого не почерпнули)))
Зато приятно пообщаться с умными людьми!
Когда ещё такое повторится :)

Vasyl
26.06.2018
12:06:19
Господа, такой вопрос возник. Есть кластер с приложением, перед которым стоит nginx в качестве балансировщика. Все ноды кластера прописаны в апстриме. При деплое новой версии приложения надо по одной вытаскивать ноды из апстрима, апдейтить и возвращать обратно. Есть ли какой-нибудь цивилизованный способ это делать?
мне в голову приходит только костыль с shell: 'sed ...."

Pavel
26.06.2018
12:08:34

Admin
ERROR: S client not available

Vladimir
26.06.2018
12:08:37
Делегировать на хост менять темплейт по ходу я думаю как то так

Pavel
26.06.2018
12:09:33
Можно и Консул

Денис
26.06.2018
12:10:04
подскажите как делать проверку переменной и если её нет то не выполнять блок
вот такая конструкция фейлится
{% if bgp.network is not undefined %}
jfjfjfjfjf
{% endif %}
такая тоже
{% if bgp.network is defined %}
jfjfjfjfjf
{% endif %}

Pavel
26.06.2018
12:10:24
Можно вообще сделать чтобы nginx через LUA из Консула запрашивал переодически рабочие конфиги сервисов...

Vasyl
26.06.2018
12:10:41
пойду посмотрю что есть подходящего в инфре. спасибо.

Artem
26.06.2018
12:10:45

bebebe
26.06.2018
12:10:48

Pavel
26.06.2018
12:10:49

Vladimir
26.06.2018
12:11:00
покажешь?)
https://www.nginx.com/blog/service-discovery-with-nginx-plus-and-consul/

Artem
26.06.2018
12:11:25
нарисовать на бумаге и я могу

Google

Artem
26.06.2018
12:11:29
я про луашный код говорю

bebebe
26.06.2018
12:12:00
Вообще у nginx есть health check backend
Можно да и openresty

Artem
26.06.2018
12:12:23
мне интересно, как consul-template можно заменить lua’шечкой

Andrew
26.06.2018
12:12:53

Artem
26.06.2018
12:13:07
благодарствую

Pavel
26.06.2018
12:13:10
покажешь?)
Ты думаешь это оптимальный вариант? Я не знаю, как часто сервисы меняются и т.д. Может лучше будет, чтобы некий вачдог, дёргал nginx с подменой конфигов, через тот же confd. Рекомендую сделать так.

bebebe
26.06.2018
12:13:15

Artem
26.06.2018
12:13:57
ну это всего-лишь апстримы ?
это не удалит и не добавит новые location’ы, в отличии от consule-template'а

bebebe
26.06.2018
12:16:10
можно хоть весь роутинг location'ов в базе держать

Vladimir
26.06.2018
12:16:29
https://github.com/weibocom/nginx-upsync-module
А не лучше с плагином тогда собрать nginx и юзать

bebebe
26.06.2018
12:16:45
вообщем до сих пор не понятно причем тут ansible

Artem
26.06.2018
12:17:39

Павел
26.06.2018
12:36:26
Доброго времени суток!
Подскажите, пожалуйста, есть такая вот хреновина: https://github.com/mobz/elasticsearch-head
С помощью Ansible стягиваю на сервер эту репу,
Затем его с помощью command: 'npm install'
После этого, нужно запустить команду nohup npm run start &. РУчками оно запускается и работает в фоне как надо. Ансибл же не может запустить это, так как привыполнении npm пытается понять, что ж за & такой
Ошибка:
npm ERR! elasticsearch-head@0.0.0 start: `grunt server \"&\"

Vladimir
26.06.2018
12:37:42
https://docs.ansible.com/ansible/latest/modules/npm_module.html
Для npm есть модуль

Sergey
26.06.2018
12:38:01