私は、salt-stack と pyvmomi モジュールを使用して vCenter と通信し、VM を作成します。この新しく作成された VM で、vcenter Datastore からファイル (約 1 GB) をコピーしたいと考えています。InitiateFileTransferToGuest を使用してファイルを VM にアップロードできますが、データストアから vm にファイルをコピーするにはどうすればよいでしょうか?
2 に答える
私が考えることができる最もハックな方法は次のとおりです。
- 1GB のファイルを .iso {MagicIso または Linux の組み込みツールを使用} として保存します。
- ファイルをデータストアに配置します。
- ここで、vm を作成するときに、空の文字列ではなくファイル データを指すように cdrom を設定する必要があります。
- vmx ファイルを編集するか、それ自体を作成するときに vmx オプションを指定できます。
ide1:0.deviceType = "cdrom-image" ide1:0.fileName = "/vmfs/volumes/5034a864-xxxxxx/data.iso" ide1:0.present = "TRUE"
- ゲストの電源を入れた後、ゲストによっては、ディスクにコピーするバッチ/シェルを追加できます。
- 必要に応じて、Invoke-VMScript powercli コマンドレットを使用して操作 5 を実行できます。
乾杯、zXi
rsync の実行について
- ESXi ホスト: SSH を有効にする
- SSHキーについてのある程度の理解
これが 1 回限りのファイル転送である場合は、おそらく最初のステップを省略できます。
vCentre の公開 SSH キーをセットアップします。ssh-keygen は ssh-keygen にあり、次の場所に/usr/lib/vmware/openssh/bin
2 つのファイルが生成され~/.ssh
ます。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 アクセスを許可するには、ファイル内を に変更PermitRootLogin no
します。パスワード ログインを無効にするには、とが に設定されていることを確認します。PermitRootLogin yes
/etc/ssh/sshd_config
ChallengeResponseAuthentication
PasswordAuthentication
no
SSHサービスの再起動 ESXi - /etc/init.d/SSH restart
ESX -service sshd reload
認証がソートされたので、暗号化されたチャネルを介して宛先にファイルをコピーできます。ssh キーがどのように機能するかを理解すると、リモート実行タスクがはるかに簡単になり、展開と管理が合理化されます。
Rsync rsync の基本的な構文は次のとおりです。 rsync オプション ソース 宛先
SSH経由の再同期
いくつかのオプション - ローカルとしての VM
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/
別の方法がおそらくあなたのためのオプションです。
上記と同じロジックと方法を使用します。2 台のマシン間で一連のキーを生成し、エージェントを使用して rsync コマンドを開始できます。
SSH を使用して VM から ESXi にファイルをコピーする
rsync -avzhe ssh root@[VMIP]:/source_dir_to_copy/ root@[vCentreIP]:/dest_dir_location/
SSH を使用して ESXi から VM にファイルをコピーする
rsync -avzhe ssh root@[vcentreIP]:/source_dir_to_copy/ root@[VMIP]:/dest_dir_location/