无法使用 ansible 复制文件

无法使用 ansible 复制文件

学习 Ansible,我的是 Windows 10 机器。我启用了 Windows 功能,Windows Subsystem for Linux(WSL),然后安装了Ubuntu 应用程序

在此处输入图片描述

然后安装 ansible 作为描述在这里

现在我用touch命令创建了一个简单的文本文件-touch a.txt。

现在我尝试使用 ansible 的复制模块进行复制,如下所示。

ansible -m copy -a "src=a.txt dest=~/a.txt" localhost 

我收到以下错误。

localhost | UNREACHABLE! => {
    "changed": false,
    "msg": "Authentication or permission failure. In some cases, you may have been able to authenticate and did not have permissions on the target directory. Consider changing the remote tmp path in ansible.cfg to a path rooted in \"/tmp\". Failed command was: ( umask 77 && mkdir -p \"` echo /home/vivekubuntu/.ansible/tmp/ansible-tmp-1613225911.9928477-252950072612631 `\" && echo ansible-tmp-1613225911.9928477-252950072612631=\"` echo /home/vivekubuntu/.ansible/tmp/ansible-tmp-1613225911.9928477-252950072612631 `\" ), exited with result 1, stdout output: ansible-tmp-1613225911.9928477-252950072612631=/home/vivekubuntu/.ansible/tmp/ansible-tmp-1613225911.9928477-252950072612631\n",
    "unreachable": true
}

我甚至尝试过 win_copy

ansible -m win_copy -a "src=a.txt dest=~/a.txt" localhost

我尝试了其他各种组合。下面,我将 localhost 替换为 ip 地址。

ansible -m copy -a "src=a.txt dest=~/aa.txt" 192.168.56.1

现在我收到以下警告。

[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match
'all'
[WARNING]: Could not match supplied host pattern, ignoring: 192.168.56.1

不清楚如何在 Windows 机器上启动 ansible。请帮忙。

答案1

看一下这一行:

ansible -m copy -a "src=a.txt dest=~/a.txt" localhost 
  1. 请注意,-i由于缺少库存参数
  2. ,当以列表形式而不是文件形式提供主机时,ansible 期望最后一个主机以字符结尾
  3. 结尾的主持人选组也缺失了

因此正确的调用应该是:

ansible -m copy -a "src=/tmp/a dest=~/a" -i localhost, all

相关内容