我有一本执行以下任务的剧本,必须将2 Gb文件从本地复制到远程服务器并提取文件:
- name: Copy archived file to target server and extract
unarchive:
src: /path_to_source_dir/file.tar.gz
dest: /path_to_dest_dir
此任务失败是因为ansible将文件复制到目标服务器上的 / home 挂载点,并且那里没有足够的空间:
sftp> put /path_to_source_dir/file.tar.gz /home/my_user_name/.ansible/tmp/ansible-tmp-1551129648.53-14181330218552/source
scp: /home/my_user_name/.ansible/tmp/ansible-tmp-1551129648.53-14181330218552/source: No space left on device
之所以这样做是因为 ansible.cfg 具有默认参数:
remote_tmp = ~/.ansible/tmp
如何从剧本中覆盖此参数(如果可能),并使其能够将文件复制到任务中指定的同一目标目录中?就像这样:
remote_tmp = /path_to_dest_dir/.ansible/tmp
对于不同的目标服务器,目标路径每次都会不同!
清洁 / home 对我来说不是一种选择。 不幸的是,答案here对我来说不是很清楚。