【问题标题】:user vs sudo vs sudo_user in ansible playbooksansible playbooks中的user vs sudo vs sudo_user
【发布时间】:2013-12-09 05:28:09
【问题描述】:

我已经阅读了 Ansible 文档,但我仍然对 ansible playbook 中的以下三个参数感到困惑:user、sudo、sudo_user。

我已经尝试了以下具有不同参数组合的剧本:

  1. user:deploy => 工作

  2. user:deploy 和 sudo: True => 挂起 git 任务

  3. user:deploy, sudo: True and sudo_user: deploy => Works

sudo_user 实际上做了什么? 何时以及为什么应该使用这些组合?

- hosts: all
  user: deploy
  sudo: True
  sudo_user: deploy

  tasks:
      - name: Ensure code directory
        file: dest=/home/deploy/code state=directory

      - name: Deploy app
        git: repo=git@bitbucket.org:YAmikep/djangotutorial.git dest=/home/deploy/code

谢谢

【问题讨论】:

    标签: sudo ansible


    【解决方案1】:
    • user 是您 ssh 的用户。使用您的配置,您将以 deploy 的身份 ssh。

    • sudo_user 是您在设置sudo: yes 时在主机上执行 sudo 的用户。

    所以我认为在你的情况下sudosudo_user 都不是必需的,如果你可以 ssh 为deploy

    但是,如果您以 root 身份 ssh,则需要设置 sudo_user: deploysudo: yes

    如果您要求 'sudo' 但未指定任何用户,Ansible 将使用您的 ~/.ansible.cfg (sudo_user) 中的默认设置,并将默认为 root

    请注意,user 已被弃用(因为它令人困惑)。你应该改用remote_user

    编辑:案例 #2 可能由于 ssh 确认问题而挂起:您可能在 ~deploy/.ssh/known_hosts 中有 bitbucket.org 主机密钥,但在 ~root/.ssh/known_hosts 中有 NOT

    更新:从 Ansible 2.x 开始,使用 becomebecome_user 而不是已弃用的 sudosudo_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: repo=git@bitbucket.org:YAmikep/djangotutorial.git dest=/home/deploy/cod
    

    【讨论】:

    • 如果您在具有角色的剧本中有sudo: yessudo_user: root 会发生什么情况,该角色中的任务是否以root 身份执行?如果是这样:当角色中的任务使用remove_user时,它会切换到这个用户,还是会在这种情况下ssh到这个用户的机器?
    • @rednaw,您是否尝试添加一些“whoami”语句来检查哪个用户在哪里使用?你的用例是什么?
    • @rednaw :是的,作为 root (并且你应该作为另一个用户 ssh'ed)。 remote_user 不会切换,因为它是您正在 ssh 的用户。
    • sudo 现已弃用并替换为 become docs.ansible.com/ansible/…
    猜你喜欢
    • 2015-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-13
    • 2015-03-01
    • 1970-01-01
    相关资源
    最近更新 更多