0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Azure Container InstancesでJenkinsを立ち上げる

Posted at

※ 個人blogに投稿した記事(投稿日:2019/6/5)をQiitaに移行しました

概要

Jenkinsに一度触れてみたくて、現在udemyでJenkinsの講座を受講しています。
先日Dockerの講座も受講完了したのと、今後Azureの勉強も始めたいことを踏まえ、
Azure Container Instances上にJenkinsを立ち上げて見たいと思います。

※Azureには「Azure Devops」というCI/CDサービスが存在していますが・・・

手順

Azureの操作はほぼ初めて。
今回はAzureのポータル上からCLIでリソースの操作が行えるAzure Cloud Shellで実行していきます。

1. リソースグループの作成

今回は「jenkinsResource」という名前のリソースグループを作成します。

az group create --name jenkinsResource --location eastus

成功すると以下のような結果が表示されます。

"id": "/subscriptions/d7eb1cd7-6516-4492-9006-6a138b4dfaae/resourceGroups/jenkinsResource",
  "location": "eastus",
  "managedBy": null,
  "name": "jenkinsResource",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null,
  "type": null
}

2. Azureファイル共有の作成

Jenkinsコンテナのデータを永続化させるため、ストレージ アカウントとファイル共有を作成します。

2-1. 環境変数STORAGE_ACCOUNT_NAMEのセット

ストレージアカウント名をRANDOMを付けて適当に設定します。

$ STORAGE_ACCOUNT_NAME=mystorageaccount$RANDOM

2-2. ストレージ アカウントを作成

az storage account create \
  --resource-group jenkinsResource \
  --name $STORAGE_ACCOUNT_NAME \
  --sku Standard_LRS \
  --location eastus

2-3. 環境変数AZURE_STORAGE_CONNECTION_STRING のセット

続いてストレージ アカウントの接続文字列をセットします。

$ export AZURE_STORAGE_CONNECTION_STRING=$(az storage account show-connection-string \
  --resource-group jenkinsResource \
  --name $STORAGE_ACCOUNT_NAME \
  --output tsv)

2-4. ファイル共有の作成

今回は「aci-jenkins」という名前でファイル共有を作成します。

az storage share create --name aci-jenkins

2-5. 環境変数STORAGE_KEY のセット

コンテナにAzure ファイル共有をマウントするために、ストレージ アカウント アクセス キーを取得し、
環境変数にセットします。

$ STORAGE_KEY=$(az storage account keys list \
  --resource-group jenkinsResource \
  --account-name $STORAGE_ACCOUNT_NAME \
  --query "[0].value" \
  --output tsv)

$STORAGE_KEYの値の確認。

$ echo $STORAGE_KEY

3. コンテナの作成と起動確認

3-1. コンテナの作成

準備ができたのでコンテナの作成をします。
今回は「aci-jenkins」という名前のコンテナとします。
(ファイル共有と同じ名前にしてしまって紛らわしい)
portsはJenkinsの設定値である8080にしておきます。
以下コマンドを実行後、しばらく待つとコンテナが起動します。

az container create \
  --resource-group jenkinsResource \
  --name aci-jenkins \
  --image jenkinsci/blueocean \
  --location eastus \
  --ports 8080 \
  --ip-address Public \
  --azure-file-volume-account-name $STORAGE_ACCOUNT_NAME \
  --azure-file-volume-account-key $STORAGE_KEY \
  --azure-file-volume-share-name aci-jenkins \
  --azure-file-volume-mount-path /var/jenkins_home/

3-2. ストレージのマウントの確認

前項でAzureファイル共有にマウントした「/var/jenkins_home/」の内容が表示されます。

$ az storage file list -s aci-jenkins -o table
Name                      Content Length    Type    Last Modified
------------------------  ----------------  ------  ---------------
.cache/                                     dir
.java/                                      dir
copy_reference_file.log   3926              file
failed-boot-attempts.txt  29                file
jobs/                                       dir
plugins/                                    dir
secret.key                64                file
secret.key.not-so-secret  0                 file
war/                                        dir

3-3. IPアドレスの確認

az container show \
--resource-group jenkinsResource \
--name aci-jenkins \
--query ipAddress.ip \
--output tsv

3-4. 起動の確認

前項で出力されたIPアドレスとポート8080をブラウザに入力すると・・・

20190605054130.png

Jenkinsの画面が表示されました!

4. Jenkinsの設定

4-1. Unlock Jenkins

前項の画面の後、初期パスワードを入力する画面が表示されます。
解除するには画面に表示されている通り「var/jenkins_home/secrets/initialAdminPassword」に記載されている値を入力します。

20190605054038.png

Cloud Shell セッションにファイルをダウンロードします。

az storage file download -s aci-jenkins -p secrets/initialAdminPassword

ダウンロード後、catコマンドを実行するとパスワードの値が出力されます。

$ cat initialAdminPassword

Jenkinsに戻ってパスワードを入力すると、初期設定画面に進みます。

20190605054848.png

※上記画面で「Install suggested plugins」を入力したあと、
「No valid crumb was included in the request」というエラーが表示されましたが、
Retryボタンを押すと次に進みました。

以上、Azure Container InstancesでJenkinsを立ち上げるでした。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?