2016-10-04 56 views
1

我使用salt-stack和pyvmomi模塊與vcenter進行通信並創建虛擬機。在這個新創建的虛擬機上,我想從vcenter Datastore複製文件(大約1 GB)。可以使用InitiateFileTransferToGuest將文件上傳到VM,但我們如何才能將文件從數據存儲複製到VM?將文件從Vcentre數據存儲複製到VM

回答

0

我能想到的hackiest方法是:

  1. 保存1GB的文件.ISO {要麼使用MagicIso或 的linux的內置工具}。
  2. 現在將文件放置在數據存儲中。
  3. 現在,在創建虛擬機時,需要將cdrom設置爲指向文件數據而不是空字符串。
  4. 您可以編輯VMX文件或提供VMX選項 同時創造本身
ide1:0.deviceType = "cdrom-image" 
    ide1:0.fileName = "/vmfs/volumes/5034a864-xxxxxx/data.iso" 
    ide1:0.present = "TRUE" 
  • 上的來賓,這取決於電後guest,你可以添加一個批處理/ shell來複制到它的磁盤。
  • 如果需要,您可以使用Invoke-VMScript powercli cmdlet爲您執行操作5。
  • 乾杯, ZXI

    +0

    ,我腦子裏想的(想避免這種情況進程)除此之外,我們還可以使用salt-get-file將文件從主文件複製到小文件 –

    +0

    pyvmomi salt只允許VC對象支持的操作。 InitiateFileTransferToGuest是pyvmomi調用來在工具運行時將文件傳輸給guest虛擬機。但是,該API需要從ESXi服務器觸發。 您可以嘗試使用NFS數據存儲,並在運行 – zXi

    +0

    的工具上添加掛載{{mount.mounted}}到guest虛擬機。請分享有關NFS的更多詳細信息並在虛擬機上掛載數據點。謝謝 –

    0

    怎麼樣運行的rsync

    • ESXi主機:啓動SSH
    • SSH密鑰

    的一些理解。如果這是一個一次性的文件轉移你可能可以跳過第一步。

    爲vCentre設置公共SSH密鑰。 SSH-密鑰生成在/usr/lib/vmware/openssh/bin SSH-密鑰生成發現生成2個文件中~/.sshid_rsaid_rsa.pub

    ssh-keygen -f ~/.ssh/id_rsa -q -P "" 
    

    在遠程主機,存儲所述公鑰 如果~/.ssh/authorized_keys使用ESXi的5或以下的地方id_rsa.pub。 如果使用的是ESXi 5.5或向上公共密鑰位於其它地方所以把id_rsa.pub/etc/ssh/keys-<username>/authorized_keys

    正如你可以存儲在該文件中不止一個鍵一個音符。

    要允許root訪問,請在/etc/ssh/sshd_config文件中將PermitRootLogin no更改爲PermitRootLogin yes。 要禁用密碼登錄,請確保ChallengeResponseAuthenticationPasswordAuthentication設置爲no

    重新啓動SSH服務 的ESXi - /etc/init.d/SSH restart ESX - service sshd reload

    現在,我們有認證分類,我們現在可以通過一個加密通道,我們的目的地複製文件。 瞭解ssh密鑰的工作方式將使遠程執行任務變得更加簡單,並簡化部署和管理。

    的Rsync 的rsync的基本語法是通過SSH如下rsync的選項源目標

    的Rsync

    某些選項 - VM當地

    複製從遠程服務器(ESXi的)到一個文件本地服務器(VM)與SSH

    rsync -avzhe ssh [email protected][vcentreIP]:/source_dir_to_copy/ /dest_dir_location/

    複製一個文件f ROM本地服務器(VM)到遠程服務器(ESXi的)與SSH

    rsync -avzhe ssh /source_dest_to_copy/ [email protected][vcentreIP]:/dest_dir_location/

    某些選項 - ESXi的地方 - 的ESXi沒有得到rsync的安裝爲默認值。

    複製從遠程服務器(VM)到本地服務器(ESXi的)文件與SSH

    rsync -avzhe ssh [email protected][VMIP]:/source_dir_to_copy/ /dest_dir_location/

    複製從本地服務器(ESXi的)到遠程服務器(VM)的文件用SSH

    rsync -avzhe ssh /source_dest_to_copy/ [email protected][VMIP]:/dest_dir_location/

    另一種方式可能是適合你的選擇。

    使用上述相同的邏輯和方法。您可以在兩臺機器之間生成一組密鑰並使用代理來啓動rsync命令。

    複製從虛擬機文件與SSH ESXi的

    rsync -avzhe ssh [email protected][VMIP]:/source_dir_to_copy/ [email protected][vCentreIP]:/dest_dir_location/

    複製從ESXi的文件到VM與SSH

    rsync -avzhe ssh [email protected][vcentreIP]:/source_dir_to_copy/ [email protected][VMIP]:/dest_dir_location/

    相關問題