Создание каталога в Ubuntu с помощью ansible playbook

#amazon-ec2 #ansible #directory

Вопрос:

Я пытаюсь создать экземпляр ec2 с помощью ansible playbook, а затем выполнить на нем несколько команд. Экземпляр 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 в целом.

Комментарии:

1. у вашего пользователя нет доступа для записи в этот каталог. Таким образом, вы можете читать (Доступ для чтения) только из этого каталога.

2. Как добавить доступ для записи для этого пользователя?

3. вы должны использовать опцию стать, чтобы предоставить корневое право своим пользователям.. ваш пользователь должен быть в группе sudoer.. смотрите мой ответ

Ответ №1:

вы должны добавить возможность использовать привилегию администратора (ваш пользователь должен быть судо…)

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

здесь вы создаете папку на корневом уровне, вы уверены, что сделаете это?

Чтобы указать пароль для sudo, запустите ansible-playbook с помощью —ask-become-pass (для краткости-K). Если вы запускаете playbook с использованием become, и он, похоже, зависает, скорее всего, он застрял в приглашении повышения привилегий. Остановите его с помощью CTRL-c, затем запустите playbook с помощью-K и соответствующего пароля.

Ответ №2:

У вашего пользователя Ansible нет необходимых привилегий для создания каталога на этом уровне. Либо используйте другого пользователя (плохой вариант), либо убедитесь, что у пользователя есть возможности sudo, и используйте become: да, чтобы выполнить команду как sudo