PowerShell de Azure

1,332 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,332
On SlideShare
0
From Embeds
0
Number of Embeds
32
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

PowerShell de Azure

  1. 1. PowerShell De Azure コマンドラインで操作しよう TECHNO OFFICER Atsushi Kojima
  2. 2. あるときは さすらいのハードコアお父さ ん。 あるときは 釣り師。 あるときは ゴッドハンド整体師(虚)。 たまにクラウドコンサルやって ます。
  3. 3. Agenda 1. PowerShellアレコレ 2. セットアップ方法 3. Azureで遊ぶ
  4. 4. PowerShellアレコレ PowerShellアレコレ
  5. 5. PowerShellの位置づけ • MS-DOS時代から使われてきたコマンドスクリプト。豊富なコマンド群があり現在でも実 用性が高く多くのシステムで利用されている。 バッチファ イル(.bat) • VBのスクリプト版。と言ってもVisualではない。VBライクに使えるので気軽に利用でき る。VBAはまた別。 VBScript (.vbs) • JavaScriptをマイクロソフト独自の仕様によって拡張することで汎用性を増した。最近 流行っている.js的なスクリプトではない。Jscript(.js) • 今回のメインディッシュ。.NET Frameworkが利用できることからサーバー管理だけでな くアプリケーションまで動かせる。また多くのMS製品がPowerShell用のコマンドレット を持っているので複雑なスクリプトも実装が可能。 PowerShell (.ps1)
  6. 6. 実行環境 PowerShell スクリプト PowerShell エンジン COM .NET Framework
  7. 7. PowerShellバージョンと対応OS OS 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 ◎
  8. 8. なにはともあれ使ってみる。 見た目はコマンドプロンプトと似てる
  9. 9. 覚えておきたいコマンド Get-Help :ヘルプ表示 Set-ExecutionPolicy Unrestricted :スクリプト実行時のすべての制約 を取り除く Get-ExecutionPolicy :実行ポリシーの確認 Get-Service :すべてのサービスリスト表示 ConvertTo-HTML :出力結果をHTMLへ変換する Export-CSV :出力結果をCSVにする Select-Object :出力時にプロパティを指定する Get-EventLog :イベントログを調べる Get-Process :すべてのプロセスリスト表示 Stop-Process :プロセスの終了
  10. 10. GUIで快適操作 コマンドラインでPowerShellを利用する場合、デバッグ やコードエディタがないため非常に効率が悪いです。 そこでコードエディタ、実行環境、デバッグ環境が統合 されたPowerShell ISEを使うことをお勧めします。 コード保管やデバッグ、ス テップ実行などが可能。 また、マウスオーバーでヘ ルプ表示されます。
  11. 11. セットアップ方法 セットアップ方法
  12. 12. 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/
  13. 13. 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 発行プロファイルをダウンロードする ブラウザから発行プロファイル のダウンロードできます。 適当な場所に保存してください。
  14. 14. Azure用セットアップ PS C:> Import-AzurePublishSettingsFile "C:UsersuserDesktop7-11-2013-credentials.publishsettings“ ダウンロードした発行プロファイルをインポートする PS C:> Get-AzureSubscription Azureが操作できるか確認する PS C:> Select-AzureSubscription 使用するサブスクリプション名 サブスクリプション情 報が表示されれば問題 なし。
  15. 15. Azureで遊ぶ Azureで遊ぶ
  16. 16. WEBサイトの新規作成をやってみる PS C:> New-AzureWebsite fukuazu -Location "East Asia" NumberOfWorkers : 1 DefaultDocuments : {Default.htm, Default.html, Default.asp, index.htm...} NetFrameworkVersion : v4.0 PhpVersion : 5.3 RequestTracingEnabled : False HttpLoggingEnabled : False DetailedErrorLoggingEnabled : False PublishingUsername : $fukuazu PublishingPassword : eutex71HuWxd4sj7Lu13n09Cuw3XiKSlkD67vl6w1l5csFkq45uKx0ns8xlD AppSettings : {} Metadata : {} ConnectionStrings : {} HandlerMappings : Name : fukuazu State : HostNames : {fukuazu.azurewebsites.net} WebSpace : eastasiawebspace SelfLink : RepositorySiteName : Owner : UsageState : Normal Enabled : AdminEnabled : EnabledHostNames : SiteProperties : AvailabilityState : Normal SSLCertificates : SiteMode : HostNameSslStates : AzureDriveTraceEnabled : AzureDriveTraceLevel : Error AzureTableTraceEnabled : AzureTableTraceLevel : Error
  17. 17. WEBサイトのログをリアルタイムで見る PS C:> Get-AzureWebsiteLog -tail –Name fukuazu tail -f みたいな感じで使えます。
  18. 18. EndPointを追加してみる PS C:> $vm = Get-AzureVM -ServiceName jazvm01 -Name jazvm01 PS C:> $acl = New-AzureAclConfig PS C:> Set-AzureAclConfig -AddRule Permit -RemoteSubnet "1.115.192.184/32" -Order 1 -ACL $acl -Description "SSH“ RuleId : 0 Order : 1 Action : Permit RemoteSubnet : 1.115.192.184/32 Description : SSH PS C:> $vm | Set-AzureEndpoint -Name SSH -Protocol tcp -LocalPort 22 -PublicPort 22 -ACL $acl | Update-AzureVM OperationDescription OperationId OperationStatus -------------------- ----------- --------------- Update-AzureVM 99210143-e36c-4838-bc10-01837b5292a8 Succeeded EndPointとは仮想マシンが外部からの接続を受け入れるためのポートフォワーディングで、公開ポートと内部 ポートを接続することでポート間の転送を実現します。ただ、実際はIPアドレスベースでの細かいアクセス制御 をしたいわけで、それは今のところManagementポータルからできません。 実現するにはACLと呼ばれる制御リストを作成し、それをEndPointに読み込ませるようにします。 以下は、jazvm01という仮想マシンに、 1.115.192.184/32からのSSHを許可するという設定です。
  19. 19. PS C:> Get-AzureEndpoint -VM $vm LBSetName : LocalPort : 22 Name : SSH Port : 22 Protocol : tcp Vip : 168.63.200.224 ProbePath : ProbePort : 0 ProbeProtocol : ProbeIntervalInSeconds : ProbeTimeoutInSeconds : EnableDirectServerReturn : Acl : {SSH} PS C:> Get-AzureAclConfig -VM $vm -EndpointName SSH RuleId : 0 Order : 1 Action : Permit RemoteSubnet : 1.115.192.184/32 Description : SSH
  20. 20. まとめ PowerShellを利用することで、Azure操作を自動化する ことが可能です。 また、EndPoint設定のようにManagementポータルから 設定できないものも、PowerShellからなら設定が可能な 場合があります。(その逆もありけどw) ぜひPowerShellでのAzure操作やってみてください。

×