Каталог назначения (/ etc) не доступен для записи текущему пользователю на ansible

Есть ли у вас требование использовать find ? Для подобных вещей я считаю циклы более подходящими:

$ cd /home/user/Pictures/Vacation/Italy
$ for directory in *; do \
    cd "$directory" && \
    for file in *front*; do \
        cp --force "$file" fanart.jpg; \
    done; \
    cd /home/user/Pictures/Vacation/Italy; \
  done

По сути, это просто проходит через подкаталоги «Италия» и для каждого из них копирует файлы с «Front» в их имени в файл с именем «fanart.jpg» "(перезапись, потому что имя файла назначения является постоянным.)

3
28.02.2017, 09:17
2 ответа

вы должны настроить admin как remote_user , а не стать_user . Параметр стать_пользователем устанавливает, для какого пользователя вы должны su выполнять определенную задачу. Другими словами, ваш playbook должен выглядеть так:

---
- hosts: somehosts
  remote_user: admin
  roles:
    ....

#tasks file
---
# tasks file for test
- name: Change dns
  become: yes
   replace:
     dest: /etc/resolv.conf
     regexp: '192.168.1.24'
     replace: '8.8.8.8'

Таким образом, пользователь admin будет использоваться для установления сеанса ssh, но для задачи Change dns будет использоваться sudo .

Кроме того, если admin требует пароль для sudo, вам нужно будет запустить свой playbook следующим образом:

ansible-playbook -i mn test.yml -K

Переключатель -K запросит пароль sudo для admin .

8
27.01.2020, 21:15

Если у вас есть доступ sudo для изменения каталога назначения, вы можете использовать ниже var

доступный _пользователь :имя пользователя

доступный _ssh _пароль :пароль

стать :да

стать _методом :sudo

доступный _становится _пароль :пароль sudo

1
27.01.2020, 21:15

Теги

Похожие вопросы