powershell de azure

20
PowerShell De Azure コココココココココココココ TECHNO OFFICER Atsushi Kojima

Upload: atsushi-kojima

Post on 24-May-2015

811 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: PowerShell de Azure

PowerShell De Azureコマンドラインで操作しよう

TECHNO OFFICER Atsushi Kojima

Page 2: PowerShell de Azure

あるときはさすらいのハードコアお父さん。

あるときは釣り師。

あるときはゴッドハンド整体師(虚)。

たまにクラウドコンサルやってます。

Page 3: PowerShell de Azure

Agenda1. PowerShell アレコレ2. セットアップ方法3. Azure で遊ぶ

Page 4: PowerShell de Azure

PowerShellアレコレ

PowerShellアレコレ

Page 5: PowerShell de Azure

PowerShell の位置づけ• MS-DOS時代から使われてきたコマンドスクリプト。豊富なコマンド群があり現在でも実用性が高く多くのシステムで利用されている。

バッチファイル( .bat)

• VBのスクリプト版。と言っても Visualではない。 VBライクに使えるので気軽に利用できる。 VBAはまた別。VBScript( .vbs)

• JavaScriptをマイクロソフト独自の仕様によって拡張することで汎用性を増した。最近流行っている .js的なスクリプトではない。Jscript( .js)

• 今回のメインディッシュ。 .NET Frameworkが利用できることからサーバー管理だけでなくアプリケーションまで動かせる。また多くの MS製品が PowerShell用のコマンドレットを持っているので複雑なスクリプトも実装が可能。

PowerShell( .ps1)

Page 6: PowerShell de Azure

実行環境

PowerShell スクリプト

PowerShell エンジンCOM .NET Framework

Page 7: PowerShell de Azure

PowerShell バージョンと対応 OSOS 1.0 2.0 3.0

Windows Server 2003 ○SP1 ○SP2 ×

Windows Server 2003 R2 ○SP1 ○SP2 ×

Windows Server 2008 ○SP1 ○SP2

Windows Server 2008 R2 ◎ ○SP1

Windows Server 2012 ◎

Windows XP ○SP2 ○SP3 ×

Windows Vista ○ ○SP1 ×

Windows 7 ◎ ○SP1

Windows 8 ◎

Page 8: PowerShell de Azure

なにはともあれ使ってみる。

見た目はコマンドプロンプトと似てる

Page 9: PowerShell de Azure

覚えておきたいコマンドGet-Help :ヘルプ表示Set-ExecutionPolicy Unrestricted :スクリプト実行時のすべての制約を取り除くGet-ExecutionPolicy :実行ポリシーの確認Get-Service :すべてのサービスリスト表示ConvertTo-HTML :出力結果をHTMLへ変換するExport-CSV :出力結果を CSVにするSelect-Object  :出力時にプロパティを指定するGet-EventLog :イベントログを調べるGet-Process  :すべてのプロセスリスト表示Stop-Process :プロセスの終了

Page 10: PowerShell de Azure

GUI で快適操作コマンドラインで PowerShell を利用する場合、デバッグやコードエディタがないため非常に効率が悪いです。そこでコードエディタ、実行環境、デバッグ環境が統合された PowerShell ISE を使うことをお勧めします。

コード保管やデバッグ、ステップ実行などが可能。また、マウスオーバーでヘルプ表示されます。

Page 11: PowerShell de Azure

セットアップ方法

セットアップ方法

Page 12: PowerShell de Azure

PowerShell 実行環境のセットアップ事前準備・ Web Platform Installer ( WebPI )※ 基本的には WebPI からすべてインストール可能。

Windows PowerShell 3.0 (と思ったけど、 4.0 が出てた!)Windows Azure PowerShell

Windows Azure SDK は Windows Azure ポータルサイトからでもダウンロード可能。http://www.windowsazure.com/ja-jp/downloads/

Page 13: PowerShell de Azure

