SlideShare a Scribd company logo
Azure Pipelines/GitHub Actions用self-
hostedイメージを作ってみよう!
かめがわ かずし(kkamegawa)
自己紹介
personal:
name: かめがわ かずし
alias: kkamegawa
community:
MVP: Microsoft MVP for Developer Technologies(2009-)
UsersGroup: Team Foundation Server Users Group
URL: https://dev.azure.com/tfsug/tfsuginfo
Blog: はてなブログ
URL: https://kkamegawa.hatenablog.jp
devblog radio: https://devblog.connpass.com/
This contents based on 2020/12/17
ビルド時間を
早くしたい
ビルドマシン
作るの大変
最新版の
環境ほしい
Microsoft-Hostedでできないことおさらい
多コアCPUでビルドしたい(hostedは2 vCoreまで)
ビルド時10GB以上のディスクを使いたい
メモリをもりもり使ってビルドしたい
Preview版のソフトを使いたい
GPU使って機械学習のモデルを早く作りたい
自分用のAzure Pipelines
イメージほしいですよね?
必要なもの
Azureサブスクリプションで以下のVMが使えること
Windows : Standard_DS4_v2
Linux : Standard_DS2_v2
(変更してもいいけどそんなに変わらないかも)
スポットインスタンスには非対応(Packerの制限)
https://github.com/hashicorp/packer/issues/8776
GitHubのPackage RepositoryへアクセスできるPAT
準備
GitHub Actionsのレポジトリをクローン
https://github.com/actions/virtual-environments
GitHubのfeed read権限のPATを作成
https://docs.github.com/ja/free-pro-
team@latest/github/authenticating-to-github/creating-a-personal-
access-token
実行
git clone https://github.com/actions/virtual-environments.git
import-module .¥helpers¥GenerateResourcesAndImage.ps1
※:helpersフォルダーで実行
GenerateResourcesAndImage -SubscriptionId <SubscriptionID> -
ResourceGroupName <ResourceGroup> -
ImageGenerationRepositoryRoot <clone先> -ImageType <イメージ
タイプ> -AzureLocation <region名> -Githubfeedtoken <GitHubの
PAT>
失敗することもある
いっぱい失敗しました
失敗したらリトライしないほうがいい
Windowsだとつらいけど
ファイル上書きでなぜか失敗する(PowerShellとしてはい
けるはずなのに…)
VS拡張インストールでなぜかエラーが出て失敗する
単独で実行するとうまくいくのに🤔🤔
作ってみた
Ubuntu 20.04
必要時間:3h19m
必要ディスク:86GiB
Windows Server 2019
必要時間:4h59m(カスタム済み)
必要ディスク:256GiB
WindowsはVisual StudioやDockerイメージ大きく、不利
イメージ作った後は
VHDをダウンロードしてオンプレミスで使うもよし
Shared Image Galleryへ入れて、可用性スケールセット
作ってたくさん並べるもよし
azコマンド:
az sig image-definition create -g MyResourceGroup --gallery-name MyGallery --gallery-image-
definition MyImage --publisher GreatPublisher --offer GreatOffer --sku GreatSku --os-type linux
(windows)
Windowsのイメージ生成高速化
要らないコンポーネント削る
古いRuby/Python/Golang/.NET Core SDK…
※:toolset-2016/2019.jsonというファイルから消す
場合によっては対応するテストのps1ファイルも消す
特に.NET Core SDKはマイナー含めて全バージョンの
dotnet restoreやるのでかなりつらい
2.1/3.1/5.0最新版のSDKのみfetchするように変更した
https://github.com/tfsugjp/virtual-
environments/blob/55cd096b014c5ca25967266c5c7691271dfdfe87/images/win/script
s/Installers/Install-DotnetSDK.ps1#L75
あなたにも自分のイメージが楽に作れる…かも?

More Related Content

What's hot (20)

PDF
NET5 and Diagnostics
Kazushi Kamegawa
 
PPTX
What's new Azure DevOps in //Build 2019
Kazushi Kamegawa
 
PDF
Getting Start for Azure Pipelines
Kazushi Kamegawa
 
PDF
Deploy Strategy with Azure Pipelines
Kazushi Kamegawa
 
PPTX
Visual studioonlineとwebサイトで始めるci/cdの第一歩
Kazunori Hamamoto
 
PPTX
Deploy to Azure by ??? Azure Repos or GitHub
Kazushi Kamegawa
 
PDF
Azure DevOpsとセキュリティ
Kazushi Kamegawa
 
PDF
Ignite 2021 振り返り(DevOps)
Kazushi Kamegawa
 
PPTX
Static website + Piplelines
Akiyoshi Tsuchida
 
PDF
「何もしないのにCIが失敗した」を防ぐ
Kazushi Kamegawa
 
PDF
Azure DevOps と開発管理
Tsukasa Kato
 
PPTX
Azure DevOps ハンズオン Vo.3 ~Delivery Plans を用いたプロジェクトのスケジュール管理~
Takunori Minamisawa
 
PDF
Introduction of Azure Docker Integration
Takekazu Omi
 
PPTX
Azure DevOps で始めるスタートダッシュ
Yasuaki Matsuda
 
