【发布时间】:2017-02-12 15:26:03
【问题描述】:
我使用 salt-stack 和 pyvmomi 模块与 vCenter 通信并创建 VM。在这个新创建的虚拟机上,我想从 vCenter 数据存储复制文件(大约 1 GB)。 InitiateFileTransferToGuest 可用于将文件上传到虚拟机,但我们如何将文件从数据存储复制到虚拟机?
【问题讨论】:
标签: python salt-stack vsphere vcenter pyvmomi
我使用 salt-stack 和 pyvmomi 模块与 vCenter 通信并创建 VM。在这个新创建的虚拟机上,我想从 vCenter 数据存储复制文件(大约 1 GB)。 InitiateFileTransferToGuest 可用于将文件上传到虚拟机,但我们如何将文件从数据存储复制到虚拟机?
【问题讨论】:
标签: python salt-stack vsphere vcenter pyvmomi
我能想到的最骇人听闻的方法是:
ide1:0.deviceType = "cdrom-image" ide1:0.fileName = "/vmfs/volumes/5034a864-xxxxxx/data.iso" ide1:0.present = "TRUE"
干杯, zXi
【讨论】:
运行 rsync 怎么样
如果这是一次性文件传输,您可能会跳过第一步。
为 vCentre 设置公共 SSH 密钥。
ssh-keygen 位于/usr/lib/vmware/openssh/bin
ssh-keygen在~/.ssh中生成2个文件:id_rsa和id_rsa.pub
ssh-keygen -f ~/.ssh/id_rsa -q -P ""
在远程主机上,存储公钥
如果使用 ESXi 5 或更低版本,请将 id_rsa.pub 放入 ~/.ssh/authorized_keys。
如果使用 ESXi 5.5 或更高版本的公钥位于其他位置,请将 id_rsa.pub 放入 /etc/ssh/keys-<username>/authorized_keys
作为注释,您可以在此文件中存储多个密钥。
要允许 root 访问,请将 /etc/ssh/sshd_config 文件中的 PermitRootLogin no 更改为 PermitRootLogin yes。
要禁用密码登录,请确保将ChallengeResponseAuthentication 和PasswordAuthentication 设置为no。
重启SSH服务
ESXi - /etc/init.d/SSH restart
ESX - service sshd reload
现在我们已经对身份验证进行了排序,我们现在可以通过加密通道将文件复制到我们的目的地。 了解 ssh 密钥的工作原理将使您的远程执行任务更加轻松,并简化部署和管理。
同步 rsync 的基本语法如下 rsync options source destination
通过 SSH 进行 Rsync
一些选项 - 虚拟机作为本地
使用 SSH 将文件从远程服务器 (ESXi) 复制到本地服务器 (VM)
rsync -avzhe ssh root@[vcentreIP]:/source_dir_to_copy/ /dest_dir_location/
使用 SSH 将文件从本地服务器 (VM) 复制到远程服务器 (ESXi)
rsync -avzhe ssh /source_dest_to_copy/ root@[vcentreIP]:/dest_dir_location/
一些选项 - ESXi 作为本地 - ESXi 默认没有安装 rsync。
使用 SSH 将文件从远程服务器 (VM) 复制到本地服务器 (ESXi)
rsync -avzhe ssh root@[VMIP]:/source_dir_to_copy/ /dest_dir_location/
使用 SSH 将文件从本地服务器 (ESXi) 复制到远程服务器 (VM)
rsync -avzhe ssh /source_dest_to_copy/ root@[VMIP]:/dest_dir_location/
另一种方式可能是您的选择。
使用与上述相同的逻辑和方法。您可以在两台机器之间生成一组密钥并使用代理启动 rsync 命令。
使用 SSH 将文件从虚拟机复制到 ESXi
rsync -avzhe ssh root@[VMIP]:/source_dir_to_copy/ root@[vCentreIP]:/dest_dir_location/
使用 SSH 将文件从 ESXi 复制到虚拟机
rsync -avzhe ssh root@[vcentreIP]:/source_dir_to_copy/ root@[VMIP]:/dest_dir_location/
【讨论】: