Max
https://pastebin.com/raw/fpuZaA0t
т.е ты записал инвентарь в переменные, и планируешь релизовать проход по нему.
cent
т.е ты записал инвентарь в переменные, и планируешь релизовать проход по нему.
Ну, тут суть не особо важна) мне пока важно key достать
Max
это ты дублируешь ансибл ансиблом.
Max
т.е. настоящие данные не являются дубляжом инвентаря?
Max
Ну, тут суть не особо важна) мне пока важно key достать
суть как раз и важна. если ты пытаешься с помощью лопаты сделать себе лопату
cent
суть как раз и важна. если ты пытаешься с помощью лопаты сделать себе лопату
Ну, не знаешь - так и скажи. Зачем Ты копаешься в личных извращениях?)
Max
я споосил вопрос: данные - принципиально мок, или же укороченная версия настоящих?
Max
если не знаешь, так и скажи.
Oleksandr
Ну, не знаешь - так и скажи. Зачем Ты копаешься в личных извращениях?)
ты слушай дядьку - дело говорит и учит. причем бесплатно
cent
Правда, уже не бесплатно)
Oleksandr
я не сомневаюсь. но можно заткнуть дырку, а можно понять принципиальные моменты
Max
Да я сам многому могу научить)
ты уже меня бесплатно научил. Спасибо.
cent
https://pastebin.com/raw/UrFaiCUJ - можно запилить так, кому интересно
Max
https://pastebin.com/raw/UrFaiCUJ - можно запилить так, кому интересно
а можно было то же самое сделать по-человечески (3 строками), если бы ты свое эго научил служить тебе.
Max
а не служил у своего эго.
Aleksey
подскажите, пожалуйста, как в зависимости от того, есть в ansible_devices устройтва nvme или нет, инклудить таск? :)
Aleksey
словарь, вроде бы
Max
ты модешь лупить по списку или словарю, не важно.
Max
лупить - to loop
Max
и сделать when:
Max
если нашел что надо - выставить флажок.
Aleksey
логику как это можно реализовать я понимаю :) с инструментом оооочень плохо знаком
Aleksey
to_loop?
Max
можно еще создать свой факт...
Max
в смысле, который будет выставляться автоматом при setup
Max
типа
Max
has_nvme
Max
как выглядит факт устройства nvme? особое имя?
Aleksey
все начинаются с nvme
Aleksey
а там может быть nvme0n1, например
Max
тогда можешь сделать условие:
Aleksey
я просто не знаю как сделать что-то типа "если в ansible_devices есть хоть одно вхождение ^nvme.*, то, например, создать переменную has_nvme=1. иначе has_nvme=0"
Aleksey
а дальше я уже сделаю include какой-нибудь основываясь на этой переменной
Aleksey
(или факт, не знаю как правильнее)
Max
есть select, selectattr фильтры
Max
можно превратить ansible_devices | dict2items | selectattr("key", "не уверен какой оператор", "^nvme")| list | length
Max
это даст число
Max
оператор найти в доке jinja
Max
этот ужас ставишь в when
Max
и приклеиваешь к таске/списку таск.
Aleksey
@cent_ru https://pastebin.com/X3gTaC1F
Max
можно еще filter plugin написать
Max
но это уже перебор
Max
@cent_ru https://pastebin.com/X3gTaC1F
сколько тачек надо пройти так? если не много, можешь в 3 шага: - name: setup has_nvme set_fact: has_nvme: True loop: ansible_devices|dict2items|list loop_control: loop_var: device when: - device.key.startswith("nvme") - name: my task mymod: dict(params) when: - has_nvme|default(false)
Anonymous
Подскажите пожалуйста, что я делаю не так? задача - сохранить кастомный факт. --- - name: test fact hosts: localhost connection: local tasks: - name: write fact set_fact: token: 123 Выполняется успешно, но факт после выполнения я не вижу. ` [root@vagrant]# ansible localhost -m setup | grep token` - ничего ansible 2.7.8
xfs_repair
Приветсвтую подскажите пожалуйста , создал свой config file , как его сделать постоянным ? чтобы на дефолтный не переходил
Timur
Факты, собираемые ансиблом и создаваемые во время плея, хранятся в памяти. Ровно до момента окончания исполнения плея
Timur
Попытки что-то узнать о фактах из предыдущего плея в последующих обречены на провал
Anonymous
Понял, спасибо. Подскажете, как тогда корректней будет засейвить значение переменной, которую нужно прочитать с другого хоста?
Anonymous
Понял, спасибо. Подскажете, как тогда корректней будет засейвить значение переменной, которую нужно прочитать с другого хоста?
Есть такая конструкция, которая выполняется на хосте А. - name: get token shell: cat /tmp/jenkins_token register: jenkins_token Как мне с хоста B прочитать значение этой переменной?
Timur
Вам нужно на одном хосте получить содержимое файла другого хоста?
Anonymous
Можно и так
Timur
На каком из хостов исполняется ансибл при этом?
Anonymous
Ни на одном из них, т.е. на третьем (условно управляющая нода)
Timur
Понятно
Timur
Смотрите модуль slurp: https://docs.ansible.com/ansible/2.7/modules/slurp_module.html#slurp-module
Timur
shell: cat /tmp/jenkins_token - вот это сразу в топку
Anonymous
Да, я сам не в восторге. По кривой дорожке пошёл
Timur
Со slurp понятно, что делать?
Anonymous
Т.е. через slurp вытягиваем файл с хоста А, читаем содержимое в какую-то переменную и дальше её используем в хосте Б? Примерно так?
Anonymous
Благодарю за помощь
Timur
Если будут трудности с доступом к переменной другого хоста, смотрите сюда: https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#accessing-information-about-other-hosts-with-magic-variables
Max
Приветсвтую подскажите пожалуйста , создал свой config file , как его сделать постоянным ? чтобы на дефолтный не переходил
ansible.cfg берется, по иерархии из списка, который начинается из текущего каталога. если ты запускаешься из текущего каталога, положи файлик в git, и да пребудет с тобой счастье ....стянул код проекта, есть у тебя конфига.
John
Коллеги, подскажите как понять что происходит? https://pastebin.com/U4tSyrh0 Там и tasks/main.yml и результат работы ansible-plabook почему такая колосальная разница?
John
Ну да, в роли много всего, а выполнено совсем чуть-чуть И это не считая того, что гиту указан дестинейшн, а клонировался он просто в /opt/powerdns-admin Хотя указано вроде /opt/www/powerdns-admin