如何动态覆盖ansible.cfg中的默认变量?

时间:2019-02-25 21:50:03

标签: ansible ansible-2.x

我有一本执行以下任务的剧本,必须将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对我来说不是很清楚。

0 个答案:

没有答案