ansible 的 remote_user 和 become_user 有什么区别

What is the difference between ansible's remote_user & become_user

我需要了解 ansible 的 remote_user 和 become_user 之间的区别,因为该游戏将 运行 在本地或远程进行。

两者之间的差异:

- hosts: all
  become: yes
  become_user: user1

- hosts: all
  remote_user: user1

如果在服务器之间设置 ssh 密钥,会有什么不同吗?

我试图 google 找出不同之处,但没有找到任何好的解释。

privilege

没有区别
- hosts: all
  become: yes
  become_user: user1

- hosts: all
  remote_user: user1
  become: no

在 1) 权限提升和 2) 连接到 user1@host 之后,user1environment 设置可能有所不同。

在大多数情况下,become_user 是 root,但最好不要让 ssh 成为 root。因此,在大多数情况下,需要两个步骤 1) 连接到 remote_user@host 和 2) 将权限升级到 root。

回答你的问题

Will there be any difference in case ssh keys are setup between the servers?

应该有一个 public 授权 ssh 到 remote_user: user1 的密钥。升级 become_user: user1 在 ssh 到 remote_user: user1 之后没有意义。因此,是的,可能存在差异(如果 public 密钥分发给所有 remote_user 和 become_user,则不一定如此)。

  • become_user表示将执行剧本的用户,远程用户将在远程服务器上执行。

  • become: yes 默认情况下会自动执行 sudo 到 root。但是后来你告诉它 remote_user: deployer 告诉服务器登录的用户是 deployer 并且在他们登录后执行默认的 sudo。

有稳定的差异:

  • become:yes =。使用 sudo 并默认为 root
  • become_user: user1 = 使用来自 become:yes 的 sudo 并成为用户 user1。
  • remote_user: user1 = 在该远程服务器上以 foofoo 身份登录。