Azure 用セットアップPS C:\> Get-Module –ListAvailable   提供されている Azure用モジュールを確認するModuleType Name ExportedCommands---------- ---- ----------------Binary Azure {Disable-AzureServiceProjectRemoteDesktop, Enable-AzureMemcacheRole, ...

PS C:\> Import-Module Azure      Azure用モジュールをインポートするPS C:\> Get-AzurePublishSettingsFile   発行プロファイルをダウンロードする

ブラウザから発行プロファイルのダウンロードできます。適当な場所に保存してください。

Page 14: PowerShell de Azure

Azure 用セットアップPS C:\> Import-AzurePublishSettingsFile "C:\Users\user\Desktop\7-11-2013-credentials.publishsettings“ダウンロードした発行プロファイルをインポートする

PS C:\> Get-AzureSubscription    Azureが操作できるか確認する

PS C:\> Select-AzureSubscription 使用するサブスクリプション名

サブスクリプション情報が表示されれば問題なし。

Page 15: PowerShell de Azure

Azureで遊ぶ

Azureで遊ぶ

Page 16: PowerShell de Azure

WEB サイトの新規作成をやってみるPS C:\> New-AzureWebsite fukuazu -Location "East Asia"

NumberOfWorkers : 1DefaultDocuments : {Default.htm, Default.html, Default.asp, index.htm...}NetFrameworkVersion : v4.0PhpVersion : 5.3RequestTracingEnabled : FalseHttpLoggingEnabled : FalseDetailedErrorLoggingEnabled : FalsePublishingUsername : $fukuazuPublishingPassword : eutex71HuWxd4sj7Lu13n09Cuw3XiKSlkD67vl6w1l5csFkq45uKx0ns8xlDAppSettings : {}Metadata : {}ConnectionStrings : {}HandlerMappings : Name : fukuazuState : HostNames : {fukuazu.azurewebsites.net}WebSpace : eastasiawebspaceSelfLink : RepositorySiteName : Owner : UsageState : NormalEnabled : AdminEnabled : EnabledHostNames : SiteProperties : AvailabilityState : NormalSSLCertificates : SiteMode : HostNameSslStates : AzureDriveTraceEnabled : AzureDriveTraceLevel : ErrorAzureTableTraceEnabled : AzureTableTraceLevel : Error

Page 17: PowerShell de Azure

WEB サイトのログをリアルタイムで見るPS C:\> Get-AzureWebsiteLog -tail –Name fukuazu

tail -f みたいな感じで使えます。

Page 18: PowerShell de Azure

EndPoint を追加してみる

PS C:\> $vm = Get-AzureVM -ServiceName jazvm01 -Name jazvm01PS C:\> $acl = New-AzureAclConfigPS C:\> Set-AzureAclConfig -AddRule Permit -RemoteSubnet "1.115.192.184/32" -Order 1 -ACL $acl -Description "SSH“RuleId : 0Order : 1Action : PermitRemoteSubnet : 1.115.192.184/32Description : SSH

PS C:\> $vm | Set-AzureEndpoint -Name SSH -Protocol tcp -LocalPort 22 -PublicPort 22 -ACL $acl | Update-AzureVMOperationDescription OperationId OperationStatus -------------------- ----------- --------------- Update-AzureVM 99210143-e36c-4838-bc10-01837b5292a8 Succeeded

EndPoint とは仮想マシンが外部からの接続を受け入れるためのポートフォワーディングで、公開ポートと内部ポートを接続することでポート間の転送を実現します。ただ、実際は IP アドレスベースでの細かいアクセス制御をしたいわけで、それは今のところ Management ポータルからできません。実現するには ACL と呼ばれる制御リストを作成し、それを EndPoint に読み込ませるようにします。

以下は、 jazvm01 という仮想マシンに、 1.115.192.184/32 からの SSH を許可するという設定です。

Page 19: PowerShell de Azure

PS C:\> Get-AzureEndpoint -VM $vmLBSetName : LocalPort : 22Name : SSHPort : 22Protocol : tcpVip : 168.63.200.224ProbePath : ProbePort : 0ProbeProtocol : ProbeIntervalInSeconds : ProbeTimeoutInSeconds : EnableDirectServerReturn : Acl : {SSH}

PS C:\> Get-AzureAclConfig -VM $vm -EndpointName SSHRuleId : 0Order : 1Action : PermitRemoteSubnet : 1.115.192.184/32Description : SSH

Page 20: PowerShell de Azure

まとめPowerShell を利用することで、 Azure 操作を自動化することが可能です。また、 EndPoint 設定のように Management ポータルから設定できないものも、 PowerShell からなら設定が可能な場合があります。(その逆もありけどw)

ぜひ PowerShell での Azure 操作やってみてください。