ansible 的 remote_user 和 become_user 有什么区别

Ash*_*har 4 privileges elevated-privileges ansible

考虑到该剧将在本地或远程运行,我需要了解 ansible 的 remote_user 和 become_user 之间的区别。

之间的区别:

- hosts: all
  become: yes
  become_user: user1

- hosts: all
  remote_user: user1
Run Code Online (Sandbox Code Playgroud)

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

我试图用谷歌搜索差异,但没有找到任何好的解释。

Vla*_*tka 9

问:“服务器之间设置 SSH 密钥会有什么不同吗?”

答:之间的特权没有区别。

- hosts: all
  become: yes
  become_user: user1
Run Code Online (Sandbox Code Playgroud)

- hosts: all
  remote_user: user1
  become: no
Run Code Online (Sandbox Code Playgroud)

user1的环境设置 可能存在差异:

  • 特权升级,例如sudo user1
  • ssh 连接到user1@host.

笔记:

  • 最佳实践是不要允许 ssh 获取root 权限
  • 大多数情况下,become_userroot(这也是默认的)
  • 大多数情况下,需要两个步骤:
    1. 连接到remote_user@host
    2. 将权限升级到root变为:yes)。
  • 请参阅成为非特权用户的风险


小智 5

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

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

有稳定的区别:

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