[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

Azureコラム 第12回「Azure Virtual Desktop 運用自動化 Vol.3」

Microsoft

2024.12.20

     

Azure Virtual Desktop 運用自動化シリーズもいよいよ最終回です。
Vol.3ではVol.2でAzure DevOps化した資材にプルリクエスト対応を付加して、もう少し格好良く仕立て上げていきます。

条件・制約

  • !!!!! ツールの実行は自己責任でお願いします !!!!!
  • PowerShellモジュールは2024年8月20日時点で最新化して動作確認を行っています。

スクリプトの変更点

今回スクリプトの変更はありませんのでVol.2の資材をそのままお使いいただけます。
https://github.com/mstechcenter/avd-operation

Azure DevOpsの設定

Azure DevOpsの設定は大きくオペレーターユーザーの作成・プルリクエスト関連の設定・パイプライントリガーの変更の3点になります。
それでは順を追ってご説明していきましょう。

  • 1. [Entra ID] オペレーターユーザーの作成
    Entra IDにて、資材を作成しプルリクエストを発行する役割のオペレーターユーザーを作成します。
  • 2.

    [Azure DevOps] 組織にオペレーターユーザーを招待
    Organization Settings → Users → Add users からオペレーターユーザーを招待します。
    ここではまだプロジェクトへのユーザー追加は行いません。

    Add new users

  • 3.

    [Azure DevOps] プロジェクトにオペレーターチームを作成
    プロジェクト → Project setting → Teams → New Teams からオペレーターチームを作成します。
    Membersにはオペレーターユーザーを追加、Permissionsは既定値をクリアしてください。
    オペレーターチームはメンバーのグルーピングに使用します。

    Create a new team

  • 4.

    [Azure DevOps] プロジェクトにオペレーターグループを作成
    Azure DevOps → プロジェクト → Project setting → Permissions → New Group からオペレーターグループを作成、Membersにオペレーターチームを追加してください。
    オペレーターグループは各種権限管理に使用します。

    Create a new group

  • 5.

    オペレーターグループにAzure Reposの権限を割り当て
    Azure DevOps → プロジェクト → Repositories → Security からオペレーターグループへの権限の割り当てを行います。
    権限はCreate Branchを割り当ててください。

    Create Branchの割り当て

  • 6.

    ブランチポリシーの設定
    Azure DevOps → プロジェクト → Repos → Branches → ブランチの縦三点リーダー → Branch policies から、プルリクエストに対するレビュー担当者の最小数を設定します。

    Branch Policies

  • 7.

    パイプライントリガーの変更
    各パイプラインのトリガーをファイルパス形式に変更します。

    trigger:
    - none
    
    ~~~
    

    trigger:
      branches:
        include:
          - main
      paths:
        include:
          - 変更検知するファイルのパス
    
    ~~~
    

    ちなみに先にブランチポリシーを設定した場合、パイプラインの変更時にもプルリクエストの作成が必要となります。
    面倒なようでしたら先にこちらの変更を済ませておきましょう。

これでAzure DevOpsの設定は完了です。それでは次のセクションで実際にプルリクエストのレビュー完了をトリガーにパイプラインが実行される様子を見ていきます。

プルリクエストからのパイプライン実行

さあいよいよ本番です。オペレーターユーザーによるプルリクエスト作成からレビュー完了に連動してパイプラインが実行される流れを見ていきましょう。

  • 1.

    [オペレーター] ブランチの作成
    作業用のブランチを作成します。

    Create a branch

  • 2.

    [オペレーター] プルリクエストの作成
    1で作成したブランチでファイルを修正してプルリクエストを作成します。

    New null request

  • 3.

    [レビュワー] レビューの実施
    レビューを実施して Approve → Complete とします。

    Updated deploy_Master.param.ps1

  • 4.

    [オペレーター] パイプラインの確認
    Deploy_Masterパイプラインが自動起動されています。

    Pipelines

    しばらくするとパイプラインが完了して、

    Pipelines

    無事仮想マシンが作成されました。

オペレーターの権限周りの動作

オペレーターには特定作業しかできないような権限設定を行っていますので、ここでその動作を確認しておきましょう。

  • mainブランチの直接変更
    コミット時にエラーとなります。

    Commit

  • パイプラインの手動実行
    Run pipelineが表示されません。

    Pipelines

    Manage securityを選択してもグレーアウトされていて設定を変更することはできません。

    Permissions for Deploy_Master

    権限制御も想定通りに行われていることが確認できました。

おわりに

Azure Virtual Desktop 運用自動化 Vol.3はいかがでしたでしょうか?
Vol.2までは管理者によるワンオペ運用でしたが、オペレーターとレビュワー(管理者)を分割かつ自動化することで今風の運用にグッと近づけたかなと。
実はマスターへの更新プログラム適用からの一連の作業の自動化にもトライしてみてあえなく撃沈したりはしているのですが、個人的にはこのシリーズ通して結構満足できる成果が得られました。
まだまだできることは尽きませんがキリの良いところで締めたいと思います。

本コラムをご覧いただきありがとうございました!

  • 文中の商品名、会社名、団体名は、一般に各社の商標または登録商標です。

Azureコラム 第12回「Azure Virtual Desktop 運用自動化 Vol.3」