【问题标题】:How to run an Ansible command with the user id root如何使用用户 id root 运行 Ansible 命令
【发布时间】:2015-10-21 05:48:16
【问题描述】:

我有一个应用程序,我需要使用 Linux (CentOS) 使用 root 安装。

当我手动安装应用程序时,当我输入sudo <command> 时它不起作用。我实际上需要使用sudo su - 以root 身份登录,然后输入我的命令。我用过:

remote_user: root

su: root

甚至使用了类似的东西

command: sudo su -
command: <command>

但是该命令的运行方式与我手动登录的方式不同?我没有得到相同的结果。

如何使用用户 ID root 使用 Ansible 运行命令?

【问题讨论】:

  • root 帐户上查看$PATH
  • 我注意到当我手动 [vagrant] ssh 进入盒子时会有所不同。当我在 vagrant 用户 ID 下执行此操作时,路径具有以下内容: PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/vagrant/.local/bin :/home/vagrant/bin 但是当我“sudo su -”并以 root 身份登录时,我看到变量现在是“PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin: /usr/sbin:/usr/bin:/root/bin" 你能解释一下要检查什么以及为什么/要修复什么吗?

标签: ansible root sudo su


【解决方案1】:

我建议您将机器设置为使用管理帐户进行操作。

您的环境可能需要在 sudoers 文件中正确设置,例如:

---
- name: set a sudoers.d file
  hosts: www
  tasks:
    - name: Copy /etc/sudoers.d/env_keep into place
      copy:
        content: "Defaults env_keep += \"PATH\"\n"
        dest: /etc/sudoers.d/env_keep
        validate: visudo -cf %s
        owner: root
        group: root
        mode: 0440

如果您别无选择,也可以尝试新的become 方法。

【讨论】:

    猜你喜欢
    • 2020-05-01
    • 1970-01-01
    • 2020-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多