Roman
А в ансибле как такое сделать?
https://github.com/saltstack-formulas/php-formula/blob/master/php/map.jinja#L17-L30
Яимею ввиду динамическую генерацию переменных.
Есть что-то подобное?
Посмотрел одну из самых популярных ролей в Galaxy, там все статично
https://github.com/geerlingguy/ansible-role-php/blob/master/vars/Debian.yml
Vadim
set_fact
Vadim
https://github.com/openshift/openshift-ansible/blob/master/roles/etcd/tasks/backup/vars.yml#L6
Roman
Направление понятно, спасибо.
GithubReleases
ansible/ansible was tagged: v2.4.4.0-1
Link: https://github.com/ansible/ansible/releases/tag/v2.4.4.0-1
Release notes:
New release v2.4.4.0-1
GithubReleases
ansible/ansible was tagged: v2.4.4.0-1
Link: https://github.com/ansible/ansible/releases/tag/v2.4.4.0-1
Release notes:
New release v2.4.4.0-1
Roman
Что-то не найду как из list of lists получить плоский list
Aleksey
а вроде | flat есть
Roman
https://docs.ansible.com/ansible/devel/plugins/lookup/flattened.html вроде бы оно, но вместо списка получается строка разделенная запятыми почему-то
Roman
можно склеить через set_fact + loop, но если элементов много это капец уродливо
Roman
| sum(start=[])
Roman
альтернативный (лучший) вариант, обнаруженный в процессе изучения сорцов, доступен начиная с версии 2.5 https://github.com/ansible/ansible/blob/devel/lib/ansible/plugins/filter/core.py#L470
| flatten
Artem
Привет всем! Подскажите возможно ли в плейбуке в hosts выполнить условие, условие - выполнить на всех хостах что есть в inventory кроме группы "test" и "test2" ? (пробовал "!" не кушает)
k
k
Для всех, кроме группы, соответственно: all:!groupC
Artem
𝔹𝕠𝕣𝕚𝕤
Приветствую, никто не сталкивался с проблемой jinja шаблонов:
<lambda>() takes exactly 0 arguments (1 given)
?
С одной ноды ансибл нормально отрабатывает, с другой валится с такой ошибой. Имею ввиду ноды, на которых ансибл запускается, а не которыми управляет
𝔹𝕠𝕣𝕚𝕤
в шаблоне есть макросы, версии python на обеих машинах одинаковые
Sergey
𝔹𝕠𝕣𝕚𝕤
Да я уже почти докопался
𝔹𝕠𝕣𝕚𝕤
по какой-то странной причине по-разному работает функция dict в jinja
𝔹𝕠𝕣𝕚𝕤
в неё передаётся массив пар
𝔹𝕠𝕣𝕚𝕤
В общем проблема оказалась в том, что была установлена старая версия Jinja
Leonid
ребят, подскажите пожалуйста, как пробросить порт в Ansible до хоста? Как ssh -R 3128:localhost:3128
Anonymous
посоны, почему у меня lxd не устанавливается свежий из бэкпортов при установке ансиблом, а ручками ставится?
Vladimir
Vladimir
я оттуда ставлю, с тех пор, как они об этом уведомили
Vladimir
это если речь про убунты. про другие дистрибутивы не в курсе, но может там что-то подобное
Vladimir
в убунте прям уведомлялка вылезала во время apt upgrade, что мол обновляйтесь теперь из snap
Anonymous
ну вопрос не больше в том, почему default_release не работает
Anonymous
https://github.com/ansible/ansible/issues/16536 видимо вот это
Vadim
хмм, Бэн, ай нид хелп
Vadim
как организовать выкачивание journalctl со всех хостов и разложить вывод в отдельные файлы, в идеале one-liner'ом?
Roman
отдельные для каждого хоста?
Vadim
угу. Пока решил через https://github.com/openshift/openshift-ansible/pull/7802/files#diff-1c32d62d6311b8259e2ad28b9d272e83R30, но как-то уродливо выглядит
Igor
http://urod.ru/news/87294/
U
@macagua have you defined hosts at edx_sandbox.yml ?
U
@macagua I mean hosts: section at playbook file
Leonardo J.
@macagua I mean hosts: section at playbook file
@vrekshta My playbook look like:
---
# Example sandbox configuration
# for single server community
# installs
- name: Bootstrap instance(s)
hosts: all
gather_facts: no
become: True
roles:
- python
- name: Configure instance(s)
hosts: all
become: True
gather_facts: True
vars:
migrate_db: "yes"
EDXAPP_LMS_NGINX_PORT: '80'
edx_platform_version: 'master'
# Set to false if deployed behind another proxy/load balancer.
NGINX_SET_X_FORWARDED_HEADERS: True
DISCOVERY_URL_ROOT: 'http://localhost:{{ DISCOVERY_NGINX_PORT }}'
ecommerce_create_demo_data: true
credentials_create_demo_data: true
SANDBOX_ENABLE_DISCOVERY: true
SANDBOX_ENABLE_ECOMMERCE: true
roles:
- role: swapfile
SWAPFILE_SIZE: 4GB
- role: nginx
nginx_sites:
- certs
- cms
- lms
- forum
- xqueue
nginx_default_sites:
- lms
- role: edxlocal
when: EDXAPP_MYSQL_HOST == 'localhost'
- role: memcache
when: "'localhost' in ' '.join(EDXAPP_MEMCACHE)"
- role: mongo_3_2
when: "'localhost' in EDXAPP_MONGO_HOSTS"
- role: rabbitmq
rabbitmq_ip: 127.0.0.1
- role: edxapp
celery_worker: True
- edxapp
- role: ecommerce
when: SANDBOX_ENABLE_ECOMMERCE
- role: ecomworker
ECOMMERCE_WORKER_BROKER_HOST: 127.0.0.1
when: SANDBOX_ENABLE_ECOMMERCE
- analytics_api
- insights
# not ready yet: - edx_notes_api
- demo
- oauth_client_setup
- oraclejdk
- role: elasticsearch
when: "'localhost' in EDXAPP_ELASTIC_SEARCH_CONFIG|map(attribute='host')"
- forum
- role: discovery
when: SANDBOX_ENABLE_DISCOVERY
- role: notifier
NOTIFIER_DIGEST_TASK_INTERVAL: 5
- role: xqueue
update_users: True
- certs
- edx_ansible
- role: datadog
when: COMMON_ENABLE_DATADOG
- role: splunkforwarder
when: COMMON_ENABLE_SPLUNKFORWARDER
- role: newrelic
when: COMMON_ENABLE_NEWRELIC
- role: postfix_queue
when: POSTFIX_QUEUE_EXTERNAL_SMTP_HOST != ''
Артём
Скажите можно ли в group_vars сделать список словарей?
к примеру
mysql_users:
- а тут словарь
Артём
в словаре к примеру
login: **
pass: *
priv: ***
Anonymous
как дебажить ансибловые модули? я хочу добавить выхлопа в отладочный вывод
Vadim
Anonymous
mysql_users:
- name: john
pass: foo
- name: jane
pass: bar
Anton
када ансибл 2.6 успел выйти?
Anton
вроде только только про 2.5 начали говорить
Evgenii
2.6 вроде devel
Anton
или это то что щас разрабатывается
Anton
аа, понял
George
Отлично, ещё одна бага. where для block проверяется для каждого элемента block:
- hosts: all
gather_facts: no
tasks:
- block:
- set_fact:
foo: bar
- debug: var=foo
when: foo is not defined
debug -> skipped
Aleksey
это не бага
Aleksey
это нарушение ожиданий
George
Оно блок или не блок?
George
https://github.com/ansible/ansible/issues/38335
Aleksey
оно костыль же
George
Более того, совсем смешно:
- debug: var=foo
when: True
внутри блока всё равно не исполнится.
Aleksey
а tag: always ?
Aleksey
адовый хак
George
Всё равно пропустят. where имеет приоритет над tag. Или нет?
George
Имеет. Хоть что-то разумное.
Vadim
https://github.com/ansible/ansible/issues/34253#issuecomment-354879138
Aleksei
Народ, а тут есть люди, кому приходится пилить по 1-2 новых проекта в месяц? Как вы вообще храните роли и плейбуки?
Igor
В гите
Aleksei
Окей, хорошо. Я понял =)
Каждая роль хранится в своём репозитории или вы всё сваливаете в общий?
Aleksey
Nklya
ит депендс
Aleksey
Aleksey
парни вроде вебстудия
Aleksey
так что serial patry killer это к ним
Sergey
Aleksei
Alex
как минимум без усилий вообще проверяется
lint
dependency
syntax
create
idempotence
Alex
вот так выглядит прогон - https://travis-ci.org/kharkevich/ansible-elastic-metricbeat
Aleksey
Alex
да, но у меня докер файл особенный - он дотягивает systemd штуки - дабы проверить всю сервисную чать