使用 ansible playbook 在 Ubuntu 上创建目录

Creating a directory on Ubuntu using ansible playbook

我正在尝试通过 ansible 剧本创建一个 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。

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

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

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

要为 sudo 指定密码,运行 ansible-playbook with --ask-become-pass(简称 -K)。如果您 运行 一个使用 become 的 playbook 并且该 playbook 似乎挂起,很可能它停留在权限升级提示处。使用 CTRL-c 停止它,然后使用 -K 和适当的密码执行剧本。

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

身份执行命令