#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
Комментариев нет:
Отправить комментарий