Ansible的`become:yes`是否有替代方法?

时间:2019-07-30 19:46:13

标签: ansible sudo

我想运行Ansible剧本来配置服务器。我可以以非root用户身份进入服务器。我有sudo特权,但不允许切换到root用户。我实际上只是想执行sudo mkdir /opt/some_directory(当我在服务器中ssh并执行命令时,该命令有效)。

我认为,使用become:true会导致尝试切换到root用户并创建目录的错误。

代码:

- name: "Info: Creating directory."
  become: true
  file:
    path: "{{ directory }}"
    state: directory
    mode: '0755'

我得到的错误是Sorry, user xxxxx is not allowed to execute '/bin/sh -c echo BECOME-SUCCESS...

1 个答案:

答案 0 :(得分:0)

  

问:“是否有Ansible的替代方法:是?我有sudo特权,但我不允许切换到root 用户。我实际上只是想要执行sudo mkdir / opt / some_directory ...”

A:否。引用Can’t limit escalation to certain commands

  

特权升级权限必须是常规的 ...如果您将“ / sbin / service”或“ / bin / chmod”作为允许的命令,则此操作将失败“ ...