k4k
roles/
k4k
и в ней диры что есть название роли
/warn
Ну, у меня так же
/warn
Файл называется main.yml
k4k
так он по умолчанию вызовется, тебе не нужно внутри ямла писать имя роли
/warn
В roles/install-pip-package/tasks
k4k
просто вызывай роль install-pip-packages
k4k
а первую строчку в main.yml убери
k4k
и tasks тоже убрать нужно
k4k
k4k
вот пример main.yml
k4k
пример вызова роли
k4k
/warn
Убрал, тоже самое
/warn
The offending line appears to be: - tasks: ^ here
Ждун
обычно в редакторах есть способ включать показывать непечатные символы
k4k
опция tasks не нужна
/warn
опция tasks не нужна
Все, получилось, спасибо!
k4k
Что вкладывается в понятие факт?
k4k
Не подскажу, не юзал. Нужно разбираться
Vadim
register: устанавливает факт так же как и set_fact
Vadim
да, ну для своих фактов уже set_fact. А в чем требование обязательно делать в одной таске?
/warn
register: variable А потом где уже хочешь set_fact: variable = “{{ variable.stdout_lines }}”
/warn
Если правильно понял
/warn
Ну, тогда просто регистрируешь, и потом when: variable is defined
Nklya
Что-то пахнет костылями такое решение
Nklya
ну и это обычный хендлер
Nklya
нет
Nklya
хендлер в ансибле выполняется в конце рана, если ему пришел нотифай, один раз
GithubReleases
ansible/ansible was tagged: v2.5.8 Link: https://github.com/ansible/ansible/releases/tag/v2.5.8 Release notes: New release v2.5.8
GithubReleases
ansible/ansible was tagged: v2.6.3 Link: https://github.com/ansible/ansible/releases/tag/v2.6.3 Release notes: New release v2.6.3
Денис
Подскажите, не могу понять почему так получается: есть перемененные, объявленные в инвентори файле для группы: ansible_user=user@DOMAIN.RU ansible_password=*** ansible_connection=winrm ansible_winrm_transport=kerberos ansible_winrm_scheme=http ansible_port=5985 есть роль, которая по идее должна переопределять эти параметры (в файлах переменных только пароль для пользователя vagrant): - hosts: it-grad gather_facts: yes vars_files: - ./vars/vault.yml - ./vars/vars.yml roles: - role: config_winrm vars: ansible_user: vagrant ansible_password: "{{ default_password }}" ansible_winrm_transport: basic when: not ansible_windows_domain_member в итоге таск падает на моменте сбора фактов с ошибкой, что пользователь vagrant не найден в керберосе, и по логам он лезет собирать факты из-под пользователя vagrant (что логично, это локальный пользователь). Я думал он должен использовать переменную, из hosts, а менять на vagrant только для этой конкретной роли, и продолжать использовать исходную переменную из hosts. В чем косяк? я не так понимаю передачу параметров в роль? он перезаписывает переменную раньше, чем начинает выполнять сбор фактов?
Денис
ну и как вообще лучше делать, если мне для части тасков надо подключаться одним пользователем, а для другой части - другим? к одним и тем же хостам
Nklya
Почитай в документации про приоритеты переменных. То странное, что ты хочешь сделать с ролью не будет работать
Sergey
Подскажите, не могу понять почему так получается: есть перемененные, объявленные в инвентори файле для группы: ansible_user=user@DOMAIN.RU ansible_password=*** ansible_connection=winrm ansible_winrm_transport=kerberos ansible_winrm_scheme=http ansible_port=5985 есть роль, которая по идее должна переопределять эти параметры (в файлах переменных только пароль для пользователя vagrant): - hosts: it-grad gather_facts: yes vars_files: - ./vars/vault.yml - ./vars/vars.yml roles: - role: config_winrm vars: ansible_user: vagrant ansible_password: "{{ default_password }}" ansible_winrm_transport: basic when: not ansible_windows_domain_member в итоге таск падает на моменте сбора фактов с ошибкой, что пользователь vagrant не найден в керберосе, и по логам он лезет собирать факты из-под пользователя vagrant (что логично, это локальный пользователь). Я думал он должен использовать переменную, из hosts, а менять на vagrant только для этой конкретной роли, и продолжать использовать исходную переменную из hosts. В чем косяк? я не так понимаю передачу параметров в роль? он перезаписывает переменную раньше, чем начинает выполнять сбор фактов?
Проверка-то простая - закомментировать этот блок переменных. Тут всё и вылезет.
Sergey
А вообще - да, это странное, поэтому не надо так.
Денис
ну я и спрашиваю, как лучше делать в такой ситуации?
Денис
разные плеи делать для разных ролей, с разными remote_user?
Sergey
Скорее всего - да. И раз уж логически оно относится к одной куче - в один плейбук объединить.
Денис
попробую, спасибо
manefesto
а что за молекула ?
Nklya
http://bfy.tw/JS7A
Roman
Доброго времени суток! Подскаиже пожалуйста, возможно ли в host_vars именование элементов словаря по шаблону? Т.е. что-то вроде: main: do: {{(inventory_hostname|regex_search('([1-9][\\d]*)')|int)+200}}: var1: value var2: 123 {{(inventory_hostname|regex_search('([1-9][\\d]*)')|int)+300}}: var1: value var2: 123
Roman
чтоб для каждого хоста не приходилось писать подобное: main: do: 201: var1: value var2: 123 301: var1: value var2: 123
Roman
а просто указать в group_vars.
Nklya
Если у каждого хоста одинаковые переменные, то и поставь их в груп варс
Roman
Вываливается ошибка: ERROR! Syntax Error while loading YAML. did not find expected alphabetic or numeric character
Roman
The offending line appears to be: {{((inventory_hostname|regex_search('([1-9][\\d]*)')|int)+200)}}: ^ here
Roman
тыкает в скобку после звездочки
cent
Привет. Как можно сделать двойную итерацию? Тоесть есть 2 айтема, {{ users }} и {{ groups }} Мне надо каждого юзера прогнать через все группы в shell команде
Что-то мне кажется сам замысел слишком запутанный) Зачем нужно прогонять юзверя через все группы?
/warn
Потому что надо удалить целую команду людей из 20 групп)
/warn
В ручную делать что ли?)
cent
Потому что надо удалить целую команду людей из 20 групп)
Кто-то ручками лазит на сервак, кроме ansible ?
/warn
Нет
/warn
Все процессы через ансибл
cent
Все процессы через ансибл
А вести просто 2 списка не вариант? users: deleted_users:
/warn
Модуль ансибла не позволяет удалять пользователей
cent
Модуль ансибла не позволяет удалять пользователей
https://docs.ansible.com/ansible/2.5/modules/user_module.html remove When used with state=absent, behavior is as with userdel —remove. - name: Remove the user 'johnd' user: name: johnd state: absent remove: yes
/warn
Мне не надо удалить пользователей, мне надо удалить их из групп
/warn
А не из кластра
cent
Мне не надо удалить пользователей, мне надо удалить их из групп
Так Ты нормально и пиши) Ты же написал "не позволяет удалять пользователей" С памятью беда, да?) groups List of groups user will be added to. When set to an empty string '', null, or ~, the user is removed from all groups except the primary group. (~ means null in YAML) Before version 2.3, the only input format allowed was a comma separated string. Now this parameter accepts a list as well as a comma separated string. Ставишь нужные группы и из остальных он сам удалит.
/warn
Это еще большые костыли
/warn
У пользователять под 100-150 групп, и у каждого могут быть разные, мне надо делать список из который НЕ удалять и удалять из всех остальных
/warn
Такое себе
cent
У пользователять под 100-150 групп, и у каждого могут быть разные, мне надо делать список из который НЕ удалять и удалять из всех остальных
Ну, Ты можешь делать как хочешь, конечно) Потом другим программистам тоже можно будет за рефакторинг сорвать бабла) 👍 Ну, а если интересно как должно "по-правильному", то конфиг ansible у Тебя должен полностью отражать все что есть в системе. Это значит, что, в идеале, Ты должен смотреть какие у юзверей группы в ansible конфиге, а не бегать на сервак
/warn
Ой, за конфиги я не отвечаю и не лезу туда, мне дает Senior написать такой-то плейбук или модуль - ну я и пишу)
Andrey
Ребят, а есть возможность переименовать папку на windows, не прибегая к copy?
Andrey
Уж очень тяжелая операция
Nklya
Картинка с чуваками с квадратными колёсами
Andrey
Картинка с чуваками с квадратными колёсами
Ну это какая-то хрень, простая операция, а везде советуют copy, потому что rename для фолдерс не завезли
Nklya
Я про предыдущего оратора
Vadim
методология МХСК - "моя хата с краю"
/warn
За те деньги которые платят - мне похуй)