
nikoinlove
27.02.2017
15:59:36
ну почему не было. и сейчас нету

Dmitry
27.02.2017
17:57:57
фидорас бы скорее 2all написал
так что присоединяюсь к предъяве за слаковую хипстоту :)

Dmitry
28.02.2017
06:45:20
а ничего не менялось в 2.2х из-за чего у меня перестало тянуть groups.* в этом месте
- name: verify backend db response
uri: url=http://{{item}}/db return_content=yes
with_items: groups.webserver
register: app_db

Google

Dmitry
28.02.2017
06:45:24
?
группы тянутся из инвентори который указан в ansible.cfg

Denis
28.02.2017
07:45:49
with_items: "{{groups.webserver}}"

Dmitry
28.02.2017
07:46:52
Блять, кадаж это кончится

Bogdan (SirEdvin)
28.02.2017
09:51:23
Вот ведь херня: https://github.com/ansible/ansible/issues/11536

Sander
28.02.2017
13:12:46
Всем привет,
спросить про ansible хотел несколько вопросов,
1) у меня 100500 сайтов как мне в моем случаи организовать playbooks для каждого сайта?
в ansible и логически наверное делать один playbook для сайта, example: ansible-playbook/websites/site.ee.yml
2) как и где лучше всего хранить ssh ключи и как подключать их к ansible проекту?
так как для каждого сайта будет свой ключ.
3) В проекте с ansible, я храню ansible-vault шифрованные пароли, но проблема состоит в том что, я не хочу их хранить в git, но они находятся в одном проекте с ansible, как быть в моей ситуации?
Обычно я их хранию в group_vars или host_vars.

Dmitrii
28.02.2017
13:17:21
3) У нас подключен репозиторий с ключами как git submodule

A
28.02.2017
13:17:43
1) а тебе точно нужен плейбук для каждого сайта? они совсем-совсем по разному деплоятся?
2) ключи ssh хранить на своей машине
3) не вижу никаких проблем хранить зашифрованные в гите

Sander
28.02.2017
13:37:12
@pzskc383
1) слишком много логики, всегда все может быть разное.
Различия в подключаемых ролях, приходится всякие проверки через when писать, выглядеть начинает очень грязно...
Но логики хватает, может быть разные db(mysql, mongo, ..), разные язки (go, nodejs, php).
---
Сложно тут сказать как лучше сделать...
2) Хранить в ~/.ssh/ ? Но как я их буду подключать к ansible, когда он будет подключаться к какой-либо машине?
По default, он будет сучать только в id_rsa.
3) Не знаю, у меня какая-то мысль дикая, папку group_vars, host_vars как-то отдельно?
какие-нибудь еще мысли?
-----------------------------------

A
28.02.2017
13:39:19
ансибль по дефолту юзает /usr/bin/ssh, а тот берет все ключи которые есть в ssh-agent
или настройки ключа из .ssh/config

Sander
28.02.2017
13:40:03
надо тогда в настройки прописывать .ssh/config ..
а в ansible можно как-то прописать какой ему ключ ловить

A
28.02.2017
13:40:03
т.е.
Host fake-and-gay
HostName 10.45.14.242
User centos
IdentityFile ~/.ssh/kp1.pem

Google

A
28.02.2017
13:40:25
да, что-то было в инвентори касательно ключа, посмотри в доке

Sander
28.02.2017
13:40:34
и просто указывать тогда в intevnories ansible_host
ansible_host=fake-and-gay
а есть ли способ чтоб быстро создать файлик config, со всеми хостами?
может через jinja2? чтоб каждый раз ручками это не делать
чтоб брал весь список хостов и создавал

jagga
28.02.2017
13:55:26
bash


A
28.02.2017
14:22:55
хм, смотрите.
есть ансибль, есть кучка машинок на рекспейсе.
еще есть pyenv и тут начинается веселье.
дело в том, что ansible у меня установлен в системном питоне, а ранзые пакеты для доступа к рекспейсу (pyrax, nova) в отдельном pyenv потому что они с чем-то системным конфликтовали, не помню.
соответственно когда я переключаюсь в pyenv где они работают, у меня корёжит ансибль:
~/dev/hmm/ansible git:master % ansible -i inventory --list-hosts all
ERROR! Attempted to execute "/home/maniac/dev/hmm/ansible/inventory/rax.py" as inventory script: Inventory script (/home/maniac/dev/hmm/ansible/inventory/rax.py) had an execution error: Traceback (most recent call last):
File "/home/maniac/dev/hmm/ansible/inventory/rax.py", line 171, in <module>
from ansible.constants import get_config, mk_boolean
ImportError: No module named ansible.constants
я конечно плюнул и просто доставил ansible той же версии что и в системе в этот энвайронмент, но может у кого-то есть лучше решения в голове?


hamper ?
28.02.2017
15:59:26
А можно как-то в ансибле в group_vars генерить массивы на основе списка серверов? То есть например абстрактно у мне надо получить что-то типа такого
serv_vars:
- some text [ip1]
- some text [ip2]
где [ip1], [ip2] берутся из хостов в groups['all'].

Dmitrii
28.02.2017
16:01:18
Можно создавать группы налету

