Timur
вот что написано в заголовке гитхаба
Если читать не только заголовок, то можно прочитать следующее:
Ansible’s Resources are declarative; it figures out the steps needed to achieve the final state. It also lets you know whether or not any steps needed to be taken to get to the final state.
Oleksandr
George
> Ansible’s Resources are declarative
да
George
> it figures out the steps needed to achieve the final state
маркетинг - зависит от того, что там унутри модуля. Ну, положим, что ок
George
> It also lets you know whether or not any steps needed to be taken to get to the final state.
это вообще за гранью
Timur
Viktor
Timur
Тогда зачем if?
Timur
Опишите детальнее задачу тогда
Timur
Помогать писать говнокод нет никакого желания
Timur
Мне карма дорога
Timur
Viktor
Viktor
Viktor
Опишите задачу конкретнее
Несколько проектов разворачивается из одного плейбука, который запускается после пуша в мастер.
Timur
Это общие слова
Timur
Конкретно что вы хотите сделать, для чего вам потребовался многострочный if?
Viktor
Viktor
попробую так
{% if inventory_hostname in groups.aptcache %}
{% set cachehost = 'localhost' %}
{% else %}
{% set cachehost = groups['aptcache'] | first %}
{% endif %}
#ненадотак
Timur
Timur
if inventory_hostname in groups.aptcache
подобный код сразу в топку
Timur
Учитесь пользоваться группами, как предусмотрено ансиблом
George
Aleksandr
Max
и в Fabric.
George
Max
смотря где и кому.
Max
если команда питонистов, то естественнее на питошке писать, чем на ямле.
Max
или если уже есть код на нем.
Max
он вроде и py3 поддерживает.
George
Aleksandr
Проще нужное поведение написать функцией для системы управления конфигурацией
George
хотите кошмара немного?
George
https://github.com/serghey-rodin/vesta/blob/master/install/vst-install-rhel.sh#L441
George
vestacp - система управления хостингом написанная на баше
Timur
Timur
Nikolay
через selectattr чет не вышло
Timur
А что вы хотели получить-то?
Nikolay
получить public_dns_name по конструкции с мануала {{ users|selectattr("is_active") }}
Nikolay
Да, теперь остался вопрос с нормальным разделением, не хочет он воспринимать символ новой строки из json
Timur
Nikolay
чтобы аутпут красивый был, построчно
Nikolay
в общем через list сделал, вроде нормально
Sergey
Sergey
Nikolay
В доке жынжы такого не видел
Nikolay
ща попробую
Nikolay
я чето упустил?
Nikolay
<generator object do_map at 0x7f52f9dd4af0> is not JSON serializable"
Nikolay
Прилшлось аутпут регать как новую переменную, и потом к ней применять to_nice_json . Разницы в стдауте никакой, но в файл по крайней мере пишет джейсонисто
- debug:
msg: "{{ ec2.tagged_instances|map(attribute='public_dns_name') | list }}"
register: hosts
- name: Add the newly created EC2 instance(s) to the local host group (located inside the directory)
copy:
content: "{{ hosts | to_nice_json }}"
dest: /tmp/1
Sergey
George
Sergey
Sergey
Можно использовать дефолты на всю мощь, можно использовать подстановки Jinja2 и вот это вот всё.
Max
ясен пень если нужно создавать с нуля, лучше брать инструмент с библиотекой готового функционала, а ля ансибл/солт и т.д.
Vladislav 👻
Vladislav 👻
Делайте 1 роль - 1 сервис, иначе рано или поздно упретесь...
Vladislav 👻
Как минимум, проблемы начнуться, когда захотите сделать изменения только для 1 сервиса и придется передергивать все по такой схеме
Vladislav 👻
Ну хз, я аналогию пытался накинуть на докер контейнеры и решил отказаться
Vladislav 👻
Проще дублировать роль под сервис, чем писать джинджой в ямле для ансибла
Vladislav 👻
lxc же не вмы
George
Vladislav 👻
А то что сервисы надо настраивать и тут сразу вопрос, а где будут конфиги под его N lxc
Vladislav 👻
И почему все это дело будет размазано между кучей ролей