Ответ 1
-
user
- пользователь, которого вы ssh'ing как. С вашей конфигурацией вы ssh'ing какdeploy
. -
sudo_user
- пользователь, которого вы sudo'ing на хосте, когда установленsudo: yes
.
Итак, я думаю, что в вашем случае ни один из sudo
и sudo_user
не нужен, если вы можете ssh как deploy
.
Однако, если вы используете ssh как root, вам нужно установить
sudo_user: deploy
и sudo: yes
.
Если вы запрашиваете "sudo", но не указываете какого-либо пользователя, Ansible будет использовать значение по умолчанию в вашем ~/.ansible.cfg
(sudo_user
) и по умолчанию будет root
.
Обратите внимание, что user
устарел (потому что это запутывает). Вместо этого вы должны использовать remote_user
.
РЕДАКТИРОВАТЬ: Случай # 2, вероятно, зависает из-за проблем с подтверждением ssh: у вас, вероятно, есть ключ хоста bitbucket.org в ~deploy/.ssh/known_hosts
, но НЕ в ~root/.ssh/known_hosts
UPDATE: с Ansible 2.x используйте become
и become_user
вместо устаревших sudo
и sudo_user
. Пример использования:
- hosts: all
user: deploy
become: true
become_user: deploy
tasks:
- name: Ensure code directory
file: dest=/home/deploy/code state=directory
- name: Deploy app
git: [email protected]:YAmikep/djangotutorial.git dest=/home/deploy/cod