PPTX
AzureDevOpsの機能解説
Makoto Nishimura
 
PPTX
What's Azure DevOps
Kazushi Kamegawa
 
PDF
Visual studio online and Agile
Kazushi Kamegawa
 
PDF
PHPerだってサーバーレスしたい!
Yuta Matsumura
 
PDF
Azure DevOps 関西 2019 - Overview
Keiji Kamebuchi
 
PPTX
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
Takao Tetsuro
 
NET5 and Diagnostics
Kazushi Kamegawa
 
What's new Azure DevOps in //Build 2019
Kazushi Kamegawa
 
Getting Start for Azure Pipelines
Kazushi Kamegawa
 
Deploy Strategy with Azure Pipelines
Kazushi Kamegawa
 
Visual studioonlineとwebサイトで始めるci/cdの第一歩
Kazunori Hamamoto
 
Deploy to Azure by ??? Azure Repos or GitHub
Kazushi Kamegawa
 
Azure DevOpsとセキュリティ
Kazushi Kamegawa
 
Ignite 2021 振り返り(DevOps)
Kazushi Kamegawa
 
Static website + Piplelines
Akiyoshi Tsuchida
 
「何もしないのにCIが失敗した」を防ぐ
Kazushi Kamegawa
 
Azure DevOps と開発管理
Tsukasa Kato
 
Azure DevOps ハンズオン Vo.3 ~Delivery Plans を用いたプロジェクトのスケジュール管理~
Takunori Minamisawa
 
Introduction of Azure Docker Integration
Takekazu Omi
 
Azure DevOps で始めるスタートダッシュ
Yasuaki Matsuda
 
AzureDevOpsの機能解説
Makoto Nishimura
 
What's Azure DevOps
Kazushi Kamegawa
 
Visual studio online and Agile
Kazushi Kamegawa
 
PHPerだってサーバーレスしたい!
Yuta Matsumura
 
Azure DevOps 関西 2019 - Overview
Keiji Kamebuchi
 
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
Takao Tetsuro
 

Similar to How to create your own Azure Pipeline's image (7)

PDF
AzureDevOpsで作るHoloLensアプリCI環境
Tatsuya Sakai
 
PDF
AKS+KEDAで実現!Container Functions Pipeline
Tsukasa Kato
 
PDF
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
Issei Hiraoka
 
PDF
Infrastructure as code for azure
Keiji Kamebuchi
 
PDF
GitHub Actions で CI/CD
Issei Hiraoka
 
PDF
S15 コマンドラインおよび API による Microsoft Azure の管理
Microsoft Azure Japan
 
PDF
ArcBox のおさらいと最新情報
Kazuki Takai
 
AzureDevOpsで作るHoloLensアプリCI環境
Tatsuya Sakai
 
AKS+KEDAで実現!Container Functions Pipeline
Tsukasa Kato
 
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
Issei Hiraoka
 
Infrastructure as code for azure
Keiji Kamebuchi
 
GitHub Actions で CI/CD
Issei Hiraoka
 
S15 コマンドラインおよび API による Microsoft Azure の管理
Microsoft Azure Japan
 
ArcBox のおさらいと最新情報
Kazuki Takai
 
Ad

More from Kazushi Kamegawa (12)

PDF
Ignite 2021秋 recap - 開発者向け新機能紹介
Kazushi Kamegawa
 
PDF
DevOps and compliance and security
Kazushi Kamegawa
 
PDF
はじめてのコンテナーDocker & Windows & Linux
Kazushi Kamegawa
 
PPTX
その後のBash on windows
Kazushi Kamegawa
 
PDF
Windows10時代のクロスプラットフォーム開発
Kazushi Kamegawa
 
PDF
Cross Platform CI for Visual Studio Online
Kazushi Kamegawa
 
PDF
はじめてのTeam Foundation ServerとVisual Studio Online
Kazushi Kamegawa
 
PDF
トラブル発生、その時あなたがすることは?
Kazushi Kamegawa
 
PDF
PowerShell and Release Management Server
Kazushi Kamegawa
 
PDF
Application insights で行ってみよう
Kazushi Kamegawa
 
PDF
TypeScript And ALM
Kazushi Kamegawa
 
PDF
Planning Effective Test Plan
Kazushi Kamegawa
 
Ignite 2021秋 recap - 開発者向け新機能紹介
Kazushi Kamegawa
 
DevOps and compliance and security
Kazushi Kamegawa
 
はじめてのコンテナーDocker & Windows & Linux
Kazushi Kamegawa
 
その後のBash on windows
Kazushi Kamegawa
 
Windows10時代のクロスプラットフォーム開発
Kazushi Kamegawa
 
Cross Platform CI for Visual Studio Online
Kazushi Kamegawa
 
はじめてのTeam Foundation ServerとVisual Studio Online
Kazushi Kamegawa
 
トラブル発生、その時あなたがすることは?
Kazushi Kamegawa
 
PowerShell and Release Management Server
Kazushi Kamegawa
 
Application insights で行ってみよう
Kazushi Kamegawa
 
TypeScript And ALM
Kazushi Kamegawa
 
Planning Effective Test Plan
Kazushi Kamegawa
 
Ad

How to create your own Azure Pipeline's image