ansible 的 remote_user 和 become_user 有什么区别

What is the difference between ansible's remote_user & become_user

提问人:Ashar 提问时间:5/2/2019 最后编辑:Vladimir BotkaAshar 更新时间:10/1/2023 访问量:7421

问:

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

区别:

- hosts: all
  become: yes
  become_user: user1

- hosts: all
  remote_user: user1

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

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

ansible 提升权限

评论


答:

9赞 Vladimir Botka 5/2/2019 #1

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

答:两者之间的特权没有区别

- hosts: all
  become: yes
  become_user: user1

- hosts: all
  remote_user: user1
  become: no

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

  • 权限提升,例如 sudo user1
  • SSH连接到user1@host

笔记:

  • 最佳做法是不允许 ssh root
  • 在大多数情况下,become_userroot(这也是默认设置)
  • 在大多数情况下,需要两个步骤:
    1. 连接到remote_user@host
    2. 将权限升级为 root变为:yes)。
  • 请参阅成为非特权用户的风险
8赞 Bhatasana Prashant 5/2/2019 #2
  • become_user表示将执行 playbook 的用户,远程用户将在远程服务器上执行该 playbook。

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

有稳定的差异:

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