powershell 5.0 で広がる運用管理の世界
TRANSCRIPT
PowerShell 5.0 で広がる運用管理の世界Interact × Cloud Samurai Roadshow 2015 年 7月 (2015.07.11)
Kazuki Takai – System Center User Group Japan
自己紹介
高井一輝 (Takai Kazuki)
某ISP勤務
クラウドサービスの開発、設計、設備維持
Windows Server / System Center / Linux / etc…
System Center User Group Japan (SCUGJ)
Twitter : @zhuky7 / Facebook : kazuki.takai
Blog : http://operationslab.wordpress.com/
2
本日の内容
本日の内容 (お話しすること)
PowerShell 5.0 / WMF 5.0 を中心とした運用管理系のテクノロジー、ソリューション
標準コマンドレットの拡充
構成管理 (Desired State Configuration)
パッケージ管理 (Package Manager)
セキュリティの強化 (Just Enough Administration、Just in Time Administration/PAM)
お話ししないこと
運用管理に直接関係ない PowerShell 5.0 の新機能
各機能の細かい仕様や設定方法
3
セッションのゴール
PowerShell と周辺のテクノロジーを組み合わせることで、何ができるかをイメージできる
PowerShell を (より) 使ってみたくなる
4
はじめる前に
このセッションでは Preview 版の製品、テクノロジーについて記載しています
2015/07 時点の情報をベースにしています
今後のリリースで機能や動作が変更、削除される可能性があります
主に、Windows PowerShell 5.0 について記載します
厳密には、PowerShell 5.0 の新機能ではないものも含まれています
Windows Server 2016 の新機能に紐づく個々のコマンドレットについては(ほとんど) 記載しません
5
本日の環境
WMF 5.0 Preview
Windows 10 Pro Insider Preview (Build 10162, 10166)
Windows Server 2016 TP2 (Build 10072)
Package Repository, MIM
Windows Server 2012 R2
Windows 8.1
6
Windows Server と PowerShell
Windows Server の進化とともに、PowerShell も進化
PowerShell 1.0 : Windows Server 2003, Windows XP, Vista の追加コンポーネント
PowerShell 2.0 : Windows Server 2008 R2 に標準搭載 (2003 – 2008 対応)
PowerShell 3.0 : Windows Server 2012 に標準搭載 (2008, 2008 R2 対応)
PowerShell 4.0 : Windows Server 2012 R2 に標準搭載 (2008 R2, 2012対応)
PowerShell 5.0 : Windows Server 2016 に標準搭載予定 (2008 R2 – 2012 R2 対応?)
デフォルトで有効化
Windows 10 にも搭載予定!?
7
2012 R2 vs 2016
8
Windows Server 2012 R2
Build Version : 6.3.9600.16394
Windows Server 2012 R2 with KB3000850
Build Version : 6.3.9600.17400
Windows Server 2016 TP2
Build Version : 10.0.10074.0
Windows Server 2012 R2 with WMF 5.0 Preview
Build Version : 10.0.10105.0
Windows 10 Insider Preview
Build Version : 10.0.10162.0 (Slow Ring), 10.0.10166.0 (Fast Ring)
WMF 5.0 Preview April 2015
2015/07/10 現在、以下の OSに対応
Windows Server 2012 R2, Windows 8.1
Windows Server 2012
Windows Server 2008 R2, Windows 7
KB3055381 or KB3055377 or KB2908075 をインストールすることで利用可能
OS毎に指定の KBをインストール
詳細はリリースノートを参照
英語の言語パックがインストールされていない環境ではインストールに失敗する(かも)
9
PowerShell 5.0 の新機能
PackageManagement を使用したソフトウェアのインストール
PowerShellGet を使用したモジュールの管理
クラスの定義
デバッグ関連の機能追加(拡充)
DSC関連の機能追加
OData エンドポイントからコマンドレットを生成
監査/ロギング機能の強化
ネットワークスイッチ管理のためのコマンドレット追加
ZIPファイルの操作
シンボリックリンク関連の機能強化
文字列から構造化オブジェクトを生成
etc...
10
本日紹介する機能
標準コマンドレットの拡充
PowerShell Direct
Remote Copy
etc...
構成管理
DSC (Windows/Linux)
パッケージ管理
Package Management
PowerShell Get
セキュリティの強化
Just Enough Administration
Just in Time Administration/PAM
11
標準コマンドレットの拡充
運用管理面で便利なコマンドレッド、スイッチの追加および機能の拡張
PowerShell Direct
Remote Copy
Transcript
Get-Clipboard, Set-Clipboard
Compress-Archive, Expand-Archive
-Recurse with -Depth
-NoNewLine
-ItemType SymbolicLink
12
PowerShell Direct
Hyper-V ホストからゲスト VMに対してアクセス可能
ホストからゲストへの PSSession
Hyper-V ゲストサービス不要
PowerShell Remoting 構成不要
ネットワーク接続不要
Enter-PSSession / Invoke-Command
New-PSSession では使用できない (少なくとも Preview においては)
Copy-VMFileと組み合わせると、初期構成が可能
13
PowerShell Direct
注意点
ホスト、ゲストともに Windows 10 or Windows Server 2016 である必要がある
評価上の注意点
ホストとゲストの組み合わせにより、うまく動作しない場合がある
Windows 10 Insider Preview Build 10162 -> Windows Server 2016 TP2 Build 10072 : NG
Windows 10 Insider Preview Build 10162 -> Windows 10 Insider Preview Build 10166 : OK
Windows Server 2016 TP2 Build 10072 -> Windows Server 2016 TP2 Build 10072 : OK
なるべく同じ Build Version を使用する
14
Remote Copy
PSSession経由でアイテムのコピーが可能
Sessionは事前に確立しておく必要あり (New-PSSession)
Copy-Item コマンドレットの追加パラメータを使用
-FromSession
-ToSession
SSH (SCP) のような使い方が可能に!
15
監査/ロギング機能の強化
Transcriptingの改善
ファイル名自動生成機能 (保存先フォルダーのみ指定)
コマンド実行時刻の自動記録が可能
外部コマンドの出力を記録可能
Script Block のロギング
全てのスクリプトブロックをイベントログへ記録
Microsoft-Windows-PowerShell/Operational
グループポリシーで有効化
Administrative Templates -> Windows Components -> Windows PowerShell
16
※ BuildVersion 6.3.9600.17400 以降で利用可能
Script Block のロギング17
※ BuildVersion 6.3.9600.17400 以降で利用可能
DemoNew & Update Cmdlets
18
PowerShell Direct
Remote Copy
Transcript
Desired State Configuration (DSC)
Windows PowerShell Desired State Configuration
サーバーの構成と管理を行うための機能
操作 (構築) 手順ではなく、状態を記述することでサーバーを自動構成
DSC によるサーバーの構成手順
PowerShell で構成後のサーバーの状態を定義
PowerShell コードから構成データが含まれる MOF ファイルを生成
MOF ファイルを使用してサーバーを構成
19
DSC 関連の機能追加
複数コンピューター間でのリソース依存関係の記述 (Wait for All/Any)
DSC リソース実行時のアカウント指定 (Run as Credential)
Linux サーバへの適用 (DSC for Linux)
64bit環境における 32bit プロセス環境 (WOW64) の構成をサポート
Configuration Status の集中管理 (情報の集約/レポーティング)
PowerShell ISE の DSC編集サポートの強化
DSC Local Configuration Manager 向けの Meta-Configuration Attribute
DSC Configuration の分割記述
ConfigurationRepositoryWeb 経由で外部の記述をインポート
20
DSC 関連の機能追加
追加のリソース
PowerShell Gallery (など) からダウンロード
PowerShellGetを使用してインストール
(または) モジュールフォルダーに手動で展開
PowerShell DSC for Linux
http://www.microsoft.com/en-us/download/details.aspx?id=46919
ダウンロードファイル (パッケージ) 内に、以下が含まれる
Windows Server (PowerShell) 上で利用可能な Linux 向けの DSCリソース (nx)
Linux用の DSCパッケージ
21
Demo Local Configuration (User)
Wait for & Run as Credential
DSC for Linux
Desired State Configuration
22
PackageManager
リポジトリベースのパッケージ管理システム
コアシステム
管理用のコマンドレット
PowerShell 上から操作・管理可能
*-Package コマンドレット群
リポジトリの追加が可能
*-PackageProvider
23
うまく動かないときは
NuGetプロバイダが登録されているか確認する
初めて Find-Package, Install-Package, Find-Module, Install-Module などを実行した際に、NuGet プロバイダ用のファイルをインストールするか確認される
NuGetプロバイダが追加されていない場合は、以下コマンドレットが必要
Get-PackageProvider –Name NuGet –ForceBootstrap
追加プロバイダーの保存先
管理者として実行した場合 : $env:PROGRAMFILES¥OneGet¥ProviderAssemblies
それ以外の場合 : $env:LOCALAPPDATA¥OneGet¥ProviderAssemblies
24
NuGetプロバイダーの追加25
PowerShellGet
PowerShell のモジュールや DSC リソースを管理するための仕組み
リポジトリからモジュールやリソースをダウンロードしてインストール
*-Module / *-DscResource コマンドレット群
リポジトリの追加や変更が可能
Register-PSRepository / Unregister-PSRepository
Get-PSRepogitory / Set-PSRepogitory
26
ローカルリポジトリ
内部の (管理された) リポジトリを使用可能
パッケージをホスト (ダウンロード) 可能なサーバー
パッケージ情報をフィードする仕組み
上記 2点を満たすサーバーであれば、リポジトリとして利用可能
お手軽に試す場合は…
NuGet.Server などを利用可能
27
DemoPackage & Module
Management
28
Package Management
PowerShellGet
Local Repository
セキュリティ
JEA (Just Enough Administration)
実行可能な操作やアクセス可能なオブジェクトを制限
Just-in-Time Admin Access
MIM (Microsoft Identity Manager) と連携して、必要なときのみ権限を付与
Privileged groups / TTL
ロギング・監査機能の強化
前述
29
Just Enough Administration
利用可能なコマンドレットを制限する仕組み
事前に、専用のエンドポイントを作成
エンドポイントに対して、利用可能なコマンドレットやパラメータを設定
作業時は、エンドポイントに接続して操作
New-PSSessionなどのコマンドレットで、-ConfigurationNameを指定
エンドポイント環境内では、事前の構成に従って、実行可能なコマンドレットや指定可能なパラメータが制限される
構成には DSCの xJEAリソースを使用 (すると、簡単に設定可能)
30
JIT Admin (PAM)
31
Just-In-Time Administration
必要な時だけ、期限を区切って特権を取得することで、よりセキュアに
ワークフローへの組み込みなども可能
Active Directory Domain Service とMicrosoft Identity Manager を使用
普段利用しているドメインアカウントからは権限を削除
リクエストに応じて、MIM が動的に権限を付与 (セキュリティグループへ追加)
あらかじめ設定された、またはリクエストされた TTL を経過すると、Kerberos チケットが失効
特権取得のリクエストに PowerShell を使用可能
DemoSecurity
32
Just Enough Administration
JIT Admin
まとめ
PowerShell 5.0 は着実に進化
DSCの利用範囲/適用範囲が拡大
ソフトウェア/モジュールのインストール簡易化
セキュリティの強化
まずは利用してみる!
33
参考資料
What‘s New in Windows PowerShell – TechNet
http://technet.microsoft.com/en-us/library/hh857339.aspx
Windows PowerShell Blog
http://blogs.msdn.com/b/powershell/
PowerShell Gallery
https://www.powershellgallery.com/
34