我有一个使用become在远程主机上获得根访问的ansible剧本
become: yes 我还有一些pre_tasks,它们必须在以前的ansible主机上运行本地命令。
如何使用默认用户(运行ansible-playbook的用户)强制执行此本地任务?
下面是我的剧本(它的目的是以默认用户的身份执行local copy操作,作为预任务):
---
- 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发布于 2019-09-25 11:04:52
将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:
...
... https://stackoverflow.com/questions/58095706
复制相似问题