Denis
всем привет
Denis
ребята нужна помощь
Denis
как запустить таску от другого пользователя?
Denis
Timur
Timur
Что за задачу ты хочешь решить?
Timur
Нужно из этого вложенного списка достать в отдельный список keyname и key? Или что-то другое?
John
Timur
Да, именно так
Сделал для примера вот такой массивчик:
system_accounts:
- login: LOGINT
publickeys:
- keyname: KEYNAMET
key: "AAA"
keytype: RSA
- keyname: KYNAEDD
key: "CCC"
keytype: RSA
- keyname: KEYMAES
key: "DDD"
keytype: RSA
- login: AAAAEES
publickeys:
- keyname: KEYNAMETRE
key: "BBB"
keytype: RSA
Timur
Вот так:
- name: List keyname
debug:
msg: '{{ system_accounts | sum(attribute="publickeys", start=[]) | map(attribute="keyname") | list }}'
- name: List keys
debug:
msg: '{{ system_accounts | sum(attribute="publickeys", start=[]) | map(attribute="key") | list }}'
все работает
Timur
Если в более читабельном виде, то будет вот так:
- name: List keyname
debug:
msg: >-
{{ system_accounts
| sum(attribute="publickeys", start=[])
| map(attribute="keyname") | list }}
- name: List keys
debug:
msg: >-
{{ system_accounts
| sum(attribute="publickeys", start=[])
| map(attribute="key") | list }}
Timur
Схема понятна?
Никита
fatal: [10.0.0.219]: FAILED! => {"msg": "'inventory_host' is undefined"}
Никита
поймал на ровном месте, куда смотреть?
Sergey
Dmitrii такие вещи по согласованию, здесь не чат с вакансиями
Terry
@tnt4brain Dmitrii Semenov - спамер вакансий, можно банить я думаю + он и в гитлабе есть
Sergey
Ну там я его предупредить успел, а тут просто удалил, ибо нефиг.
Terry
Sergey
Ладно, здесь просто выкинул. Тоже норм.
Anonymous
не совсем по теме, но bareos та еще наркомания
E_zombie
а есть какой нибудь пример как можно импортировать ролей по шаблону имени директорий где они лежат?
Timur
Timur
Что значит "импортировать ролей по шаблону имени директорий где они лежат"?
Max
E_zombie
мне надо выполнить только определённые роли по шаблону имени
E_zombie
additional_roles]# ls
custom ha-clickhouse ha-nginx
E_zombie
например толькто те которые начинаются с ha-
Timur
Вы хотите странного
Timur
Список ролей в плейбуке подразумевается фиксированный
Timur
Иначе какой смысл в ролях
Timur
Плейбуки теоретически можно генерить динамически, но юзкейс я себе слабо представляю
E_zombie
жизнь такая что эти роли могут быть а могут и не быть у пользователя. вот не надо ему виртуалки формировать. а кому то надо. он кастомную роль и подгружает.
Timur
George
George
Типа install_xxx: false
Timur
Зачем по шаблону роли подключать - все равно не понимаю
Timur
George
George
Либо ставится, либо нет
Igor
Лолшто?
што "лолшто"
Timur
Если на хосте не нужна роль, не нужно просто ее ставить
Igor
будь ленивым
Timur
Зачем тут какая-то таска?
Igor
Igor
человек хочеть скипать части плейбука по хостам - хули нет
Timur
Если таска скипается по определенному условию - это ок. Но опять же - не понимаю, при чем тут накат ролей по шаблону имени
Igor
один плейбук to rule them all
Timur
Timur
Timur
Один плейбук - несколько плеев с разными группами. На каждую группу - свой набор ролей
Timur
И вперед
E_zombie
1. список ролей выбирается пользователем. 2. часть ролей должна быть выполнена ДО остальных. если со вторым все понятно то вопрос в первом.
George
George
Выбирай пользователем
George
Он же может плейбук редактировать ?
Timur
E_zombie
у пользователя вебморда и он не может править плейбуки
Igor
а. человек хочет cloudfoundry из ансибла сделать
E_zombie
он может только нажать - деплой
Igor
Igor
можно захерачить плейбук из доступных ролей
Igor
но придется руками поработать
Igor
чтобы сделать морду
George
Timur
George
Пользователь их через веб морду может определять флажками true / false
George
В плейбуке, очевидно, условие when
E_zombie
https://code.getnoc.com/noc/tower
Timur
Если хочется динамики по ролям, можно использовать include_role
Timur
И список ролей через переменную передавать
E_zombie
я порылся в доке. но не понял как ему подсунуть список
E_zombie
пример работающий есть ?
Timur
- name: Use role in loop
include_role:
name: '{{ roleinputvar }}'
loop: '{{ roles_list }}'
loop_control:
loop_var: roleinputvar
E_zombie
спасибо. буду пробовать.
Timur
Ну, или генерить плейбуку через jinja темплейт
Timur
Типа такого:
- hosts: localhost
roles:
{% for name in role_vars -%}
- {{ name }}
{% endfor %}
Timur
Но это все #странное