DigitalOceanでのRiggerを使用したDeisの展開

提供:Dev Guides
移動先:案内検索

Deisからの記事

序章

Deisは、独自のサーバーでのアプリケーションの展開と管理を簡素化するオープンソースのプライベートPlatform as a Service(PaaS)です。 DockerやCoreOSなどのテクノロジーを活用することで、Deisは、選択したホスティングプロバイダーで、Herokuと同様のワークフローとスケーリング機能を提供します。 DeisはDockerコンテナで実行できるアプリケーションをサポートし、DeisはCoreOSをサポートする任意のプラットフォームで実行できます。

このガイドでは、Deisプロジェクトの新しいツールであるRiggerを使用して、新しく改善されたDeisプロビジョニングプロセスについて説明します。

プレビュー

時間がない場合は、この高速化されたターミナルレコーディング(約1分程度です!)は、この記事の残りの部分で何をするかを示しています。

[1]

前提条件

Riggerは独自の依存関係管理を処理するように設計されていますが、Deisクラスターをプロビジョニングする前にいくつかの設定を行う必要があります。 自宅でこのガイドに従うには、次のものが必要です。

このチュートリアルのすべてのコマンドは、ローカルのMacまたはLinuxワークステーションで実行できます(OS X> =10.10およびDebian/Ubuntuがテストされました)。 ドロップレットで実行することもできますが、必須ではありません。

zipmake、およびgitユーティリティは、RiggerでDeisクラスターをプロビジョニングするために使用するワークステーションにインストールする必要があります。

たとえば、Ubuntuシステムを使用している場合は、次のコマンドを使用してインストールします。

sudo apt-get update
sudo apt-get install zip make git

gitユーティリティは、Riggerとサンプルアプリケーションをダウンロードするための記事を通じて使用されます。 zipおよびmakeユーティリティは、Riggerプロビジョニングスクリプトによって使用されます。

Mac OS Xを実行している場合、gitを使用するにはXcodeライセンス契約にも同意する必要があります。

sudo xcodebuild -license

注:この記事はDeisバージョン1.12.0用に作成されました。


ステップ1—Riggerをインストールする

Riggerをインストールするには、最初にgitを使用してダウンロードします。

git clone https://github.com/deis/rigger.git

作成したディレクトリに移動します。

cd rigger

次に、次のコマンドを実行します。

./rigger

最初に実行すると、次のように表示されます。

OutputDownloading rerun from GitHub...

出力の最後に、使用可能なコマンドのリストが表示されます。

OutputAvailable commands in module, "rigger":
checkout: "checkout the Deis repo with version: $VERSION into directory: $DEIS_ROOT"
configure: "initialize a rigger varsfile to use with future commands"
   [ --advanced]: "configure all the nitty gritty details of the infrastructure and Deis deployment"
   [ --provider <>]: "which cloud provider to use to provision a Deis cluster"
   [ --version <>]: "choose what version of Deis to deploy"
create-registry: "Create a local dev registry"
deploy: "Install and Deploy Deis"
destroy: "destroy all infrastructure created by the provision step"
provision: "provision new infrastructure and deploy Deis to it"
   [ --cleanup]: "destroy cluster after action"
setup-clients: "download and stage deisctl and deis clients for your own use"
shellinit: "show the current sourceable environment variables (useful for eval-ing)"
   [ --file <>]: "use a specific file"
shell-reset: "an eval-able output that unsets variables that have been injected by rigger"
   [ --file <>]: "use a specific file"
test: "run a test suite on the provisioned Deis cluster"
   [ --type <smoke>]: "provide a type of test to run"
upgrade: "Tests upgrade path for Deis"
   [ --to <master>]: "Define version of Deis to upgrade to"
   [ --cleanup]: "destroy cluster after action"
    --upgrade-style <graceful>: "choose the style of upgrade you'd like to perform"

ステップ2—Deisデプロイメントの構成

DigitalOceanをプロバイダーおよび特定のバージョンのDeisとして使用するようにDeisデプロイメントを構成するには、次を呼び出すだけです。

./rigger configure --provider "digitalocean" --version "1.12.0"

その後、リガーはあなたにいくつかの質問をします。 すべて次のようになります。

Output-> What DigitalOcean token should I use? DO_TOKEN (no default)
[enter or paste your DigitalOcean token here]
You chose: ******

-> Which private SSH key should be used? SSH_PRIVATE_KEY_FILE [ /Users/sgoings/.ssh/id_dsa ]
1) /Users/sgoings/.ssh/id_dsa
2) ...
#? [enter a number]
You chose: 1) /Users/sgoings/.ssh/id_dsa

... output snipped ...

Enter passphrase for /Users/sgoings/.ssh/id_dsa: [enter your ssh passphrase]

