Contents
1. 前提条件と Azure DevOps 組織・プロジェクトの作成
1‑1. Azure アカウントの取得
| 手順 | 操作内容 |
|---|---|
| ① | https://azure.microsoft.com/ja-jp/free/ にアクセスし、無料サインアップを実行。Microsoft アカウントが未保有の場合は新規作成してください。 |
| ② | サブスクリプションが作成されたら Azure ポータルにサインインし、左上の 「リソースの作成」 → 「DevOps」 を検索して Azure DevOps Services に移動します。 |
1‑2. Personal Access Token (PAT) の発行と権限設定
重要:PAT は機密情報です。必ず最小権限で作成し、有効期限は必要に応じて短く(例: 30 日)設定してください。
- Azure DevOps ポータル右上のユーザーアイコン → 「Security」 を選択。
- 「New Token」 ボタンをクリックし、以下の項目を入力します。
| 項目 | 推奨設定 |
|---|---|
| 名前 | CI/CD‑pipeline‑token(用途が分かる名前) |
| 有効期限 | 30 日〜90 日程度(長期間必要な場合は 1 年以内に制限) |
| スコープ | 「Build (Read & execute)」 と 「Code (Read & write)」 を選択し、他の権限は付与しない。 |
ポイント:
Code (Read & write)はリポジトリへのコードプッシュが必要なときのみ付与し、CI のみであればReadに留めることでリスクを低減できます。
1‑3. 組織とプロジェクトの作成手順
| 手順 | 操作内容 |
|---|---|
| ① | Azure DevOps ポータル左上メニュー → 「組織の作成」。一意な組織名(例: myorg-azuredevops)を入力し、リージョンは自分に近いものを選択。 |
| ② | 組織が作成されたら 「新しいプロジェクト」 ボタンをクリック。 ・テンプレート:Basic ・バージョン管理:Git ・作業項目のプロセス:Agile など、チームに合わせて選択。 |
| ③ | 作成完了後、左メニューから 「Project settings」 → 「Permissions」 を開き、必要なユーザーやグループに適切な権限を付与します。 |
まとめ:Azure アカウント取得 → PAT 発行(最小権限・期限設定) → 組織&プロジェクト作成 の順で環境が整います。次はリポジトリの準備です。
2. リポジトリの準備とサンプルコードの配置
2‑1. Azure Repos で新規リポジトリを作る
- プロジェクト左メニュー → 「Repos」 → 「Files」。
- 「New repository」 をクリックし、以下を設定します。
| 項目 | 設定例 |
|---|---|
| リポジトリ名 | sample-app |
| 初期化 | README.md を自動生成(チェックON) |
2‑2. 外部 Git(GitHub 等)を利用する場合
- プロジェクト左メニュー → 「Project settings」 → 「Service connections」。
- 「New service connection」 → 「GitHub」 を選択し、OAuth 認証で接続情報を登録します。
以降のパイプライン作成時に外部リポジトリをソースとして指定できます。
2‑3. サンプルコード(Node.js)をコミットする手順
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# 1️⃣ リポジトリのクローン git clone https://dev.azure.com/<org>/<project>/_git/sample-app cd sample-app # 2️⃣ Hello World アプリ作成 cat > index.js <<'EOS' console.log('Hello Azure Pipelines'); EOS # 3️⃣ package.json 作成(npm test 用) cat > package.json <<'EOS' { "name": "sample-app", "version": "1.0.0", "scripts": { "test": "node index.js" } } EOS # 4️⃣ コミット & プッシュ git add . git commit -m "Add hello world sample" git push origin main |
ポイント:
mainブランチをデフォルトブランチとして使用することが推奨されます(旧masterは非推奨)。
3. パイプラインの作成 ― UI ウィザードと YAML エディタ
3‑1. UI ウィザードで「Starter pipeline」を選択
| 手順 | 操作 |
|---|---|
| ① | プロジェクト左メニュー → 「Pipelines」 → 「New pipeline」。 |
| ② | 「Where is your code?」で先ほど作成した sample-app(Azure Repos または外部 Git)を選択。 |
| ③ | 「Configure your pipeline」で 「Starter pipeline」 をクリック。 |
3‑2. YAML エディタへ切り替えて保存
- UI が自動生成した空のテンプレートが表示されるので、下記サンプルを貼り付けて 「Save」 → 「Run」。
- コミット先ブランチは
main(もしくは作業用ブランチ)を指定します。
これによりリポジトリ直下に
azure-pipelines.ymlが生成され、コードレビューの対象と同様に管理できます。
4. azure-pipelines.yml の基本構造
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# azure-pipelines.yml trigger: - main # main ブランチへのプッシュで自動実行 pool: vmImage: 'ubuntu-latest' # Microsoft が提供するホストエージェント variables: NODE_VERSION: '18.x' stages: - stage: Build displayName: ビルドステージ jobs: - job: BuildJob displayName: Node.js アプリのビルド steps: - task: UseNode@1 # Node.js バージョン指定タスク(正式名称は NodeTool) inputs: versionSpec: $(NODE_VERSION) displayName: 'Node.js のインストール' - script: npm install displayName: '依存関係のインストール' - script: npm test displayName: 'テスト実行' |
主な要素の解説
| 要素 | 説明 |
|---|---|
trigger |
指定ブランチへのプッシュで自動的にパイプラインが走ります。 |
pool |
Microsoft が管理するビルドエージェント(Linux/macOS/Windows)を選択できます。 |
variables |
再利用可能な変数を定義し、後続ステップで ${{ }} または $() 形式で参照します。 |
stages → jobs → steps |
階層的に処理を構成。Stage は大きなフェーズ(例: Build, Deploy)を表し、Job は同一エージェント上で実行される単位、Step が具体的なコマンドやタスクです。 |
ベストプラクティス:ステージごとに明確な
displayNameを設定すると、Azure Pipelines の UI で進捗が一目で分かります。
5. AI アシスタンスによるパイプラインテンプレート生成(プレビュー機能)
5‑1. 機能概要
Azure DevOps は 「AI assistance (preview)」 と呼ばれるプレビュー機能を提供しています。
- ソースコードやプロジェクトの依存関係を解析し、最適な YAML テンプレートを提案します。
- 現在は一部リージョン・組織でのみ有効化可能です(2024 年 3 月時点)。
5‑2. 有効化手順
- プロジェクト左メニュー → 「Project settings」 → 「Pipelines」 → 「AI assistance」。
- 「Enable AI assistance (preview)」スイッチをオンにし、Microsoft 365 アカウントでサインインします。
注意:プレビュー機能は予告なく変更・停止されることがあります。運用環境での使用は自己責任で行い、生成された YAML は必ずレビューしてください。
5‑3. テンプレート取得フロー
| 手順 | 操作 |
|---|---|
| ① | Pipelines → New pipeline の画面で「AI が提案するテンプレート」ボタンをクリック。 |
| ② | AI がリポジトリ内の言語(例: Node.js、.NET)やフレームワークを検出し、ベストプラクティスに沿った azure-pipelines.yml を生成します。 |
| ③ | プレビューで内容を確認後 「Use this template」 → 「Save」 でリポジトリへコミット。 |
ポイント:AI が自動でインストールタスクやテストコマンドを推測してくれるため、初心者でも実務レベルのパイプラインが短時間で完成します。
6. パイプラインの高度なカスタマイズと Environments の活用
6‑1. 変数・条件分岐・テンプレートの組み合わせ例
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
variables: - group: GlobalVariables # Library に登録された変数グループ - name: isProd value: $[eq(variables['Build.SourceBranch'], 'refs/heads/main')] stages: - stage: Deploy displayName: デプロイステージ condition: eq(variables.isProd, true) # main ブランチだけ本番デプロイ jobs: - template: templates/deploy.yml # 外部テンプレート呼び出し parameters: environment: production |
- 変数グループは UI → Project settings > Pipelines > Library で管理。
conditionキーワードによりブランチやタグ、カスタム変数で実行制御が可能です。- テンプレート (
templates/deploy.yml) は共通ジョブを一元化し、複数パイプラインで再利用できます。
6‑2. Environments(環境)と承認フローの設定方法
| 手順 | 操作 |
|---|---|
| A | Pipelines > Environments → New environment。名前は staging、production 等に分けます。 |
| B | 環境詳細画面で Approvals and checks を有効化し、手動承認者や Azure Policy などを設定。 |
| C | デプロイジョブの YAML に environment: フィールドを追加例: environment: production。 |
Environments は エージェントプールや Kubernetes クラスタ と紐付けられるため、同一 YAML が環境ごとに自動的に切り替わります。
6‑3. CI/CD ベストプラクティスまとめ
- ビルド成果物の保存:
PublishPipelineArtifact@1タスクで Azure Artifacts に格納し、次ステージでdownloadできるようにする。 - 段階的デプロイ:Staging → Production の二段構成を基本とし、Staging が成功したら自動で Production 承認フローへ遷移させる。
- ロールバック戦略:失敗時は前回の安定版アーティファクトを再デプロイする
rollbackステージを用意。 - 監視と通知:パイプライン実行結果は Azure Monitor と連携し、失敗時は Teams / Email へ即時通知。
- コードレビューの徹底:YAML ファイル自体がコードであるため、Pull Request の必須化やブランチ保護ルールを設定して品質を担保する。
7. よくある質問 (FAQ)
| 質問 | 回答 |
|---|---|
| PAT の有効期限はどのくらいにすべきですか? | 原則として 30 日〜90 日 に設定し、必要に応じて自動更新スクリプトを用意します。長期間(1 年)使用すると漏洩リスクが高まります。 |
| AI アシスタンスで生成された YAML が正しいか確認する方法は? | ローカル環境で az pipelines run --yaml-path azure-pipelines.yml を実行し、ステップごとの出力を確認します。また、必ず Pull Request でレビューしましょう。 |
| Environments の承認フローに時間がかかる場合の対策は? | 承認者を複数設定し、「Auto approve after X minutes」 オプション(プレビュー機能)を利用すると、緊急時でもデプロイが止まらないようにできます。 |
| パイプライン実行中にエージェントのスペック変更は可能ですか? | pool: 定義で使用する vmImage を変更すれば次回実行から適用されます。既存ジョブが走っている最中の変更は反映されませんので注意してください。 |
8. まとめ
- Azure アカウント・PAT(最小権限・期限設定) → 組織とプロジェクトを作成
- リポジトリにサンプルコード を配置し、
mainブランチをデフォルト化 - UI ウィザードで Starter pipeline を生成し、YAML エディタへ保存
- 基本的な
azure-pipelines.ymlの構造(trigger → pool → stages)を理解 - 必要に応じて AI assistance (preview) でテンプレート自動生成を活用
- 変数・条件分岐・テンプレート と Environments を組み合わせ、承認フローやロールバック戦略を実装
これらの手順とベストプラクティスに従うことで、初心者でも安全かつ拡張性の高い CI/CD パイプラインを短時間で構築できます。今後は Azure DevOps の新機能リリースやセキュリティガイドラインの更新情報に注意し、継続的な改善サイクルを回すことが重要です。