Download 使用Ansible从windows共享下载文件
我在windows共享中有一个文件。我需要使用ansible下载此文件。Download 使用Ansible从windows共享下载文件,download,ansible,Download,Ansible,我在windows共享中有一个文件。我需要使用ansible下载此文件。 剧本 错误输出: "mode": "01777", "msg": "Request failed: <urlopen error [Errno 2] No such file or directory: \"'\\\\\\\\Winserver\\\\Share_Binary\\\\Installer-v6.tar.gz'\">", "owner": "root", "size"
剧本 错误输出:
"mode": "01777",
"msg": "Request failed: <urlopen error [Errno 2] No such file or directory: \"'\\\\\\\\Winserver\\\\Share_Binary\\\\Installer-v6.tar.gz'\">",
"owner": "root",
"size": 4096,
"state": "directory",
"uid": 0,
"url": "file:'\\\\Winserver\\Share_Binary\\Installer-v6.tar.gz'"
“模式”:“01777”,
“msg”:“请求失败:”,
“所有者”:“根”,
“尺寸”:4096,
“状态”:“目录”,
“uid”:0,
“url”:“文件:'\\\Winserver\\Share\u Binary\\Installer-v6.tar.gz”
该文件已存在。当我在系统的文件浏览器中粘贴
\\Winserver\Share\u Binary\Installer-v6.tar.gz
时,我可以看到该文件。请给出建议。不确定get\u url
是否能够做到这一点。请试试这个:
- name: Get file from smb.
command:
smbclient //Winserver/Share_Binary/ <pass> -U <user> -c "get Installer-v6.tar.gz"
creates=/tmp/Installer-v6.tar.gz
-名称:从smb获取文件。
命令:
smbclient//Winserver/Share_Binary/-U-c“get Installer-v6.tar.gz”
创建=/tmp/Installer-v6.tar.gz
当然,您必须首先安装
smbclient
不确定get\u url
是否能够做到这一点。请试试这个:
- name: Get file from smb.
command:
smbclient //Winserver/Share_Binary/ <pass> -U <user> -c "get Installer-v6.tar.gz"
creates=/tmp/Installer-v6.tar.gz
-名称:从smb获取文件。
命令:
smbclient//Winserver/Share_Binary/-U-c“get Installer-v6.tar.gz”
创建=/tmp/Installer-v6.tar.gz
当然,您必须首先安装
smbclient
,这可以通过一个凭证文件和3个Ansible任务来完成
首先,创建一个凭证文件(例如,/home/youruser/smbshare.cred
),其中包含具有装载CIFS共享权限的服务帐户的用户名和密码:
username=your_service_account_name
password=your_service_account_password
确保您的远程ansible用户拥有该文件(如果您使用的是BENG,则为root用户),并且该文件具有0400权限。你可以考虑用AnEngy生成这个证书文件,和/或将来用ANIDES保险箱加密它。
任务1:使用在目标上装载SMB共享
- name: Mount SMB share
mount:
path: /mnt/smbshare
src: '\\\\Winserver\\Share_Binary'
fstype: cifs
opts: 'credentials=/home/youruser/smbshare.cred'
state: mounted
任务2:使用将文件复制到实际需要的任何位置
- name: Copy installer tarball to target
copy:
src: /mnt/smbshare/Installer-v6.tar.gz
dest: /some/local/path/Installer-v6.tar.gz
owner: foo
group: foo
mode: 0640
任务3:使用装载模块卸载SMB共享
- name: Unmount SMB share
mount:
path: /mnt/smbshare
state: unmounted
注意:根据您的环境,您可能需要在任务1中的
选项:
参数中添加更多装载选项(请参阅mount.cifs(8)手册页)。这可以通过一个凭证文件和3个Ansible任务来完成
首先,创建一个凭证文件(例如,/home/youruser/smbshare.cred
),其中包含具有装载CIFS共享权限的服务帐户的用户名和密码:
username=your_service_account_name
password=your_service_account_password
确保您的远程ansible用户拥有该文件(如果您使用的是BENG,则为root用户),并且该文件具有0400权限。你可以考虑用AnEngy生成这个证书文件,和/或将来用ANIDES保险箱加密它。
任务1:使用在目标上装载SMB共享
- name: Mount SMB share
mount:
path: /mnt/smbshare
src: '\\\\Winserver\\Share_Binary'
fstype: cifs
opts: 'credentials=/home/youruser/smbshare.cred'
state: mounted
任务2:使用将文件复制到实际需要的任何位置
- name: Copy installer tarball to target
copy:
src: /mnt/smbshare/Installer-v6.tar.gz
dest: /some/local/path/Installer-v6.tar.gz
owner: foo
group: foo
mode: 0640
任务3:使用装载模块卸载SMB共享
- name: Unmount SMB share
mount:
path: /mnt/smbshare
state: unmounted
注意:根据您的环境,您可能需要在任务1中的
opts:
参数中添加更多装载选项(请参阅mount.cifs(8)手册页)。谢谢您的回答,但我不应该安装smbclient。正在寻找其他解决方法谢谢您的回答,但我不应该安装smbclient。寻找其他解决办法任务1对我不起作用。我得到一个类似“请使用systemd tty ask password代理工具输入密码”的提示,无法在此处输入密码。我忘记将credentials=
添加到opts:参数中。我已经编辑了我的答案。我得到的错误为“msg”:“错误装载/mnt/smbshare:装载错误(112):主机已关闭\n请参阅装载.cifs(8)手册页(例如man mount.cifs)\n”。主机未关闭,我可以通过文件资源管理器手动访问任务1对我不起作用。我得到一个类似“请使用systemd tty ask password代理工具输入密码”的提示,无法在此处输入密码。我忘记将credentials=
添加到opts:参数中。我已经编辑了我的答案。我得到的错误为“msg”:“错误装载/mnt/smbshare:装载错误(112):主机已关闭\n请参阅装载.cifs(8)手册页(例如man mount.cifs)\n”。主机未关闭,我可以通过文件资源管理器手动访问