技術系

DevOps 組織設定 Pipelines設定

はじめに

DevOps組織設定の続き、Boardsに引き続きPipelinesの設定について説明

対応する疑問
・Organizationの設定、Pipelinesで何が設定できるの?
・Pipelinesの設定でやっておいた方がいいことある?

Pipelines

Agent pools

デフォルトのエージェントが登録されいる。基本的には「Azure Pipeline」を利用していくが、何か個別に作成している場合は右上の「Add pool」を押下して登録ができる。

ビルドタスクで利用しているものが確認できる。といってもビルドタスクをキックする際に自身で指定しているため何を利用しているか、どこで変更するかはわかりやすい認識。

エージェントを押下して編集ができる。

Agent pools>Azure Pipelines>jobsは履歴を確認できる。

Agent pools>Azure Pipelines>Agents
ここで無効化とバージョンの確認ができる。

Agent pools>Azure Pipelines>Details
オーナーの設定、Azure PipelinesはMSが提供しているものなので変更不可

Agent pools>Azure Pipelines>Security
User permissionsということでアクセス許可の設定ができる。Agentの確認は普段しないのであまり気にしなくてよい。

Agent pools>Azure Pipelines>Analytics
利用状況の確認ができる。

Settings

Pipelinesに対する各種設定

General

Disable anonymous access to badges

この設定を有効にすると認証されたユーザー以外(匿名ユーザー)がパイプラインステータスを確認するAPIの利用を制限できる。
リリース完了やビルド完了のステータスを別のアプリに連携して通知したいときなどにAPIを利用できるがそれを全開放するかどうかの設定になる。基本有効にすべし

Limit variables that can be set at queue time

スーパーカスタム設定。ビルドタスク実行、リリースタスク実行時に変数を設定できる。
解除はお好みで。詳細は以下
https://go.microsoft.com/fwlink/?linkid=2214054

Limit job authorization scope to current project for non-release pipelines

こちらもカスタムよりの設定。無効化すると他プロジェクトのGitにアクセスしてビルドタスクやリリースタスクを組めるらしい。本番環境などの場合は他に影響が発生しないように有効化するのが一般的。

Limit job authorization scope to current project for release pipelines

こちらも上記のようにスコープを制限するための設定。有効にするとリリースパイプライン内のタスク・ジョブは現在のプロジェクトのリソースに制限される。本番環境の場合は有効化していおくのがよさそう。但し本番などの場合はDevOps自体を一つだけ用意してプロジェクトも一つにするとは思う。

Protect access to repositories in YAML pipelines

リポジトリへのアクセスを制限するための設定
これを有効にすると認証されたユーザーのみがリポジトリへアクセスができるようになる
基本有効で良い認識

Disable stage chooser

パイプラインの実行時にステージの選択を制限するためのオプション。運用を立てつける際にDevOpsの操作があまりわからない方が操作するなどの場合は有効にしてもよいかもしれない

Disable creation of classic build pipelines

新しいビルドパイプラインの作成時にクラシックビルドパイプラインの選択を制限するためのオプション。説明の通りで、ビルド定義作成時にクラシック版をリンクを押下で選択できるが、それを無効化するもの。クラシックも利用するときがある場合は無効化推奨。

Disable creation of classic release pipelines

上記のビルド設定と同様クラシックのリリース定義作成を抑制するための設定。

Triggers

Limit building pull requests from forked GitHub repositories

フォーク元が異なるGitHubリポジトリから送信されたプルリクエストのビルドを制限するためのオプション。無効化状態だと上記のようにHigh riskの状態だよと教えてくれる。

Onにすると3点の選択が可能で、上から強・中・カスタムのようになっている。
Disable building pull requests from forked repositories
この設定ではフォーク元が異なる場合にビルドを無効化する。
Securely build pull requests from forked repositories
この設定はフォーク元が異なる場合に制限を設けて許可する。
Customize rules for building pull requests from forked repositories
この場合は画像のようにさらに設定が追加されてより詳細に設定を行うことができる。

Disable implied YAML CI trigger

YAMLビルドパイプラインの自動トリガーを無効化するためのオプション。この設定を有効化すると明示的に定義されたトリガー条件に従ってのみトリガーされるようになる。パイプラインのトリガーの設定値は明示的にすべきという場合は(そうあるべきではある)Onにしておく。

Task restrictions

Disable built-in tasks

有効化する場合の要件が思いつかないが、提供されているbuilt-in tasksに制限を掛けて外部ツールやカスタムタスクを利用してビルド定義やリリース定義を作成するよう。

Disable Marketplace tasks

上記と同様でMarketplaceからインストールしたタスクが利用不可になる。

Disable Node 6 tasks

こちらも同様。Node 6に関連するタスクを制限する。なるべく最新バージョンを利用するようにしたい場合は有効化する。

Enable shell tasks arguments validation

Azure DevOpsの設定の1つで、シェルスクリプトを実行するタスクで、引数の検証を有効にするオプション。シェルタスクの引数の検証を有効にすると、シェルスクリプトの実行時に構文エラーが防止され、引数の利用に関するエラーが減少することが期待できる。

感想

長くなったので、一旦ここまで実際に普段利用していない部分もあるのでその内いろいろいじってみたいと思います。DevOpsはいつの間にか更新が入っていることもあるのでこのあたりの設定もすぐ項目の増減とかありそうですが、適宜見ていきます。