Azure DSCForLinux 拡張機能のご紹介

このポストは、10 月 26 日に投稿された Introducing the Azure DSCForLinux Extension の翻訳です。

Azure 上の Windows VM の構成管理には Azure PowerShell DSC (Desired State Configuration) 拡張機能 (英語) を使用できますが、Linux VM の構成管理でも同様の機能がほしいと思われている方がいるのではないでしょうか?

マイクロソフトは数か月前に Windows PowerShell Desired State Configuration (DSC) for Linux (英語) をリリースしましたが、今回新たに Azure Virtual Machines の DSCForLinux 拡張機能をリリースしました。この拡張機能を使用すれば、Azure 上の Linux VM の構成管理を DSC for Linux で行えるようになります。また、Linux VM に対する DSC for Linux のインストールと MOF 構成のプッシュも簡単に行うことができます。現時点の最新バージョンは 1.0 で、Gihub からダウンロードできます (英語)。DSCForLinux 拡張機能のメリットは以下のとおりです。

  • Linux VM に MOF 構成をプッシュ (Push モード)
  • プル サーバーを実行している Linux VM に MOF 構成を配布 (Pull モード)
  • カスタマイズされた DSC モジュールを Linux VM にインストール (Install モード)
  • カスタマイズされた DSC モジュールを Linux VM から削除 (Remove モード)

DSCForLinux 拡張機能は Azure CLI と PowerShell の両方で使用できます。まだセットアップしていない方は、Azure CLI の場合はこちらのページ、PowerShell の場合はこちらのページを参考にセットアップを行ってください。

Azure VM 拡張機能を初めて使用する方は、こちらのページで詳細を確認できます。MOF ドキュメントを作成する場合は、「Windows PowerShell Desired State for Linux の構成 (英語)」および「組み込みの Windows PowerShell Desired State Configuration for Linux のリソース (英語)」を参照してください。

Azure ストレージ アカウント内の MOF 構成ファイルを Linux VM に適用する方法を、Azure CLI の場合と PowerShell の場合で説明します。その他の使用例やスキーマに関するさらに詳しい情報は、GitHub の DSCExtension For Linux のページ (英語) でご確認いただけます。

Azure CLI の場合

1. 下記のとおりにプライベート構成の JSON ファイル (private.json) を作成します。

     
{    
  "StorageAccountName": "<storage-account-name>",    
  "StorageAccountKey": "<storage-account-key>",    
  "ContainerName": "<container-name>",    
  "MofFileName": "<mof-file-name>"
}

下記のとおりにパブリック構成の JSON ファイル (public.json) を作成します。

 {
  "Mode": "Push"
}

 

2. 次のコマンドを実行して拡張機能を有効化します。

 azure vm extension set <resource-group-name> <vm-name> DSCForLinux Microsoft.OSTCExtensions <version> 
--private-config-path protected.json --public-config-path public.json

Azure PowerShell の場合

1. 次のコマンドを実行して拡張機能を有効化します。

 $vmname = '<vm-name>'
$vm = Get-AzureVM -ServiceName $vmname -Name $vmname
$extensionName = 'DSCForLinux'
$publisher = 'Microsoft.OSTCExtensions'
$version = '<version>'
$privateConfig = '{  
  "StorageAccountName": "<storage-account-name>",  
  "StorageAccountKey": "<storage-account-key>",  
  "ContainerName": "<container-name>",  
  "MofFileName": "<mof-file-name>"
}'

2. 拡張機能を設定して MOF ファイルをデプロイします。

 Set-AzureVMExtension -ExtensionName $extensionName -VM $vm -Publisher $publisher `
  -Version $version -PrivateConfiguration $privateConfig `
  -PublicConfiguration $publicConfig | Update-AzureVM

DSCForLinux の使用方法の詳細については、こちらの GitHub ドキュメント (英語) をご覧ください。

ご協力のお願い

DSCForLinux 拡張機能の使用時に問題が発生した場合は、こちら (英語) へご報告をお願いいたします。