Deisからの記事

序章

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

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

プレビュー

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

前提条件

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

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

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

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

  1. sudo apt-get update
  2. sudo apt-get install zip make git

The git ユーティリティは、Riggerとサンプルアプリケーションをダウンロードするために記事全体で使用されます。 The zipmake ユーティリティは、Riggerプロビジョニングスクリプトによって使用されます。

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

  1. sudo xcodebuild -license

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

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

Riggerをインストールするには、最初に git ダウンロードするには:

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

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

  1. cd rigger

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

  1. ./rigger

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

Output
Downloading rerun from GitHub...

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

Output
Available 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デプロイメントを構成するには、次を呼び出すだけです。

  1. ./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をデプロイします。

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

  1. ./rigger provision

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

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

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

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

  1. Terraform は自動的にダウンロードされ、にインストールされます ${HOME}/.rigger リガーが使用するため
  2. Deisクライアント(deisdeisctl)にダウンロードされます ${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クラスターを作成したら、それにアプリをデプロイする必要があります。

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

  1. cd ../

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

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

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

  1. cd example-nodejs-express

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

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

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

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

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

Output
username: [ 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クラスターに追加します。

  1. deis keys:add

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

Output
Found 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リモートを追加します。

  1. deis apps:create

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

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

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

  1. 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 ディレクトリ:

  1. cd ../rigger

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

  1. ./rigger destroy

結論

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