LoginSignup
21
10

More than 5 years have passed since last update.

マルチクラウド継続型デリバリープラットフォーム「Spinnaker 1.0」をインストールしてみた

Last updated at Posted at 2017-07-21

■ 1. はじめに

Spinnaker 1.0がリリースされたので、さわってようと思いインストールしてみました。
この際1.0で追加された機能『Halyard』を使ったので、手順を記述します。

Spinnakerとは?
・Spinnakerのホームページ
https://www.spinnaker.io/
・Spinnakerの説明が記載されているページ
https://cloudplatform-jp.googleblog.com/2017/06/spinnaker-10-continuous-delivery.html

■ 2. Halyardとは?

ざっくり説明すると、Spinnakerのインストール、アップデート、設定変更を補助するCLIツールです。後述しますが、Halyardを利用することで簡単にSpinnakerをインストールできます。

■ 3. Halyardでインストールしてみる

今回のインストールは、GCPで起動したインスタンスで行いました。
手順はSpinnakerが公開しているドキュメント通りに実施します。

・インスタンスの作成

ゾーン:任意のリージョン
OS:Ubuntu 14.04
マシンタイプ:vCPU×4(メモリ26GB、n1-highmem-4)
アクセス範囲:すべての Cloud API に完全アクセス権を許可
ファイアウォール:HTTP トラフィックを許可する/HTTPS トラフィックを許可する

・Google SDKの認証

詳細は割愛しますが、Spinnakerをインストールするインスタンスで以下のコマンドで認証を行います。


$ gcloud auth login
$ gcloud config set project "GCPのプロジェクト名"
・Halyard をインストール

$ curl -O https://raw.githubusercontent.com/spinnaker/halyard/master/install/stable/InstallHalyard.sh

$ sudo bash InstallHalyard.sh

"Halyardのバージョンが最新であることを確認"
$ hal -v

$ . ~/.bashrc

$ sudo apt-get update

$ sudo apt-get upgrade spinnaker-halyard
・Halyard のインストールタイプを選択

"HalyardをインストールしたサーバでSpinnakerをインストールすることを選択"
$ hal config deploy edit --type localdebian
・ストレージの設定(今回はGoogle Cloud Storageを選択)

$ SERVICE_ACCOUNT_NAME=spinnaker-gcs-account

$ SERVICE_ACCOUNT_DEST=~/.gcp/gcs-account.json

$ gcloud iam service-accounts create \
>     $SERVICE_ACCOUNT_NAME \
>     --display-name $SERVICE_ACCOUNT_NAME

$ SA_EMAIL=$(gcloud iam service-accounts list \
>     --filter="displayName:$SERVICE_ACCOUNT_NAME" \
>     --format='value(email)')

$ gcloud projects add-iam-policy-binding "自分のプロジェクト名" \
>     --role roles/storage.admin --member serviceAccount:$SA_EMAIL

$ mkdir -p $(dirname $SERVICE_ACCOUNT_DEST)

$ gcloud iam service-accounts keys create $SERVICE_ACCOUNT_DEST \
>     --iam-account $SA_EMAIL

$ hal config storage gcs edit --project "自分のプロジェクト名" \
>     --bucket-location "バケットのロケーション" \
>     --json-path $SERVICE_ACCOUNT_DEST

$ hal config storage edit --type gcs
:
+ Successfully edited persistent storage. 
・SpinnakerにGoogle Compute Engineの操作権限を付与

$ SERVICE_ACCOUNT_NAME=spinnaker-gce-account

$ SERVICE_ACCOUNT_DEST=~/.gcp/gce-account.json

$ gcloud iam service-accounts create \
>     $SERVICE_ACCOUNT_NAME \
>     --display-name $SERVICE_ACCOUNT_NAME

$ SA_EMAIL=$(gcloud iam service-accounts list \
>     --filter="displayName:$SERVICE_ACCOUNT_NAME" \
>     --format='value(email)')

$ gcloud projects add-iam-policy-binding "自分のプロジェクト名" \
>     --member serviceAccount:$SA_EMAIL \
>     --role roles/compute.instanceAdmin 

$ gcloud projects add-iam-policy-binding "自分のプロジェクト名" \
>     --member serviceAccount:$SA_EMAIL \
>     --role roles/compute.networkAdmin 

$ gcloud projects add-iam-policy-binding "自分のプロジェクト名" \
>     --member serviceAccount:$SA_EMAIL \
>     --role roles/compute.securityAdmin

$ gcloud projects add-iam-policy-binding "自分のプロジェクト名" \
>     --member serviceAccount:$SA_EMAIL \
>     --role roles/compute.storageAdmin

$ gcloud projects add-iam-policy-binding "自分のプロジェクト名" \
>     --member serviceAccount:$SA_EMAIL \
>     --role roles/iam.serviceAccountActor

$ mkdir -p $(dirname $SERVICE_ACCOUNT_DEST)

$ gcloud iam service-accounts keys create $SERVICE_ACCOUNT_DEST \
>     --iam-account $SA_EMAIL

$ hal config provider google enable

$ hal config provider google account add my-gce-account --project "自分のプロジェクト名" \
>     --json-path $SERVICE_ACCOUNT_DEST
:
+ Successfully added account my-gce-account for provider
  google.
・デプロイ

$ hal version list
:
? Options include: 
  - X.X.X "Spinnakerのバージョンをメモする。"

$ hal config version edit --version "Spinnakerのバージョン"

$ sudo hal deploy apply
:
spinnaker start/running

"Spinnakerプロセスが起動していることを確認"
$ status spinnaker
spinnaker start/running
・ポートフォワード

SpinnakerのGUIはlocalhostの9000番で起動します。そのため、9000番ポートにポートフォワードします。
(Spinnakerの仕様上、8084番,8087番も併せてポートフォワードする必要があります。)

ひとつの例として、Google Cloud SDKを使用した方法をご紹介します。
まず、ローカルマシン(今回はWindows)にGoogle Cloud SDKをインストールします。
https://cloud.google.com/sdk/?hl=ja
次に、インストールされた「Google Cloud SDK Shell」を開き、以下のコマンドを入力します。


> gcloud auth login
> gcloud config set project "GCPのプロジェクト名"
> gcloud compute ssh --ssh-flag="-L" --ssh-flag="9000:localhost:9000" --ssh-flag="-L" --ssh-flag="8084:localhost:8084" --ssh-flag="-L" --ssh-flag="8087:localhost:8087" --project="自分のプロジェクト名" --zone="インスタンスのリージョン" "インスタンス名"

■ 4. Spinnakerに接続してみる

ブラウザにhttp://localhost:9000 を入力して接続します。
3.png

GUIに接続できたら、右上のActionsプルタブより、Applicationなどの設定を行う事ができます。

2.png
BakeとDeployも実施できました!

■ 5. おまけ

Halyardを利用して、Spinnakerを監視するツール『Prometheus』を簡単に
インストールすることもできます。興味ある方は、ぜひ試してみてください。
https://www.spinnaker.io/setup/monitoring/prometheus/

4.png

21
10
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
21
10