Max
:)
Max
но удобоваримая, и организованная.
Ждун
я плачу за plurasight подписку, так как там иногда нахожу интересные крурсы, с linuxacademy не пересекался
Timur
Volodymyr
@alexsuslin курс так себе
Volodymyr
мне контора оплатила год подписки за хорошее поведение, я его первым начал слушать
Volodymyr
есть интересные моменты, но в целом нудноват
Ждун
ок спасибо, а может что есть на уме интересное? потому что все что я вижу и нахожу стандартное и базовое
Max
тоже конечно базовое, и стандартное. но не скучное.
Ждун
это по энсиблу? спасибо за сайт поизучаю
Max
это по энсиблу? спасибо за сайт поизучаю
нет, это оффтопик по отношению к ансиблу.
Max
но материал очень полезный (имхо)
Max
и без него скоро будет ни туды и не сюды.
Alex
Ни в каких курсах асинхроночке не учат в ансибл, это печаль. Как захочешь заюзать чью нибудь работу, так сразу начинаешь подсчитывать сколько времени можно было бы сэкономить если бы часть задач выполнялась асинхронно
Ждун
где-то смотрел что-то начальное, там все тестировали на кластере из расбери и много говорили про синк\асинк, показывали как мигает все (я про энсибл)
Max
ансибл начался как glorified ssh loop.
Alex
это не проблема курсов.
Это проблема недостатка знания на курсах или курсов маловато
Max
и не все модули совместимы с асиньком.
Max
более того: ты говоришь об оптимизации.
Max
poitroae
Oleksandr
асинк - это потенциальный пипец
Oleksandr
Это тоже плохо
как есть. скорее хорошо
Oleksandr
юзайте
Max
premature optimization is the root of all evil.
Ждун
асинк очень все усложняет, а эснсибл же о простоте
Max
если вам нужен асинк... может вам уже пора на cfengine...
Ждун
не хватало еще семафоров и синглтонов )
Oleksandr
форки форки
Oleksandr
Нам норм. Мы юзаем
нужны кейсы и пруфы
Oleksandr
пока я не понимаю о чем речь и зачем асинк
Max
пока я не понимаю о чем речь и зачем асинк
обычно асинк дает ускорение.
Max
т.е. вместо ожидания, ты, надеясь на лучшее, летишь вперед.
Oleksandr
не ну я понимаю, но хотелось бы реальных кейсов
Oleksandr
а так дядя набросил на вентилятор
Max
не ну я понимаю, но хотелось бы реальных кейсов
некоторые люди ради поиграться, с кровью оппонента между зубов будут хотеть это, и жить им без этого трудно.
Alex
а так дядя набросил на вентилятор
самый большой буст у нас при создании дампов. Там запускать на 200 машинах в асинке куда вкуснее, чем последовательно.
Oleksandr
дампов чего?
Alex
Oleksandr
не понимаю, сорри
John
Так че че там with_items уже дурной тон? Юзать loop верно?
Eduard
- apt: name: - some - another
John
Оно и есть loop
Поспешил с вопросом :)
John
Оно и есть loop
И все же да with_x legacy https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html#looping-over-the-inventory
Timur
Если кому-то нужно, у нас вышла новая версия роли для установки MySQL и MariaDB: https://galaxy.ansible.com/lean_delivery/mysql Она поддерживает установку всех последних версий MySQL (от 5.5 и до 8.0 включительно) и MariaDB. Установка поддерживается как на OS семейства RedHat (RHEL или CentOS 6,7), так и на Debian (Debian 8,9 и Ubuntu 16.04, 18.04). Все сценарии установки покрыты тестами и проверены в различных окружениях. Башсибла в роли нет. :)
Ильдар
Вопрос про словари в ansible. Какой прием использовать если нужно изменить значение одного item в словаре?
Timur
merge
Нет
Max
тьфу, ты прав.
Max
это у меня флэшбэк. от одного клиента.
Ильдар
Такая конструкция выдает ошибки splunk: "{{ splunk | combine(новый словарь) }}"
Max
ситаксис корявый там нужен: kuku: "{{kuku | combine({'key1': 'value1', 'key2': 'value2'})}}"
Max
Такая конструкция выдает ошибки splunk: "{{ splunk | combine(новый словарь) }}"
можно и ссылку на ошибки. в них все понятно описано.
Ильдар
можно и ссылку на ошибки. в них все понятно описано.
FAILED! => {"msg": "An unhandled exception occurred while templating '{{ splunk | combine(splunk_new) }}'. Error was a <class 'ansible.errors.AnsibleError'>, original message: An unhandled exception occurred while templating '{{ splunk | combine(splunk_new) }}'. Error was a <class 'ansible.errors.AnsibleError'>, original message: An unhandled exception occurred while templating '{{ splunk | combine(splunk_new) }}'. Error was a <class 'ansible.errors.AnsibleError'>, original message: An unhandled exception occurred while templating '{{ splunk | combine(splunk_new) }}'
Timur
А теперь покажите, что в splunk и в splunk_new
Ильдар
splunk: role: splunk_standalone
Ильдар
splunk_new: role: searchhead splunk: "{{ splunk | combine(splunk_new) }}"
Timur
splunk_new: role: searchhead splunk: "{{ splunk | combine(splunk_new) }}"
- name: Test facts hosts: localhost gather_facts: yes vars: ansible_connection: local splunk: role: splunk_standalone splunk_new: role: searchhead tasks: - name: Combine dicts set_fact: splunk: "{{ splunk | combine(splunk_new) }}" - name: Out splunk_updated debug: msg: '{{ splunk }}' Все работает
Max
splunk_new: role: searchhead splunk: "{{ splunk | combine(splunk_new) }}"
это все пробегает в одном и том же тасклисте? на одном и том же хосте?
Timur
А mysql перконовский или оракловый? Какого нехватает? А Мария 5.5, 10.0, 10.3?
MySQL оракловый. Перкона - это отдельная петрушка, у нас в проектах не юзается, так что нужды не было добавлять
Timur
MariaDB 10.1 и 10.2 точно работают
Timur
10.3 вроде тоже, на всех последних версиях тестили
Timur
Ща проверю. Момент
Asgoret
Всем привет. Вопрос знатокам) Есть таск: - name: Prepare parametres for deployment config lineinfile: path: /tmp/parametres.txt state: present skip: true line: |- - name: {{ item.key }} value: {{ item.value }} loop: "{{ contents | dict2items }}" when: contents is defined В случае когда contents не задан я получаю ошибку: {"msg": "dict2items requires a dictionary, got <class 'jinja2.runtime.StrictUndefined'> instead."} Вопрос: как написать ему when чтобы такас скипалась в случае когда переменная не задана?
Timur
И, кстати, не проще шаблон нормальный сделать для заполнения, чем вот эта наркомания с lininfile в цикле?