【发布时间】:2017-02-02 20:12:42
【问题描述】:
我需要在远程服务器上安装二进制文件。以下是我正在执行的任务列表。
- 复制/scp 二进制文件到远程服务器
- 以静默模式运行安装程序
步骤#1 是将二进制文件复制到/tmp,在远程主机上/tmp 的空间非常少,一旦/tmp 已满,scp 就会失败。我知道默认情况下,ansible 脚本/文件将被复制到/tmp 目录,一旦活动完成,它将被删除。由于/tmp 非常低,我需要使用用户目录来复制二进制文件。
下面是ansible.cfg:
remote_user = testaccount
host_key_checking = False
scp_if_ssh=True
remote_tmp = $HOME/.ansible/tmp
下面是剧本:
- name: deploy binaries
hosts: test
strategy: free
become_method: 'sudo'
tasks:
- name: transfer
copy: src=./files/weblogic.jar dest=$HOME mode=0777
register: transfer
- debug: var=transfer.stdout
剧本执行:
ansible-playbook --inventory="hosts" --ask-pass --ask-become-pass --extra-vars="ansible_ssh_user=<unixaccount>" copybinaries.yml
即使使用上述配置,二进制文件也不会复制到用户主目录,我确保有$HOME/.ansible/tmp 目录,甚至像/home/testaccount/.ansbile/tmp 这样的硬编码。
ansible.cfg 中是否需要覆盖任何其他配置?
【问题讨论】:
-
我仍然看不到您实际在哪里使用
become,也看不到您成为了哪个用户。除此之外,remote_user = testaccount和ansible_ssh_user=<unixaccount>可能是矛盾的。至少他们在问题上令人困惑。
标签: ansible