hamper ?
28.02.2017
16:06:56
Ну просто я вот эту роль заюзать захотел https://galaxy.ansible.com/mikegleasonjr/firewall/ и не придумал как через нее можно в группах серверов разрешить трафик с серверов этой же группы.

Bogdan (SirEdvin)
28.02.2017
16:07:02

hamper ?
28.02.2017
16:07:09
Опять похоже свой костыль писать придется.

Dmitrii
28.02.2017
16:11:17
А кто вообще что то из галакси использует?
Там обычно или говно, или на столько переусложненная роль, что проще куски из нее попиздить в свою и забыть.

Hackru
28.02.2017
16:12:04
это так, но как тогда апдейты получать?

Dmitrii
28.02.2017
16:12:58
Апдейты чего?
Лучше тебя никто твою инфраструктуру не знает
Как правило тебе апдейты не нужны

Hackru
28.02.2017
16:13:46
ну типа ты скопипастил кусок роли

Google

Dmitrii
28.02.2017
16:13:59
и?

Hackru
28.02.2017
16:13:59
а в апстриме там за пол года накоммитили импрувментов
особенно когда там что-то серьезное типа postgres
руками утомишься перекидывать

Dmitrii
28.02.2017
16:14:39
Нахера они нужны если у меня старая роль раскатывает все отлично?
Если что то типа постгреса то тут тоже не все однозначно
Не видел еще ни одной роли которая бы "влилась" в текущую инфраструктуру как надо

hamper ?
28.02.2017
16:16:09
elasticsearch я из гитхаба вообще из мастера вытащил потому что в гелакси нет коммитов которые мне подозрительно нужными показались.
aerospike тоже с гитхаба нашел вполне неплохую роль правда кое-что мне в ней сильно не нравится но переделывать времени нет
под clickhouse вот свое писал
Потому что не смог ничего нормального найти вроде.

Pavel
28.02.2017
16:20:30
Я использую галакси только со своими ролями, держу их в репах.
А сторонние роли и правда нафиг не нужны, там заимпрувят, а оно у тебя на серверах все потрет
Или поставит новую мажорную версию софта.

hamper ?
28.02.2017
16:23:25

Pavel
28.02.2017
16:24:16
Ну хорошенько проревьюить роль занимает по времени не сильно меньше чем написать самому.
А еще как правило роль не полностью подходит и процентов 10 надо выпиливать

hamper ?
28.02.2017
16:24:51
Ну вот например официальная роль от эластика https://github.com/elastic/ansible-elasticsearch почему бы ее не использовать что бы поставить этот эластик?

Admin
ERROR: S client not available

Google

hamper ?
28.02.2017
16:25:40
Потом к части ролей привыкаешь и уже просто таскаешь их из одного проекта в другой

Pavel
28.02.2017
16:26:44
Сразу вопрос - как будет обновляться elasticsearch у такой роли?
Если надо новую версию поставить.
Сразу вопрос номер два - закрывает ли эта роль эластик торчащий наружу, через который обычно все лезут.
Надо все внимательно читать изучать что она делает.

hamper ?
28.02.2017
16:28:44
es_version: "5.1.2" меняешь на нужную просто, если надо понизить версию то еще es_allow_downgrades: true выставить, а закрывать наружу оно ничего и не должно, это для роли фаервола больше подходит, но по дефолту там es_api_host: "localhost" то есть наружу оно и не торчит
Часто достаточно посмотреть что в defaults лежит.
И ты же не сразу на продакшн новые роли выкатываешь? Сначала развернуть все на тестовых серваках и убедиться что все правильно и как надо а потом уже на продакшн.

Pavel
28.02.2017
16:31:38
Ну если оттуда повыкидывать плейбуки под другие платформы то и останется как раз роль которую можно написать за денек. Используя эту в качестве шаблона ?

hamper ?
28.02.2017
17:23:12
Кстати еще плюс готовых ролей, не надо под все платформы сочинять когда оно уже есть, никогда не знаешь куда придется разворачивать проект.

Hackru
28.02.2017
17:23:59
Ну блин
Как это так, не знаешь?

Denis 災 nobody
28.02.2017
17:27:51
а тут есть билд инженеры?
есть несколько вопросов..

Игорь
28.02.2017
17:29:30
Именно кто продовые релизы выпускает?

Denis 災 nobody
28.02.2017
17:31:25
что вообще включает в себя профессия, как это выглядит.. Например - есть у нас около 30 своих пакетов, надо сделать stable репу + обновить changelog где-либо, и тут непонятно, как этот лог собирать, как версии делать..
сейчас запилили фичу - собрали 1-5 пакетов (при необходимости обновили Requires), раскатали по нодам
такой CI
а надо более стабильные сборки

Google

Игорь
28.02.2017
17:32:42
Business impact на каждую строчку изменений и так далее

Denis 災 nobody
28.02.2017
17:34:17
и никакой автоматизации?

Игорь
28.02.2017
17:35:01

Denis 災 nobody
28.02.2017
17:35:37
как делаются заполнения релиз нот, версий, контроль того что данная сборка только под такие-то версии..

Игорь
28.02.2017
17:36:03
С таким не знаком (