マルチクラウド継続型デリバリープラットフォーム「Spinnaker 1.0」をインストールしてみた
■ 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 を入力して接続します。
GUIに接続できたら、右上のActionsプルタブより、Applicationなどの設定を行う事ができます。
■ 5. おまけ
Halyardを利用して、Spinnakerを監視するツール『Prometheus』を簡単に
インストールすることもできます。興味ある方は、ぜひ試してみてください。
https://www.spinnaker.io/setup/monitoring/prometheus/
Author And Source
この問題について(マルチクラウド継続型デリバリープラットフォーム「Spinnaker 1.0」をインストールしてみた), 我々は、より多くの情報をここで見つけました https://qiita.com/mztk/items/c45497ddc78be146dbb2著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .