niko
конечно, ведь в ббске и ирк не было @all
niko
такой взрослый а такой хипстер!
Alf 🙀
niko
от слова совсем
niko
даж собачек не было
niko
потому что обозначали они совсем другое
niko
так как применил ты - нигде
niko
ну почему не было. и сейчас нету
Dmitry
фидорас бы скорее 2all написал
Dmitry
так что присоединяюсь к предъяве за слаковую хипстоту :)
Dmitry
а ничего не менялось в 2.2х из-за чего у меня перестало тянуть groups.* в этом месте
- name: verify backend db response
uri: url=http://{{item}}/db return_content=yes
with_items: groups.webserver
register: app_db
Dmitry
?
Dmitry
группы тянутся из инвентори который указан в ansible.cfg
Denis
with_items: "{{groups.webserver}}"
Dmitry
Dmitry
Блять, кадаж это кончится
Bogdan (SirEdvin)
Вот ведь херня: https://github.com/ansible/ansible/issues/11536
Sander
Всем привет,
спросить про 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
3) У нас подключен репозиторий с ключами как git submodule
maniac
1) а тебе точно нужен плейбук для каждого сайта? они совсем-совсем по разному деплоятся?
2) ключи ssh хранить на своей машине
3) не вижу никаких проблем хранить зашифрованные в гите
Sander
@pzskc383
1) слишком много логики, всегда все может быть разное.
Различия в подключаемых ролях, приходится всякие проверки через when писать, выглядеть начинает очень грязно...
Но логики хватает, может быть разные db(mysql, mongo, ..), разные язки (go, nodejs, php).
---
Сложно тут сказать как лучше сделать...
2) Хранить в ~/.ssh/ ? Но как я их буду подключать к ansible, когда он будет подключаться к какой-либо машине?
По default, он будет сучать только в id_rsa.
3) Не знаю, у меня какая-то мысль дикая, папку group_vars, host_vars как-то отдельно?
какие-нибудь еще мысли?
-----------------------------------
maniac
ансибль по дефолту юзает /usr/bin/ssh, а тот берет все ключи которые есть в ssh-agent
или настройки ключа из .ssh/config
Sander
надо тогда в настройки прописывать .ssh/config ..
а в ansible можно как-то прописать какой ему ключ ловить
maniac
т.е.
Host fake-and-gay
HostName 10.45.14.242
User centos
IdentityFile ~/.ssh/kp1.pem
maniac
да, что-то было в инвентори касательно ключа, посмотри в доке
Sander
и просто указывать тогда в intevnories ansible_host
Sander
ansible_host=fake-and-gay
Sander
а есть ли способ чтоб быстро создать файлик config, со всеми хостами?
может через jinja2? чтоб каждый раз ручками это не делать
Sander
чтоб брал весь список хостов и создавал
jagga
bash
maniac
хм, смотрите.
есть ансибль, есть кучка машинок на рекспейсе.
еще есть 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
maniac
я конечно плюнул и просто доставил ansible той же версии что и в системе в этот энвайронмент, но может у кого-то есть лучше решения в голове?
hamper 𓅝
А можно как-то в ансибле в group_vars генерить массивы на основе списка серверов? То есть например абстрактно у мне надо получить что-то типа такого
serv_vars:
- some text [ip1]
- some text [ip2]
где [ip1], [ip2] берутся из хостов в groups['all'].
Dmitrii
Можно создавать группы налету
hamper 𓅝
Ну просто я вот эту роль заюзать захотел https://galaxy.ansible.com/mikegleasonjr/firewall/ и не придумал как через нее можно в группах серверов разрешить трафик с серверов этой же группы.
Bogdan (SirEdvin)
hamper 𓅝
Опять похоже свой костыль писать придется.
Dmitrii
А кто вообще что то из галакси использует?
Dmitrii
Там обычно или говно, или на столько переусложненная роль, что проще куски из нее попиздить в свою и забыть.
hackru
это так, но как тогда апдейты получать?
Dmitrii
Апдейты чего?
Dmitrii
Лучше тебя никто твою инфраструктуру не знает
Dmitrii
Как правило тебе апдейты не нужны
hackru
ну типа ты скопипастил кусок роли
Dmitrii
и?
hackru
а в апстриме там за пол года накоммитили импрувментов
hackru
особенно когда там что-то серьезное типа postgres
hackru
руками утомишься перекидывать
Dmitrii
Нахера они нужны если у меня старая роль раскатывает все отлично?
Dmitrii
Если что то типа постгреса то тут тоже не все однозначно
Dmitrii
Не видел еще ни одной роли которая бы "влилась" в текущую инфраструктуру как надо
hamper 𓅝
hamper 𓅝
elasticsearch я из гитхаба вообще из мастера вытащил потому что в гелакси нет коммитов которые мне подозрительно нужными показались.
hamper 𓅝
aerospike тоже с гитхаба нашел вполне неплохую роль правда кое-что мне в ней сильно не нравится но переделывать времени нет
hamper 𓅝
под clickhouse вот свое писал
hamper 𓅝
Потому что не смог ничего нормального найти вроде.
Pavel
Я использую галакси только со своими ролями, держу их в репах.
Pavel
А сторонние роли и правда нафиг не нужны, там заимпрувят, а оно у тебя на серверах все потрет
Pavel
Или поставит новую мажорную версию софта.
Pavel
Ну хорошенько проревьюить роль занимает по времени не сильно меньше чем написать самому.
Pavel
А еще как правило роль не полностью подходит и процентов 10 надо выпиливать
hamper 𓅝
Ну вот например официальная роль от эластика https://github.com/elastic/ansible-elasticsearch почему бы ее не использовать что бы поставить этот эластик?
hamper 𓅝
Потом к части ролей привыкаешь и уже просто таскаешь их из одного проекта в другой
Pavel
Сразу вопрос - как будет обновляться elasticsearch у такой роли?
Pavel
Если надо новую версию поставить.
Pavel
Сразу вопрос номер два - закрывает ли эта роль эластик торчащий наружу, через который обычно все лезут.
Pavel
Надо все внимательно читать изучать что она делает.
hamper 𓅝
es_version: "5.1.2" меняешь на нужную просто, если надо понизить версию то еще es_allow_downgrades: true выставить, а закрывать наружу оно ничего и не должно, это для роли фаервола больше подходит, но по дефолту там es_api_host: "localhost" то есть наружу оно и не торчит
hamper 𓅝
Часто достаточно посмотреть что в defaults лежит.
hamper 𓅝
И ты же не сразу на продакшн новые роли выкатываешь? Сначала развернуть все на тестовых серваках и убедиться что все правильно и как надо а потом уже на продакшн.
Pavel
Ну если оттуда повыкидывать плейбуки под другие платформы то и останется как раз роль которую можно написать за денек. Используя эту в качестве шаблона 😈
hamper 𓅝
Кстати еще плюс готовых ролей, не надо под все платформы сочинять когда оно уже есть, никогда не знаешь куда придется разворачивать проект.
hackru
Ну блин
hackru
Как это так, не знаешь?
Denis 災 nobody
а тут есть билд инженеры?
Denis 災 nobody
есть несколько вопросов..