Dmitrii
Поэтому у меня плейбук использует "абстрактную" группу, биндинг которой на реальные группы происходит уже в разных инвентори
Dmitrii
Как результат у меня абсолютно независимые роли, которые ни капли не пришиты к AWS
Dmitrii
Anonymous
ну у меня есть кейс, где один и тот же набор приложений живет на 4х хостах одновременно (dev, devops, staging, prod) и это один playbook с общим набором ролей.
Dima
а devops - это среда где админ может устроить хеллоуин? )
Dmitrii
Evgeniy
Скорее апокалипсис
Anonymous
на девопсе сборка все виды тестирования, а стеджинг для ручного тестирования только
Dmitrii
Как только ты "вмажешься" в это говно то сразу станет больна
Dima
ага, но спасибо, всё равно любопытный подход, я подумаю чтобы кое-где такое устроить :)
Dmitrii
Когда начинаешь в AWS с Ансиблом у тебя появляется текучая абстракция мгновенно, и чтобы ее залепить приходится реально попотеть
Anonymous
Dmitrii
Если _только_ AWS то тоже врятли проблемы будут
Dmitrii
Но у меня тут комбинация вообще оверкил. Вагрант, АВС, и АВС на одном инстансе кучи приложух
Dmitrii
И все это может один плейбук
Anonymous
Dmitrii
Но не тут то было
Dmitrii
Про DRY в Ansible порой лучше забыть
Anonymous
Добавь jenkins
Dmitrii
Дженкинс в дженкнс?)
Dmitrii
У нас он есть
Anonymous
Добавь дженкинс в пару с ансиблом, чтобы неконсистентные вещи рулить
Dmitrii
У нас нет орды девопсов чтобы следить за консистентностью плейбуков каждый день
Anonymous
если аппарата ансибла вам не хватает
Anonymous
Anonymous
Anonymous
Dima
Про DRY в Ansible порой лучше забыть
лично я вот сделал вывод, что если сразу писать как recommended, а не на каких-нибудь preview модулях замешивая в это command/shell/raw, то --check нормально работает. хули на него смотреть, его надо юзать вместе с --diff :)
с оговоркой, что почему-то почти для всего, что начинается с ec2, это не работает.
однако по амазону ещё @lig11 разъяснял одним гифаком выше по тексту.
Dima
впрочем, есть люди, вообще не подозревающие о существовании ключа --check, или считающие, что он не нужен. здесь нечего добавить.
Anonymous
Anonymous
Dima
проблема найти переменную?
не, мне просто лень в уме это прогонять перед тем как выполнить. лентяй, хуле. ну ещё ошибиться боюсь, роботом стать не удалось
Dima
но это пока. посмотрим как будет в 2.4 и в stonic :)
Anonymous
Dima
да сарказм же епта )
Dima
конечно блять очевидно
Dima
но далеко блять не всем :)
Anonymous
Крик души?
Dima
где?
Anonymous
Womchik
как обойти как можно правильнее ситуацию с обновлением rabbitmq и 3rd party plugins?
The enabled plugins configuration is preserved between upgrades, so there is no need to re-enable plugins after an upgrade, but because the plugins directory changes between versions, any third party plugins will need to be copied to the new directory.
Dmitrii
Anonymous
Serge
Anonymous
И так норм
Alf 🙀
а факты докера по прежнему shellом собирать, ничего нормального так и не завезли(кроме third party plugins)
Ilya
Привет всем! Нужна небольшая помощь. Загоняю результат выполнения команды в переменную при помощи register и подставляю ее в дальше, и ругается, что переменная слишком длинная, хотя не так
Ilya
Когда просто вывод команды подставляю - все ок работает
Ilya
Может кто подскажет как правильно сделать, чтобы заработало?
Anonymous
Пакажи
Ilya
TASK [main : export public key inti variable] ***************************************************************************************************************************************************************************************************************
changed: [localhost] => {"changed": true, "cmd": "cat /etc/opendkim/keys/mail.txt | sed -r 's/^[^\"]+//' | sed -r 's/\\).+//' | sed 's,\",,g' | tr -d '\\n' | fold -w 197 | sed ':a;N;$!ba;s/\\n/ /g'", "delta": "0:00:00.007873", "end": "2017-08-20 14:55:52.973793", "rc": 0, "start": "2017-08-20 14:55:52.965920", "stderr": "", "stderr_lines": [], "stdout": "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DCBiQKBgQDhEhu9fERU5so+ob/4NJe1rfQ/DW2uzj1F3ZfTmpqijPihsjIiCfu60Qact0due81Wun0tNgHCfSZNWL7m9bFmyyc+G7tA+P53w9Iei3qUffY7+Dpdot5FNPUzRyjYj8FdzQ5ZCJZwXuW TERxXdnrQQzmj0AbsVN2HkHDfmODhywIDAQAB ", "stdout_lines": ["v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEgQDhEhu9fERU5so+ob/4NJe1rfQ/DW2uzj1F3ZfTmpqijPihsjIiCfu60Qact0due81Wun0tNgHCfSZNWL7m9bFmyyc+G7tA+P53w9Iei3qUffY7+Dpdot5FNPUzRyjYj8FdzQ5ZCJZwXuW TERxXdnrQQzmj0AbsVN2HkHDfmODhywIDAQAB "]}
TASK [main : cloudflare_dns] ********************************************************************************************************************************************************************************************************************************
fatal: [localhost]: FAILED! => {"changed": false, "failed": true, "msg": "API bad request; Status: 400; Method: GET: Call: /zones/edbd88ce17fabc96e6f96149f184320e/dns_records?content=%7B%27stderr_lines%27%3A+%5B%5D%2C+%27changed%27%3A+True%2C+%27end%27%3A+%272017-08-20+14%3A55%3A52.973793%27%2C+%27stdout%27%3A+%27v%3DDKIM1%3B+k%3Drsa%3B+p%3DMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDhEhu9fERU5so%2Bob%2F4NJe1rfQ%2FDW2uzj1F3ZfTmpqijPihsjIiCfu7%2C+%27rc%27%3A+0%2C+%27stdout_lines%27%3A+%5B%27v%3DDKIM1%3B+k%3Drsa%3B+p%3DMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDhEhu9fERU5so%2Bob%2F4NJe1rfQ%2FDW2uzj1F3ZfTmpqijPihsjIiCfu60Qact0due81Wun0tNgHCfSZNWL7m9bFmyyc%2BG7tA%2BP53w9Iei3qUffY7%2BDpdot5FNPUzRyjYj8FdzQ5ZCJZwXuW+TERxXdnrQQzmj0AbsVN2HkHDfmODhywIDAQAB+%27%5D%7D&type=TXT&name=mail._domainkey.; Error details: code: 6009, error: Invalid filter value length specified. Max length is 200; "}
to retry, use: --limit @/root/ansible-dkim/test.retry
Ilya
Max length is 200 - хотя туда можно подставить ручками хоть 500 символов и все будет работать. Как только подставляешь переменную - хер
Ilya
- name: export public key inti variable
shell: cat /etc/opendkim/keys/mail.txt | sed -r 's/^[^"]+//' | sed -r 's/\).+//' | sed 's,",,g' | tr -d '\n' | fold -w 197 | sed ':a;N;$!ba;s/\n/ /g'
register: public_key
- cloudflare_dns:
state: present
zone: "{{ domain }}"
record: "{{ dkim_selector }}._domainkey"
type: TXT
value: "{{ public_key }}"
ttl: 120
account_email: "{{ cloudflare_email }}"
account_api_token: "{{ cloudflare_api_token }}"
register: record
Anonymous
API bad request; Status: 400
Anonymous
Дело в request
Anonymous
а не в переменной ansible
Ilya
Т.е. я все верно сделал с переменной?
Anonymous
у тебя таск не отрабатывает
Anonymous
там где ты наружу стучишься к апи
Anonymous
апи тебе вернула "борода", таск сталплохим
Ilya
Я понял
Ilya
Мне нужен был вывод команды
Ilya
stdout
Ilya
А register передает не вывод, а саму команду((
Ilya
Вот у меня запрос по API и не уходил)
Womchik
а в shell красота. страшно аж
Anonymous
я жмурился
Anonymous
Anonymous
Ilya
- name: export public key inti variable
shell: cat /etc/opendkim/keys/mail.txt | sed -r 's/^[^"]+//' | sed -r 's/\).+//' | sed 's,",,g' | tr -d '\n' | fold -w 197 | sed ':a;N;$!ba;s/\n/ /g'
register: public_key
Ilya
А шелл тогда что?
Anonymous
модуль же
Ilya
Вот значение shell он и передавал
Ilya
Аа, ок
Дмитрий
Бодрого времени, подскажите, в качестве best practices, кто чем ансибловские плейбуки запускает?
Дмитрий
Больше интересует ботами. Читал про StackStorm - как-то очень нагружено, пробовал через errbot-а запускать с помощью плагина, может, есть что-то ещё, удобное?