[IPT] Dmitry
так не пойдет? src: "{{ my_shit_var | default(default_template) }}"
да мне придётся какое-то тут безумное условие писать типа: если хост кластерный - копируй шаблон из его кластерной группы, иначе - inventory_hostname_short. что-то мне подсказывает, что это уже прям почти дно
Sergey
ну если реально интересно, посмотрите администрирование oracle weblogic. в частности wlst и jython
Подожди, этот тут причём? ты писал про проблему с патчингом xml. Она решается написанием модуля.
Отделение Bereke Bank
да мне придётся какое-то тут безумное условие писать типа: если хост кластерный - копируй шаблон из его кластерной группы, иначе - inventory_hostname_short. что-то мне подсказывает, что это уже прям почти дно
да нет. если я тебя правильно понял - указываешь нужным хостам/группам их путь к нужному шаблону, а остальные юзают дефолт. это ввести новую переменную, поменять одну строку в таске и актуализировать варсы инвентори в соответствии с изменениями.
Sergey
^^^ +++
[IPT] Dmitry
наверно пора переделывать эту богадельню
[IPT] Dmitry
Один фиг через групварсы.
а чё в default то предлагается пихнуть не понимаю?
[IPT] Dmitry
нет, у меня была говноконцепция: для каждого хоста свой шаблон. сейчас нужно вроде как для каждой группы хостов свой шаблон
Sergey
Ну тем более тогда. group_by позволит тебе запилить новые группы только для тех хостов, у которых установлена переменная.
Отделение Bereke Bank
а чё в default то предлагается пихнуть не понимаю?
Либо твой кластерный шаблон, либо ту хрень с inventory hostname что ты написал Тут уже сам смотри что проще
[IPT] Dmitry
кластерных шаблонов много, для каждого кластера он будет разный. т.е. нужен cluster_group как-то матчить. не понимаю, как предлагаете
[IPT] Dmitry
переменную в кластерной группе
[IPT] Dmitry
воткнул наконец
[IPT] Dmitry
Не надо никак матчить - оно само. hosts: <cluster_group_name> жи
я видимо туплю, ты предлагаешь ограничить выполнение только для cluster_group_name?
Sergey
Канеш.
Sergey
И никаких when'ов :-)
[IPT] Dmitry
но мне надо play для hosts: app_group
tutunak
Привет всем, а только мне кажется что работа --vault-id для ansible-vault в доке как то описана не очень, у меня не заходит воспользоваться этой фичей
[IPT] Dmitry
И никаких when'ов :-)
я пока сделаю src: "{{ inventory_hostname_short | default(cluster_group_name) }}/{{ item.1 }}"
tutunak
Какую задачу решаешь?
Просто разобраться как оно работает. Взял из примера файл dev my_dev_pass test my_test_pass prod my_prod_pass назвал его label и пытаюсь запустить ansible-vault encrypt test.yml --vault-id label@test
Pavel
Доброго дня всем Если я скачиваю файл в директорию, где уже есть файл с таким же названием - ансибл его заменит? При этом файлы различаются, совпадает только название
Pavel
Copy работает по тому же принципу?
tutunak
Copy работает по тому же принципу?
https://docs.ansible.com/ansible/latest/collections/ansible/builtin/copy_module.html#parameter-force
Pavel
А то качать в отдельную папку и костылить копирование не хочется
tutunak
А если это maven_artifact? :)
чем мавен артифакт отличается от любого друго файла?
Alex
А если это maven_artifact? :)
модулю пофигу
tutunak
у тебя как мининум хранилище артифактов возвращает хеш сумму файла + есть http заголовки бери от туда инфу, считай хеш локального файла и сравнивай
Pavel
Спасибо
Sergey
Так, как ты написал, работать не должно.
tutunak
Так, как ты написал, работать не должно.
написал так ansible-vault --vault-id lable@test --vault-password-file lable encrypt test.yml оно все равно не работает говорит что ansible-vault: error: argument action: invalid choice: 'lable@test' (choose from 'create', 'decrypt', 'edit', 'view', 'encrypt', 'encrypt_string', 'rekey')
tutunak
я просто читая доку не мог рабочий пример собрать
tutunak
буду очень благодарен если кто либо объяснит как это все организовать, ну или на альтернативный пост скинет ссылку
Sergey
так написано же, чего сделать надо
Sergey
У тебя действие приведено в конце, а надо - раньше.
tutunak
разобрался test@lable
tutunak
ansible-vault encrypt --vault-id test@lable test.yml
tutunak
в обратном порядке
tutunak
тогда бы первая команды бы завелась
Росен
Друзья, будет ли это работать?
tutunak
Друзья, будет ли это работать?
Не быстрее запустить?
Alex
а чем group_vars/host_vars не устроили? Зачем городить таких монстров через set_fact
Sergey
Друзья, будет ли это работать?
Не будет, картинка в чате.
G
Всем привет! Подскажите, пожалуйста, как из таски с with_fileglob достать имена файлов, которые он сматчил? Вот мой пример: - name: Copy compose files to target host copy: src: "{{ item }}" dest: "{{ dest_path }}" with_fileglob: - "{{ src_path }}/*.yaml" tags: - system register: result_var
G
Судя по доке он должен возвращать список, но у меня возвращается список словарей, который не получилось нормально распарсить
G
пробовал вот так: - name: Print find debug: msg: "An item: {{ item.item }}" with_items: "{{ result_var.results }}"
Elenhil
Elenhil
почему results то
G
а?
список строк вроде должен возвращаться
Elenhil
почему results
G
в доках ключ _list
result_var._list - оно?
Elenhil
result_var._list - оно?
скорее всего. Дебажните просто вашу зареганную переменную да посмотрите на json
G
как именно дебажнуть?) сорри за такой вопрос. я только погружаюсь в этот топик
G
вроде в примере я дебажу именно её
Elenhil
ты дебажишь result_var.results
Elenhil
- name: Print find debug: msg: "{{result_var}}"
Elenhil
это ж питон
G
скорее всего. Дебажните просто вашу зареганную переменную да посмотрите на json
: FAILED! => {"msg": "'dict object' has no attribute '_list'"}
Vitalii
Подскажите, кто-то сталкивался с кейсом, когда нужно темплетизировать много файлов. Темплейт в лупе медленно работает, даже на локалхосте.
G
как заставить энсибл искать файлы на локальном хосте?)
Grek 🇺🇦
почитать документацию, например
Alex
как заставить энсибл искать файлы на локальном хосте?)
- name: Find /var/log files equal or greater than 10 megabytes ending with .old or .log.gz - find: paths: /var/log patterns: '*.old,*.log.gz' size: 10m