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