kevit
можно через when: item.key ограничить
Денис
Всем привет! Кто-то пользуется awx? Как получить список job tagы? Когда я делаю: ansible-playbook -i stage rsyslog.yml --list-tags playbook: rsyslog.yml play #1 (rsyslog): rsyslog TAGS: [] TASK TAGS: [rsyslog_config, rsyslog_install, update_firewall] Но когда пробую выбрать в tower получаю пустой список
GithubReleases
ansible/ansible was tagged: v2.5.0rc3 Link: https://github.com/ansible/ansible/releases/tag/v2.5.0rc3 Release notes: New version 2.5.0rc3
kevit
рано я радовался вчера
kevit
project: service1: type: service systemd_name: name1 service2: type: service systemd_name: name2 vars: microservice: service1 - name: Ensure service is enabled systemd: name="{{ item.systemd_name.value }}" enabled=yes with_dict: "{{ project }}" when: type == 'service' and item.key == microservice
kevit
recursive loop detected in template string все равно.
Vadim
Можно попробовать через vars и заменять на omit если условие не выполняется
Vadim
Или через json_query получить список имен
kevit
я думаю что это из-за того что у меня переменные некоторые в group_vars прописаны как some_variable: "{{ another_variable }}" и мне надо как-то от этого уходить иначе я на джинжу буду попадать все время.
kevit
сейчас проверил с передачей в роль та же цветомузыка
kevit
https://github.com/ansible/ansible/issues/8603 тут в общем-то все написано
Vadim
Надо обновить баг тогда, на 1.7 им наплевать
John
Привет всем, у меня вопрос
John
У меня вопрос по ансиблю. У меня есть каталог, скажем, /1/ в нем лежит несколько rpm файлов. Мне надо, чтобы ансибль усановил все rpm из каталога. Пишу yum: name=/1/* (или /1/*.rpm), выдает ошибку, что пакет не найден. В доках написано, что можно ставить все пакеты символом *, но видимо это не относится к локальным файлам?
Nklya
Такое делать не надо
Nklya
Но если очень хочется, можно найти все rpm и по ним итерироваться
Nklya
Или втупую rpm -ihv *.rpm или как-то так
John
да, я уже октазался от мысли использовать *, спасибо
Anonymous
ребята а что означает цифра [0] в записи {{ hostvars[groups['clients'][0]]['ansible_hostname'] }}-fd
Anonymous
брать первый хост ? из групы
Anonymous
спасибо так и думал
Andrew
О, а кстати, все элементы как получить без with items?
Dmitry
Не указывать переменную с [] ?
Andrew
Пля 😊
Artem
Привет, подскажите как вытащить значение переменной, например "dbname" с первой строчки, имея такую запись
Artem
database_conf: - { dbname: 'test', dbuser: 'user1', dbpassword: '123456' } - { dbname: 'test2', dbuser: 'user2', dbpassword: '123456' }
Artem
пробовал такой вид
Artem
- debug: msg: "{{ item.dbname }}" with_items: "{{ database_conf }}"
Artem
но в данном случае выдаёт сразу с двух строк
Konstantin
на 5 строчек выше обсуждается как со списками работать
Aleksey
@vrutkovs а нет ли хинтов как ускорить таск - name: Register to RHN redhat_subscription: state: present username: "{{rhel_register_rhel_subscription_username}}" password: "{{rhel_register_rhel_subscription_password}}" autosubscribe: true environment: http_proxy: "{{http_proxy}}" register: register_done он сейчас занимает около 49 секунд
Nklya
Поставить центос))
Aleksey
в роли для центоса этого таска нет.
Artem
на 5 строчек выше обсуждается как со списками работать
Делал "{{ item.0.dbname }}" не помогло, вылетает ошибка
Artem
FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'dbname' is undefined\n\nThe error appears to have been in '..../tasks/main.yml': line 7, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n- debug:\n ^ here\n\nexception type: <class 'ansible.errors.AnsibleUndefinedVariable'>\nexception: 'dbname' is undefined"}
Konstantin
database_conf[0].dbname
Artem
database_conf[0].dbname
Вроде оно, спасибо добрый человек сейчас буду пробовать))
Mikhail
Всем привет! Народ помогите, не могу сообразить уже часа два, как мне на хосте выполнить команду в докере или через docker-compose?))) мб у кого-то есть шаблончик))
Денис
command в модуле docker_container, не?
Mikhail
- name: test-command docker_container: name: ohno command: pwd
Mikhail
Как то так?
Денис
есть пример в документации и тут посложнее https://serverfault.com/questions/818611/running-an-ansible-command-in-multiple-docker-containers
Денис
оно?
Vadim
Он генерит сертификаты там, проверяет кучу всякой беды
Aleksey
49 секунд бро! :)
Womchik
а мог бы и все 50!
Денис
Участникам itgm удачи завтра 😉
Ilya
Коллеги, добрый вечер! Есть такой вопрос. В некой роли объявлена переменная со значение по-умолчанию, например, “{{ ansible_hostname }}”. Возможно ли через delegate_to узнать какое будет значение этой переменой на другом хосте? Собственно тут вопрос как зарезолвить значение перемнной в окружении другой машины.
Aleksey
в окружении исходной или целевой ?
Ilya
по умолчанию резовится в окружении текущего inventory_hostname. Хочется умудрится получить значение переменной для хоста который передан в delegate_to
Ilya
иметь возможность выбирать между исходной и целевой
Ilya
hostvars[delegated_host][the_var_I_need]?
Это сработает если переменная задана где-то в inventory и если setup прокатывался на delegated_host.
Vadim
Это сработает если переменная задана где-то в inventory и если setup прокатывался на delegated_host.
не обязательно, если факты собраны с хоста или установлены там - то будет светиться там
Ilya
тут как раз вопрос в том что на delegated_host мы предположим вообще ничего не прокатывали. Например указанный хост выкинут через limit
Ilya
интересует как это сделать без сбора фактов при запуске с limit.
Vadim
я хочу gather запустить через delegate.
так не выйдет, да и как-то запутанно
Ilya
ну задача выглядит примерно так: есть роль сервиса конфиг, которого должен содержать хостнеймы и еще чуток информации с остальной сети. Но при этом есть желание иметь возможность прокатывать только настройки одной конкретной машины где есть этот сервис, а не всей сети. Если мы добавляем limit, то соответственно у нас нет доступа к данным остальной сети. Пытаюсь придумать как это обойти.
Ilya
можно похоже просто fact'ы новые добавить. Тогда просто delegate_to и setup должны помочь.
Ilya
так не выйдет, да и как-то запутанно
Дамс. Переусложнил. Сделаю попроще ) Спасибо
Ilya
в окружении исходной или целевой ?
Если был вопрос, может были и варианты?
Aleksey
Если был вопрос, может были и варианты?
если в целевой надо что бы переменная была указана там. если в исходной то передача в блоке vars выглядит как ее рендеринг на исхожной стороне
Aleksey
по наблюдениям оно работает так
Ilya
если в целевой надо что бы переменная была указана там. если в исходной то передача в блоке vars выглядит как ее рендеринг на исхожной стороне
> если в целевой надо что бы переменная была указана там имеешь в виду, что она должна быть видна через hostvars? Можно тут по подробнее?
Aleksey
да если она видна в хостварс она будет разименована в целевой системе
Aleksey
я не сильно морочился на эту тему но выглядит будто оно работает именно так
Александр
Кто-то использовал proxyjump в плейбуках для ssh?
Ilya
да если она видна в хостварс она будет разименована в целевой системе
да все так. Так как переменной там не было, пытался через set_fact и delegate положить ее туда, но получалась каша, так как пременная резолвится в исходном окружении.
Aleksey
делегейт вообще выглядит во многих местах странно
Ilya
делегейт вообще выглядит во многих местах странно
согласен. Единственное что имеет оправдание - local action похоже )