Python 将文件从vCenter数据存储复制到VM

Python 将文件从vCenter数据存储复制到VM,python,salt-stack,vsphere,vcenter,pyvmomi,Python,Salt Stack,Vsphere,Vcenter,Pyvmomi,我使用salt stack和pyvmomi模块与vcenter通信并创建VM。在这个新创建的虚拟机上,我想从vcenter数据存储中复制文件(大约1 GB)。InitiateFileTransferToGuest可用于将文件上载到VM,但我们如何将文件从数据存储复制到VM?我能想到的最黑客的方法是: 将1GB文件另存为.iso{使用MagicIso或的内置工具 linux} 现在将文件放在数据存储中 现在,在创建vm时,需要将cdrom设置为指向文件数据,而不是空字符串 您可以编辑vmx文件或提

我使用salt stack和pyvmomi模块与vcenter通信并创建VM。在这个新创建的虚拟机上,我想从vcenter数据存储中复制文件(大约1 GB)。InitiateFileTransferToGuest可用于将文件上载到VM,但我们如何将文件从数据存储复制到VM?

我能想到的最黑客的方法是:

  • 将1GB文件另存为.iso{使用MagicIso或的内置工具 linux}
  • 现在将文件放在数据存储中
  • 现在,在创建vm时,需要将cdrom设置为指向文件数据,而不是空字符串
  • 您可以编辑vmx文件或提供vmx选项 在创造自己的同时
  • 打开guest电源后,根据guest的不同,您可以添加一个批处理/shell以复制到其磁盘
  • 如果需要,可以使用Invoke-VMScript-powercli cmdlet为您执行操作5
  • 干杯,
    zXi

    我能想到的最黑客的方式是:

  • 将1GB文件另存为.iso{使用MagicIso或的内置工具 linux}
  • 现在将文件放在数据存储中
  • 现在,在创建vm时,需要将cdrom设置为指向文件数据,而不是空字符串
  • 您可以编辑vmx文件或提供vmx选项 在创造自己的同时
  • 打开guest电源后,根据guest的不同,您可以添加一个批处理/shell以复制到其磁盘
  • 如果需要,可以使用Invoke-VMScript-powercli cmdlet为您执行操作5
  • 干杯,
    zXi

    运行rsync怎么样

    • ESXi主机:启用SSH
    • 对SSH密钥的一些理解
    如果这是一次性文件传输,您可能会跳过第一步

    为vCenter设置公共SSH密钥。 ssh-keygen位于
    /usr/lib/vmware/openssh/bin
    ssh keygen在
    ~/.ssh
    中生成2个文件:
    id\u rsa
    id\u rsa.pub

    ssh-keygen -f ~/.ssh/id_rsa -q -P ""
    
    在远程主机上,存储公钥 如果使用ESXi 5或更低版本,请在
    ~/.ssh/authorized_keys
    中放置
    id\u rsa.pub
    。 如果使用ESXi 5.5或更高版本的公钥位于其他地方,则将
    id\u rsa.pub
    放入
    /etc/ssh/keys-/authorized\u keys

    请注意,您可以在此文件中存储多个密钥

    要允许根用户访问,请在
    /etc/ssh/sshd_config
    文件中将
    permitrotlogin no
    更改为
    permitrotlogin yes
    。 要禁用密码登录,请确保将
    ChallengeResponseAuthentication
    PasswordAuthentication
    设置为
    no

    重新启动SSH服务 ESXi-
    /etc/init.d/SSH重新启动
    ESX-
    服务sshd重新加载

    现在我们已经对身份验证进行了排序,现在我们可以通过加密通道将文件复制到目的地。 了解ssh密钥的工作方式将使远程执行任务更加容易,并优化部署和管理

    Rsync rsync的基本语法如下:rsync options source destination

    SSH上的Rsync

    一些选项-虚拟机作为本地

    使用SSH将文件从远程服务器(ESXi)复制到本地服务器(VM)

    rsync-avzhe ssh root@[vCenter]:/source\u dir\u to\u copy//dest\u dir\u location/

    使用SSH将文件从本地服务器(VM)复制到远程服务器(ESXi)

    rsync-avzhe ssh/source\u dest\u to\u copy/root@[vcentreIP]:/dest\u dir\u location/

    某些选项-ESXi作为本地-ESXi未将rsync作为默认安装

    使用SSH将文件从远程服务器(VM)复制到本地服务器(ESXi)

    rsync-avzhe ssh root@[VMIP]:/source\u dir\u to\u copy//dest\u dir\u location/

    使用SSH将文件从本地服务器(ESXi)复制到远程服务器(VM)

    rsync-avzhe ssh/source_dest_to_copy/root@[VMIP]:/dest_dir_location/

    另一种方式可能是你的选择

    使用上述相同的逻辑和方法。您可以在两台机器之间生成一组密钥,并使用代理启动rsync命令

    使用SSH将文件从VM复制到ESXi

    rsync-avzhe ssh root@[VMIP]:/source\u dir\u to\u copy/root@[vcenterip]:/dest\u dir\u location/

    使用SSH将文件从ESXi复制到VM


    rsync-avzhe ssh root@[vCenter]:/source\u dir\u to\u copy/root@[VMIP]:/dest\u dir\u location/

    运行rsync怎么样

    • ESXi主机:启用SSH
    • 对SSH密钥的一些理解
    如果这是一次性文件传输,您可能会跳过第一步

    为vCenter设置公共SSH密钥。 ssh-keygen位于
    /usr/lib/vmware/openssh/bin
    ssh keygen在
    ~/.ssh
    中生成2个文件:
    id\u rsa
    id\u rsa.pub

    ssh-keygen -f ~/.ssh/id_rsa -q -P ""
    
    在远程主机上,存储公钥 如果使用ESXi 5或更低版本,请在
    ~/.ssh/authorized_keys
    中放置
    id\u rsa.pub
    。 如果使用ESXi 5.5或更高版本的公钥位于其他地方,则将
    id\u rsa.pub
    放入
    /etc/ssh/keys-/authorized\u keys

    请注意,您可以在此文件中存储多个密钥

    要允许根用户访问,请在
    /etc/ssh/sshd_config
    文件中将
    permitrotlogin no
    更改为
    permitrotlogin yes
    。 要禁用密码登录,请确保将
    ChallengeResponseAuthentication
    PasswordAuthentication
    设置为
    no

    重新启动SSH服务 ESXi-
    /etc/init.d/SSH重新启动
    ESX-
    服务sshd重新加载

    现在我们已经对身份验证进行了排序,现在我们可以通过加密通道将文件复制到目的地。 了解ssh密钥的工作方式将使远程执行任务更加容易,并优化部署和管理

    Rsync rsync的基本语法如下:rsync options source destination

    SSH上的Rsync

    一些选项-虚拟机作为本地

    使用将文件从远程服务器(ESXi)复制到本地服务器(VM)