Алексей
типа в ansible-playbook -i ‘необходимый инвентори файл дергать’? вы про это?
Алексей
вся проблема в том что я делаю это на localhost
Алексей
это мне нужноо для билда докер образов
Timur
Это неважно
Алексей
я пока не пойму как он будет переменные брать нужные
Алексей
еще хотел сказать я сами переменные из giltab получаю
Антон
еще хотел сказать я сами переменные из giltab получаю
делай разные инвентари под разные окружения. неделю делали себе голову пытаясь сделать без этого, перешли и огромный пласт проблем просто ушел
[IPT] Dmitry
а это норм, если я в одной роли буду использовать функции питона из другой роли?
fs
Кто подскажет, можно ли юзать include_playbook в loop ? тип - include_playbook "{{ item }}" loop: a.yml b.yml
[IPT] Dmitry
Кто подскажет, можно ли юзать include_playbook в loop ? тип - include_playbook "{{ item }}" loop: a.yml b.yml
просто попробуй. это же 1 минута. но мне кажется что можно
Anonymous
Кто подскажет, можно ли юзать include_playbook в loop ? тип - include_playbook "{{ item }}" loop: a.yml b.yml
Только loop control включи и переменную назови не item, а например playbook
Anonymous
Иначе внутри плейбука лупы будут работать некорректно (если они там есть)
fs
окей, спасибо
Evgeny
инклуд можно, импорт нельзя
Evgeny
я подобное делал с ролями когда надо было динамичекси в зависимости от имени хоста выбрать роль для деплоя приложения, чтобы можно было говорить где деплоить приложение через теги в aws
kbks
а нет простого способа получить общее количество доступных мегагерц на хосте? те общую сумму частоты всех ядер
kbks
А можно кейс? Чет прям аж сильно любопытно...
В номаде количество выделяемых ресурсов проца для джобы указывается в Мгц. Мне не очень хочется на каждом енве указывать это вручную.
kbks
Ну и в целом же это перемножение просто
Да, это перемножение, но если смотреть в факты о хостах ansible_processor* то там формата “"Intel(R) Xeon(R) CPU E5-2690 v2 @ 3.00GHz” нет простого указания Г/Мгц
Антон
Сплит по собаке и все
Антон
Число ядер есть
Антон
Хотя да, это уже не самое простое :/
kbks
вот и я о том же. костыли и сам придумать смогу, я думал может есть нативный вариант какой-то
Deyvis
День добрый. Может кто подсказать, как сравнить данные из gather_facts с конкретным значением. например я получаю объем диска, мне требуется сравнить с моим значеним
Deyvis
т.е .я делаю "hostvars[inventory_hostname]['ansible_devices']['{{item}}']['size']" , получаю значение и дальше что-то застопорился
Hankey
День добрый. Может кто подсказать, как сравнить данные из gather_facts с конкретным значением. например я получаю объем диска, мне требуется сравнить с моим значеним
Привет. При сборке фактов, значения попадают в переменные, попробуй изначально определить переменную, и сравнить с той, что в фактах
Dmitriy
т.е .я делаю "hostvars[inventory_hostname]['ansible_devices']['{{item}}']['size']" , получаю значение и дальше что-то застопорился
приветствую, если я правильно понял, то сделайте как то так include: /etc/ansible/roles/role/tasks/centos6.yml when: - ansible_facts['os_family'] == "RedHat" and ansible_facts['distribution_major_version'] == "6"
Dmitriy
только посмотрите как нужный вам факт называется
Anonymous
Помогите советом - как при сохранении передачи инвентаря в плейбук переопределить хост, на котором будет выполнена роль из него? (Конкретнее требуется запустить роль на локалхосте)
Full
delegate?
Anonymous
bash?
0_о ... Не понял
Sergey
0_о ... Не понял
Напиши, как задача звучит первоначальная
Anonymous
Напиши, как задача звучит первоначальная
Суть роли - скачать из хранилища артефактов собственно артефакт, параметризовать конфигурацию в зависимости от инвентаря, подложить нужные файлы по нужным путям и т.п. чистого баша там нет, всё на модулях. Для дебага мне хочется сохранить контекст инвентаря для правильной шаблонизации, но выполнять весь процесс на локалхосте. Надеюсь вопрос понял верно
Ib2828
доброго дня кто нить встречался с такой задачей есть шаблон нужно его раскидать на несколько хостов и соответсвенно подставить свои переменные как это можно реализовать?
Ib2828
да есть темплайт конфига но как его на несколько хостов расикдать? цикл организовать
Андрей
Host vars, не
Ib2828
Host vars, не
Тэкс надо подумать как вариант
Timur
да есть темплайт конфига но как его на несколько хостов расикдать? цикл организовать
Никакой цикл не нужен. В рамках плея по дефолту действия делаются параллельно на всех хостах группы
Ib2828
Ib2828
спасибо всем
Ib2828
пошел смотреть
Anonymous
--- hosts: all gather_fact: true tasks: [] hosts: localhost gather_facts: false tasks: - name: foobar copy: content: "{{ host_vars | to_nice_yaml }}" dest: /tmp/1.yaml Удебажиться хватит по самое небалуйся.
Вводная такая, что модифицировать плейбук нельзя. Ролей таких много, они все активно развивается и в случае локального форка я перманентно буду отставать
Sergey
Вводная такая, что модифицировать плейбук нельзя. Ролей таких много, они все активно развивается и в случае локального форка я перманентно буду отставать
Не понял, причём здесь модификация плейбука? Ты спросил "как собрать факты для отладки и сложить на локалхост", я тебе ответил.
Anonymous
Он наверное не оч понял что спросил
Anonymous
Не понял, причём здесь модификация плейбука? Ты спросил "как собрать факты для отладки и сложить на локалхост", я тебе ответил.
Видимо я некорректно донес мысль. Сбор фактов тут не при чем. Есть, условно, джарник, у него есть десятки конфигурационных файлов, которые шаблонизируются в зависимости от указанного инвентаря. Мне хотелось при сохранении контекста инвентаря (читай-при подстановке правильных переменных) получить деплой этого джарника со всеми конфигами на локалхост
Vladimir
Inventory - это хосты, группы и привязанные к ним значения. Всё остальное к inventory не имеет отношения.
Ну даже в доке официальной групповые переменные вынесенные в файл внутри инвентаря указаны как бестпрактики? Разве это не делает их подмножеством инвентаря? Если я переформулирую "с сохранением контекста групповых переменных, указанных для данного инвентаря" станет лучше ? 0_о
Sergey
И абсолютно все групповые переменные при старте плйбука заканчивают свой путь в hostvars.
citius
https://amarao-san.livejournal.com/3460297.html
Evgenii
Подскажите, можно ли во время выполнения плейбука, таски: Пройтись по списку через with_items + when condition, получить output много строк skipping и только 1+ строк - ok (when) и... сохранить в переменную, например host_vars только те данные, что попали под условие (я сохраняю через register) (доп. вопрос.: можно ли supress/не_выводить строки со статусом skipping?)
Nicolai
ansible.cfg Add line display_skipped_hosts=False
Denis
Всем привет Я в курсе что не нужно пытаться программировать на Ansible, но иногда приходится Есть такая структура https://gist.github.com/dyudin0821/8ea79bee116eb662f2c732ae628fa5a8 Как получить доступ до binding.ip в цикле loop
Denis
Получилось как то так - name: IIS WEB | Configure binding debug: msg: "{{item.value.binding.0.ip}}" # msg: "Site {{item.key}}, ip: {{item.value.binding.0.ip}}" loop: "{{ lookup('dict', iis_sites) }}" tags: bindings Но 0 хочется заменить переменной и идти в цикле
Sergey
Ну или subelements + нормальная запись (вместо вызовов метода объекта обращение к ключам словаря).
Denis
Да я думал как-нибудь красиво и удобно структуру перемных задать, а потом уперся в жто
Denis
видимо все таки надо ее переделать, спасибо
Sergey
видимо все таки надо ее переделать, спасибо
Либо не играть с вот этим вот - словарь/список, а честно складывать однородные объекты в списки.
Denis
И потом перебирать сразу несколько списков?
Sergey
И потом перебирать сразу несколько списков?
Ну а потом через subelements, да. Это же штатная фича.
Denis
Окей, спасибо. Пошел переписывать
Sergey
Хотя здесь тоже вопрос, зачем так - IP-адреса по идее должны тащиться из inventory.
Denis
Пользователи хотят больше гибкости, а если я буду тащить например из фактов хоста, то оно может настроить на IIS сервере не так сайты. Поэтому приходитться делать велосипеды
Denis
Всем привет. Ребята подскажите как работать с json у меня такой json [ { "name": "test1" "id": "1" }, { "name": "test2" "id": "2" } ] хочу узнать id зная имя как,
Denis
спасибо
fs
Можно. Но юзкейс было бы любопытно послушать.
та просто есть такая скажем так секция в коде где дохрена инклюдов однотипных, хотелось это немного красивей сделать
Ib2828
есть такая задача - name: '{{ playbook_name }} - create apps folders' file: path="/opt/softi/{{ item.app_name }}" state=directory owner=app group=app mode=0755 with_items: - { apps_conf_tree: 'web-ap', inventory_hostname: 'app-01' } как правильно создать папки по хостам в зависимости от имени хоста?
Ib2828
данная конструкция выдает ошибку
Sergey
данная конструкция выдает ошибку
Наверное, потому, что ключа app_name в словаре нету?