【问题标题】:Creating a directory on Ubuntu using ansible playbook使用 ansible playbook 在 Ubuntu 上创建目录
【发布时间】:2021-10-26 05:15:17
【问题描述】:

我正在尝试通过 ansible playbook 创建一个 ec2 实例,然后在其上运行一些命令。 ec2 实例已成功创建,并且通过 ssh 连接到其中。现在,当我尝试运行此命令时:

- name: Create scripts directory
  ansible.builtin.file:
    path: /scripts
    state: directory
    mode: '0755'

产生错误:

{"changed": false, "msg": "There was an issue creating /scripts as requested: [Errno 30] Read-only file system: '/scripts'", "path": "/scripts"}

我已将模式指定为 0755,即读写执行权限。那么为什么它给出一个错误,即使对于 0777 也是同样的错误?我是 ansible 和 Ubuntu 的新手。

【问题讨论】:

  • 您的用户无权写入该目录。因此,您只能从该目录读取(读取访问)。
  • 如何为该用户添加写入权限?
  • 您必须使用选项 become 为您的用户授予 root 权限..您的用户必须在组 sudoer.. 看我的回答

标签: amazon-ec2 ansible directory


【解决方案1】:

您必须添加选项成为使用管理员权限(您的用户必须是 sudo er...)

- name: Create scripts directory
  ansible.builtin.file:
    path: /scripts
    state: directory
    mode: '0755'
  become: yes

在这里你在根目录创建一个文件夹,你确定要这样做吗?

要为 sudo 指定密码,请使用 --ask-become-pass(简称 -K)运行 ansible-playbook。如果您使用 become 运行 playbook 并且 playbook 似乎挂起,则很可能它卡在提权提示符处。用 CTRL-c 停止它,然后用 -K 和适当的密码执行 playbook。

【讨论】:

    【解决方案2】:

    您的 Ansible 用户没有在该级别创建目录所需的权限。使用其他用户(错误选项)或确保用户具有 sudo 功能并使用 become:yes 以 sudo 执行命令

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-01
      • 2021-06-04
      • 1970-01-01
      • 2013-10-22
      • 1970-01-01
      • 2020-12-04
      相关资源
      最近更新 更多