web-dev-qa-db-ja.com

Azure仮想マシンでインストール後のコマンドを自動化して実行するにはどうすればよいですか?

Azureホストをデプロイし、ロードされたら、事前定義されたスクリプトに従って構成する必要があります。

Azure VMインスタンスがデプロイされたら...プログラムで(PowerShell、C#、またはその他の手段を介して)変更する方法に関する例、ガイダンス、またはチュートリアルはありますか?

これまでのところ、 コマンドライン展開コマンド を実行しましたが、展開後のインストールコマンドをアップロードまたは起動する方法がわかりません。

1

どこで行き詰まったのか、具体的に何を達成しようとしているのかは完全にはわかりませんが、とにかく試してみます...

リモートデスクトップ

キックのためだけに、VMへのリモートインから始めましょう。 Azureポータルを使用してVMをスピンアップしました。ポータルはユーザー名とパスワードの指定を要求します。明らかに、リモートインする最も簡単な方法は、後に[接続]ボタンを使用することです。 VMのインスタンスの選択:

enter image description here

そこから、資格情報を入力し、VMにログインして、PowerShellを開くことができます。

それはそれを処理する悪い方法ですが、それは最も簡単です。

PowerShellリモーティング

リモートPowerShellセッションの開始は少し速く、GUIが少なくて済みます。簡単なワンライナーについては、これを試してください:

Enter-PSSession -ConnectionUri (Get-AzureWinRMUri) -SessionOption (New-PSSessionOption -SkipCACheck) -Credential (Get-Credential)

サービス名(私の場合はrtannerf)と資格情報の入力を求められます。自己署名証明書をインポートするのではなく、無視することを選択しました。

Invoke-Commandを使用することもできます。

 Invoke-Command –ConnectionUri $uri –Credential $cred –ScriptBlock { "do u liek mah hat!?" | Out-File C:\hello.txt }

これについての詳細 ここ 。これを拡張し、PowerShellを使用して、VMを展開し、展開が完了したらVMに対してスクリプトを実行することができます。 Azure Managementコマンドレットリファレンスページ を確認することをお勧めします。

このアプローチは私には少し不格好に思えますが、いくつかのVMを開始する必要がある場合は、うまくいく可能性があります。

イメージを介したデプロイ

Invoke-Commandに適しているよりも重いタッチが必要な場合は、イメージの展開を検討することをお勧めします。短いバージョンでは、他のWindowsイメージとほぼ同じ方法でイメージを準備し、Azureのストレージアカウントにアップロードし、管理コンソールを使用してVHDをイメージに追加します。短いガイドがあります ここ

これがあなたの問題にアプローチしたい方法になるように私には聞こえます。起動スクリプトなどを使用して、マシンを目的の状態にすることもできますが、追跡に切り込み、必要に応じて正確に構成されたイメージを展開する方がよいでしょう。

3
Tanner Faulkner

VMをデプロイするときに、カスタムデータを指定できます:プロビジョニング中にVM)に挿入される最大64Kのデータ(APIの詳細 ここ<CustomData>要素でbase-64エンコード形式のデータを指定します。このデータは、VMの次の場所に表示されます。

  • %SYSTEMDRIVE%\AzureData\CustomData.bin(Windows)
  • /var/lib/waagent/CustomData(Linux)

これは現在、REST APIから直接利用できますが、間もなくクロスプラットフォームCLIからも利用できるようになります。この機能のプルリクエストを確認できます ここ

2
David Makogon

別の方法として、 IaaS Management Studio を使用すると、コマンドラインが生成されるため、PowerShell経由でワンクリックで接続できます。 (そしてそのためのコマンドラインを生成します)商用ですが、おそらく無料トライアルで十分です。

0
Nicolas Dorier