#はじめに
Azureの仮想マシンにPowershellDSCを使用しています。
もともとはVnet、VMともにクラシック版を使用していました。
今回は新たにノードサーバー側のみリソースマネージャー版で再構築することになりました。
構築したのは
- クラシック仮想ネットワークにDSCサーバーを配置(既存資産)
- クラシック仮想ネットワークにピアリングしたリソースマネージャー仮想ネットワークを構築(新規)
- リソースマネージャー仮想ネットワークにノードサーバーを配置(新規)
でした。
しかし、WINRMの接続がなかなかうまくいきませんでした。
結果的に使用するポートがクラシックのものと違っており、使用するポートをFW、NSGともに空けていなかったからでした。
次回のために、記録として残しておこうと思います。
#Azureクラシック仮想マシンにPowershell接続
クラシック版Azure仮想マシンでは作成すると最初から5986ポート(WINRM)がFWで許可されています。
またエンドポイントでも5986ポートは許可されています。
なので、仮想マシン作成後、下記コマンドを実行して完了です。
Enable-PSRemoting -Force
Set-Item wsman:\localhost\Client\TrustedHosts -Value * -Force
Set-ExecutionPolicy RemoteSigned
これでリモート接続が信頼されたので
$secPassword = ConvertTo-SecureString $Password -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential($UserName,$secPassword)
$cimSessionOption = New-PSSessionOption -UseSsl -SkipCACheck -SkipCNCheck -SkipRevocationCheck
$cimSession = New-CimSession -SessionOption $cimSessionOption -ComputerName $ComputerName -Credential $credential
を実行すると接続できるはずです。
#Azureリソースマネージャー仮想マシンにPowershell接続
リソースマネージャー版では5986ポートではなく5985ポートがサーバーのFWで許可されています。
注意)私の環境ではVnetのピアリングをしているため、subnetが異なっているので別途5985ポートをFWで許可しています。
クラシックで言うエンドポイントであるNSGでは5985ポートは許可されていないので、5985ポートの許可を行ってください。
5985ポートを許可した後はクラシックとほぼ同じです。
まずはリモート接続の許可
Enable-PSRemoting -Force
Set-Item wsman:\localhost\Client\TrustedHosts -Value * -Force
Set-ExecutionPolicy RemoteSigned
そして、実際に接続してみます。
$secPassword = ConvertTo-SecureString $Password -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential($UserName,$secPassword)
$cimSession = New-CimSession -ComputerName $ComputerName -Credential $credential
これで接続ができると思います。
ここで注意なのですが、 New-CimSession
でクラシックではUseSSL
を使用していましたが、ポートが変わるのでUseSSL
は使用しません。
さらにSession-optionも使用する必要がなくなりました。
#おわり
リソースマネージャー版では初期設定ではpingが許可されていなかったため、Vnetの接続をずっと疑っていたのですが、なんてことはないポートが違っただけというトラップにかなりハマってしまいました。みなさんも気をつけましょう!