Rigger has been configured on this system using ${HOME}/.rigger/<id>/vars
To use the configuration outside of rigger, you can run:

  source "${HOME}/.rigger/<id>/vars"

あなたはすべて難しい部分で終わりました!

ステップ3—利益!

より正確には、riggerを実行してDigitalOceanにインフラストラクチャをプロビジョニングしてから、Deisをデプロイします。

私たちがする必要があるのは実行することだけです:

./rigger provision

警告: Mac OS XでRiggerを実行している場合、次のエラーメッセージが表示される場合があります。

Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.

その場合は、前提条件のセクションで説明されているように、sudo xcodebuild -licenseコマンドを使用してXcodeライセンスに同意する必要があります。


DigitalOceanでのRiggerを使用したDeisプロビジョニングプロセスには約15分かかり、次のようになります。

  1. Terraform は自動的にダウンロードされ、${HOME}/.riggerにインストールされて、Riggerで使用できるようになります。
  2. Deisクライアント(deisおよびdeisctl)は${HOME}/.rigger/<id>/binsにダウンロードされます
  3. Terraform は、DigitalOceanで3つのCoreOSドロップレットをプロビジョニングするために使用されます
  4. DEISCTL_TUNNELは、新しくプロビジョニングされたDigitalOceanドロップレットの1つを調査することによって決定されます
  5. xip.io は、クラスターへの単純なDNSエントリポイントを設定するために使用されます
  6. deisctl install platformが実行されます
  7. deisctl start platformが実行されます

警告: DigitalOceanでインフラストラクチャをプロビジョニングするときに次のエラーが表示される場合は、DOアクセストークンが読み取り/書き込みであることを確認してください。

3 error(s) occurred:

* digitalocean_droplet.deis.1: Error creating droplet: Error creating droplet: API Error: 403 Forbidden
* digitalocean_droplet.deis.0: Error creating droplet: Error creating droplet: API Error: 403 Forbidden
* digitalocean_droplet.deis.2: Error creating droplet: Error creating droplet: API Error: 403 Forbidden

その後、./rigger provisionを再度実行できます。


ステップ4—プレイタイム!

Riggerを使用してDeisクラスターを作成したら、それにアプリをデプロイする必要があります。

まず、空きディレクトリスペースに戻ります。

cd ../

次に、Deisプロジェクトからサンプルアプリを入手します。

git clone https://github.com/deis/example-nodejs-express.git

新しく作成したディレクトリに移動します。

cd example-nodejs-express

すべてのrigger環境変数をこのシェルにロードします。

source "${HOME}/.rigger/<id>/vars"

次に、このDeisクラスターに管理者アカウントを登録します。

deis auth:register http://deis.${DEIS_TEST_DOMAIN}

アカウントを作成するための情報の入力を求められます。

Outputusername: [ enter a username ]
password: [ enter a password ]
password (confirm): [ enter the same password ]
email: [ enter an email for this user ]
Registered <username>
Logged in as <username>

公開鍵をDeisクラスターに追加します。

deis keys:add

次のように表示されます。

OutputFound the following SSH public keys:
1) deiskey.pub deiskey
2) id_dsa.pub sgoings
0) Enter path to pubfile (or use keys:add <key_path>)
Which would you like to use with Deis? [ enter number ] 

rigger configureステップで選択した秘密鍵と一緒に使用する公開鍵を選択する必要があります。

Deisクラスターを指すgitリモートを追加します。

deis apps:create

次のように表示されます。

OutputCreating Application... done, created hearty-kingfish
Git remote deis added
remote available at ssh://git@deis.${DEIS_TEST_DOMAIN}:2222/hearty-kingfish.git

今、それを押してください!

git push deis master

これにはしばらく時間がかかる場合があります。 最終的に、出力の最後に次のように表示されます。

Output-----> Launching...
       done, hearty-kingfish:v2 deployed to Deis

       http://hearty-kingfish.${DEIS_TEST_DOMAIN}

       To learn more, use `deis help` or visit http://deis.io

さあ、そのURLをブラウザにロードしてください! (アプリは非常にシンプルで、「Powered byDeis」と出力するだけです)

ステップ5—すべてをノックダウンします!

派手な新しいDeisクラスターを少し試してみたら、すべてを分解することをお勧めしますね。 それは簡単です。

riggerディレクトリに戻ります。

cd ../rigger

次に、それを破壊します:

./rigger destroy

結論

このガイドでは、開発者、オペレーター、およびオープンソースの貢献者の生活を楽にするためにDeisチームがどこに向かっているのかを知ることができました。 Deis クラスターのプロビジョニングは、インフラストラクチャプロバイダーとしての Terraform と超高速のDigitalOceanの組み合わせのおかげで、Riggerで簡単にプロビジョニングできるようになりました。