ansible的remote_user和变得_user之间有什么区别

时间:2019-05-02 04:25:36

标签: ansible privileges elevated-privileges

我需要了解ansible的remote_user和成为begin_user之间的区别,因为该播放将在本地或远程进行。

两者之间的区别:

- hosts: all
  become: yes
  become_user: user1

- hosts: all
  remote_user: user1

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

我尝试用Google搜索差异,但没有找到相同的好解释。

2 个答案:

答案 0 :(得分:1)

privilege之间没有区别

- hosts: all
  become: yes
  become_user: user1

- hosts: all
  remote_user: user1
  become: no

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

在大多数情况下, become_user 是root用户,但是最佳实践是不允许ssh root用户。因此,在大多数情况下,需要两个步骤:1)连接到remote_user @ host和2)将特权升级为root。

回答您的问题

  

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

应该有一个公共密钥,可以授权ssh到 remote_user:user1 。升级到 remote_user:user1 后,升级 become_user:user1 没有意义。因此,是的,可能会有所不同(如果将公钥分发给所有remote_user和成为begin_user,则不必如此)。

答案 1 :(得分:1)

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

  • 成为:是的,默认情况下,它将自动执行sudo以根。但是随后您告诉了remote_user:部署程序,该服务器告诉服务器登录的用户是deployer,并且在他们登录后执行默认的sudo。

有稳定的区别:

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