Страницы

Поиск по вопросам

суббота, 11 января 2020 г.

Как заставить ansible перелогиниться при включенном pipelining?

#ssh #ansible


Когда в конфиге ansible включен pipelinining, он переиспользует ssh-соединение для
всех задач.
Иногда одна из задач меняет привилегии текущего пользователя, например, добавляет
пользователя в группу, и для применения этих привилегий приходится перезапускать весь
playbook.  

Конкретно, я столкнулся с этой проблемой при установке docker, для избежания become:
true задач контейнеризации, я добавляю текущего пользователя в группу docker.

Существует ли способ форсировать реаутентификацию без перезапуска playbook?  

Я знаю, что можно переопределить переменную окружения ANSIBLE_SSH_PIPELINING=0 для
всего playbook, но он довольно большой - повторный запуск гораздо быстрее.
    


Ответы

Ответ 1



Если говорить о конкретной проблеме добавления пользователя в группу, то перезагрузить группы можно без выхода: sudo gpasswd -a username somegroup newgrp somegroup Или конкретно для вашего случая: newgrp docker В случае Ansible этот трюк может не сработать, в таком случае, начиная с версии 2.3, можно указать Ansible повторно установить соединение: - user: name={{ansible_user}} groups=docker append=yes - name: update effective groups to include docker meta: reset_connection

Комментариев нет:

Отправить комментарий