Ansible - Как выполнять локальные команды с пользователем по умолчанию, а не sudo? - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть ANSIBLE playbook, который использует become для получения root-доступа на удаленных хостах, используя

become: yes   

У меня также есть некоторые pre_tasks , которые должны запускать localкоманды на ответном хосте ранее.

Как заставить эти локальные задачи выполняться с пользователем по умолчанию (пользователь, который запускает ansible-playbook)?

Вот мой playbook (он предназначендля выполнения операции локальное копирование как пользователя по умолчанию в качестве предварительной задачи):

---
- hosts: all
  vars:
    proprietary_files: "/some/files/not/managed/by/vcs"
    filesToWorkOnLater: "config_files"
  pre_tasks:
  - name: "Copy from {{proprietary_files}} to {{filesToWorkOnLater}}"
      local_action: 
         module: copy
         src: "{{proprietary_files}}/" 
         dest: "{{filesToWorkOnLater}}/"

  become: yes   
  roles:
     ...   
...     

В настоящее время я получаю жалобы с моего локального компьютера, например

sudo: a password is required

1 Ответ

0 голосов
/ 25 сентября 2019

Использование command с delegate_to и become: no вместо local_action работает:

---
- hosts: all
  vars:
    proprietary_files: "/some/files/not/managed/by/vcs"
    filesToWorkOnLater: "config_files"
  pre_tasks:
    - name: "Copy from {{proprietary_files}} to {{filesToWorkOnLater}}"
      command: cp -r {{proprietary_files}}/ {{filesToWorkOnLater}}/
      delegate_to: localhost
      become: no

  become: yes   
  roles:
     ...   
...     
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...