Timur
В общем, если вам не нужен навороченный синтаксис в команде, лучше использовать command
Timur
Это best practice
Timur
А вообще и command и shell лучше всеми силами избегать
Egor
да я в курсе за бест практис, читал
Egor
но выбора нет пока-что
Отделение Bereke Bank
подскажите, а это нормально что хандлеры выполняются не в том порядке, в котором они указаны в notify?
Timur
Хотите несколько тасков подряд запустить хендлером?
Отделение Bereke Bank
Да
Отделение Bereke Bank
может я конечно чтото не так делаю, но таска меняет tuned profile - далее нужно применить профиль и перезапустить сервис. именно в таком порядке
Отделение Bereke Bank
не удивлюсь если у ансибла есть модуль для работы с tuned. хотя я чет не нашел
Timur
Да
Есть минимум два способа
Timur
Либо делать в хендлере import_tasks
Timur
Либо делать несколько хендлеров. И первый вызванный тригерит следующий и т.п.
Timur
Вполне надежная схема
Отделение Bereke Bank
Либо делать несколько хендлеров. И первый вызванный тригерит следующий и т.п.
то есть мне в хэндлер, который должен идти первым, добавить notify второго? а в таске при этом notify-ить только первый?
Timur
Можете посмотреть как в некоторых наших ролях сделано
Отделение Bereke Bank
Спасибо 👍🏽
Ivan
Да
Вспоминается "Тачка на прокачку" и чувак с мониторами
Отделение Bereke Bank
V.
привет, кто может подсказать, иза чего такое может быть, когда плэйбук через крон выполняю, таски с модулями net_put net_get просто висят в фоне бесконечно долго, если руками из консоли плэйбук запустить то все ок
Vladislav 👻
Подскажите, можно как-то судошнуться через конкретного пользователя? А то у меня есть инсталл апликейшена одного, там надо из под рута, но пользователь берется из SUDO_USER
Vladislav 👻
Пока писал, осенило, что я могу просто env пробросить для SUDO_USER 😬
George
по ссш
Vladislav 👻
заходи под этим юзером в ансибл
не надо, это системный
Maxim
как бы мне автоматом добавить группу хостов в гору инвентори-файлов?
Egor
гору перечисляете в листе и потом with_items фигачите lineinfile в конец файла
Egor
это прям навскидку
Egor
что-то вроде - name: insert into files lineinfile: path: '{{ item }}' line: 'Added Line 1' insertbefore: EOF with_items: - '{{ fileslist }}'
Egor
либо можете юзать blockinfile по похожей схеме
Egor
щито поделать
Egor
:-)
Timur
Инвентари в каком формате?
Timur
Если yaml, то можно сделать проще
Timur
Потому что задача добавлять хосты в инвентарные файлы выглядит странно
Timur
Непонятно, что мешает просто добавить ещё один инвентарный файл с нужными хостами
Aleksey
Кто-то знает способ получить ssh ключ хоста по его fqdn для known_hosts, без того чтобы дергать ssh-keyscan в command ? Может какой lookup плагин есть, а я его не нахожу.
Boris 🦍
Привет подскажите как в value doby модуля uri передать контент файла удаленной машины ? - name: Load data shell: "cat {{ local_ssl_dir }}/{{ pki_domain_name }}.key" register: key_data Пробую шеллом считываеть вызывать - name: "main" uri: url: "{{ addr }}/v1/{{ envite }}" method: POST body: ' { "key": "{{ key_data.stdout | to_json }}" } ' body_format: json Но получаю ошибку
Boris 🦍
пробовал slurp модуль для , но ловлю подобную ошибку
Timur
shell cat - сразу в топку
Boris 🦍
Брось бяку
а какие альтернативы для удаленной машины ?
Timur
Что в stdout выводится?
Boris 🦍
Какова исходная задача?
генерить сертификаты, складывать их в vault от hashicorp .... генерю с помощью consul_template сразу пачку
Boris 🦍
они валются на хосте, нужно их считать и записать в vault hashicorp
Sergey
https://www.hashicorp.com/blog/certificate-management-with-vault
Boris 🦍
тележка впереди коняжки
ну это пока всё тесты..
Boris 🦍
Boris 🦍
просто помимо генерации , еще их нужно положить в волт
Boris 🦍
в secret
Boris 🦍
https://www.hashicorp.com/blog/certificate-management-with-vault
т.е на уровне генерации и получения все норм
Boris 🦍
Какова исходная задача?
т.е мой подход может быт ьне совсем правильный, но теперь уже просто хотелось бы разобраться, можно ли юзать контент и записывать его через api )
Boris 🦍
Что в stdout выводится?
- name: slurp data slurp: src: "{{ local_ssl_dir }}/{{ pki_domain_name }}.key" register: mydata - name: "main | write CA via API" uri: url: "{{ vault_addr }}/v1/{{ vault_secret_path }}/{{ pki_domain_name }}" method: POST body: ' { "key": "{{ mydata }}" } ' body_format: json Вот так удалось записать данные. но они почемуто поехали, форматирование сбилось
Boris 🦍
через cli без проблем все записывается и считывается
Sergey
было что-то похожее у меня, когда YML грузил в Consul, закончилось тем, что написал свой модуль.
Timur
Что в переменной mydata?
Boris 🦍
А пример, как json выглядит?
многострочный ssl сертификат
Timur
многострочный ssl сертификат
Через slurp читаете, потом обрабатываете через свойство content и фильтр b64decode
Boris 🦍
Через slurp читаете, потом обрабатываете через свойство content и фильтр b64decode
пробовал, в таком случае ругается на многострочность \n не нравитс и т.д пересматриваю архитектуру в пользу CLI
Timur
Условно говоря, если брать пример выше, то после slurp: mydata.content|b64decode|from_json
Timur
Просто научитесь нормально данными оперировать
Boris 🦍
Покажите пример
- name: slurp data slurp: src: "{{ local_ssl_dir }}/{{ pki_domain_name }}.key" register: mydata - name: "main | write CA via API" uri: url: "{{ vault_addr }}/v1/{{ vault_secret_path }}/{{ pki_domain_name }}" method: POST body: key: "{{ mydata.content|b64decode|from_json }}" body_format: json