Octopus Deploy を使ってみた(1)インストールと環境構築

クロスワープの大鷲です。

これまで MODD では、アプリケーションをデプロイする際に、自家製のスクリプト(バッチ ファイルや PowerShell スクリプト)を使ってきましたが、昨年から、一部のプロジェクトで試験的に Octopus Deploy を導入し評価をしております。
octopus.com
アプリケーションのデプロイ ツールはいくつもありますが、Octopus Deploy の特徴は、Windows / .NET アプリケーションとの親和性が高いという点です。
今後、いろいろな使い方を試していきたいと考えておりますが、とりあえず今回は、インストールと環境設定について紹介します。

インストールとセットアップ

公式サイトからダウンロードしましょう。
動作には SQL Server が必要ですが、無料の Express Edition でも構いません。あらかじめインストールしておきましょう。

f:id:cw_owashi:20180129192408p:plain
ライセンスは評価用のものを自動取得します。
45 days と書いてありますが、この期限が過ぎても、Free Edition としては利用可能です。

f:id:cw_owashi:20180129192546p:plain
ホーム ディレクトリを決めます。
書いてある通り、このディレクトリに設定ファイル等が置かれます。

f:id:cw_owashi:20180129192705p:plain
サービス アカウントを決めます。
既存の SQL Server にアクセスする際に Windows 認証を使用しているとか、その他、社内リソースへのアクセスが必要な場合、Local System Account だと面倒なので Custom Domain Account を使うのがよいでしょう。

f:id:cw_owashi:20180129192951p:plain
使用するデータベース サーバーを選択します。
サーバーだけ用意しておけば、データベースは、この時点で存在しなくても自動的に作成してくれます。

f:id:cw_owashi:20180129193208p:plain
Web ポータルの URL とポートを決めます。
既に何らかの Web サーバーとして利用しているマシンにインストールする場合は、バッティングしないよう変更してください。
なお、ファイアーウォールのポートを自動で開けてくれるわけではないようなので、忘れずに開けておきましょう。

f:id:cw_owashi:20180129193315p:plain
Web ポータルにアクセスする際のユーザー情報と管理者アカウントを設定します。

f:id:cw_owashi:20180129193356p:plain
これが最後のステップです。チェックは両方ともつけておいてよいでしょう。
「Install」を押すとセットアップが始まります。

f:id:cw_owashi:20180129193626p:plain
この画面が出ればセットアップは完了です。
Web ダッシュボードにアクセスしてみましょう。

Web ポータル

f:id:cw_owashi:20180129200909p:plain
導入手順が書かれています。
「CREATE ENVIRONMENT」を押しましょう。

Environment

f:id:cw_owashi:20180129200930p:plain
画面を見ればわかりますが、Environment とは、アプリケーションをデプロイするターゲット マシンの論理的なグループです。
「ADD ENVIRONMENT」を押し、まずは例に倣って「Development」というのを作ってみましょう。

f:id:cw_owashi:20180129201031p:plain
作成した Environment にターゲット マシンを追加します。
「ADD DEPLOYMENT TARGET」を押しましょう。

f:id:cw_owashi:20180129201120p:plain
Octopus Server とターゲット マシンが通信する方法を決めます。
今回は、オンプレミスの Windows マシンの想定なので、「Listenting Tentacle」を選びます。
Tentacle とは、ターゲット マシンにインストールするエージェントです。
「触手」という意味ですね。

f:id:cw_owashi:20180129201202p:plain
Tentacle のインストーラーがダウンロードできます。
また、その下に表示されるランダムな文字列は、ターゲット マシンにインストールされた Tentacle が、サーバーが意図したものかどうかを検証するための指紋です。
後で使うのでコピペしておきましょう。

Tentacle のインストール

ここからしばらく、ターゲット マシンの画面の説明になります。

f:id:cw_owashi:20180129195952p:plain
上のパスは Tentacle の設定やログが置かれるディレクトリで、下のパスはアプリケーションが配置される既定の場所です。
配置先は後でアプリケーションごとに変えることもできます。

f:id:cw_owashi:20180129200134p:plain
Tentacle が Octopus Server と通信する方法を選びます。
先程、Web ポータル側で「Listenting Tentacle」を選んだので、それに合わせます。

f:id:cw_owashi:20180129201358p:plain
Tentacle が Octopus Server からの接続を待ち受けるポートと、サーバーを識別するための指紋を入力します。
いずれも先ほどの Web ポータルの画面に表示されています。

f:id:cw_owashi:20180129201511p:plain
以上で Tentacle のインストールは完了です。
Web ポータルに戻りましょう。

再び Web ポータル

ターゲット マシンのホスト名、ポート、プロキシを設定して、右上の「DISCOVER」を押すと、次のステップに移ります。

f:id:cw_owashi:20180129201926p:plain
Octopus が識別するターゲット マシン名(必ずしもマシンの実際の名前である必要はありません)と、このマシンを割り当てる Environment と、1つ以上の Role を設定します。
Role とは、上の画面サンプルでは Web としていますが、その名の通り、サーバーの役割を表します。Environment と Role の組み合わせによって、そのマシンにデプロイされるものが決まります。
「SAVE」を押すと、ターゲット マシンの追加は完了です。

接続の確認とアップデート

f:id:cw_owashi:20180129202144p:plain
「Connectivity」タブを選択すると、早速何か警告が出ています。
「UPGRADE CALAMARI」と表示されていますね。アップグレードしておきましょう。

Calamari とは、ターゲット マシンにインストールされるコンポーネントです。
Tentacle は Octopus Server との通信を担当するのみで、Tentacle によって起動され、実際にターゲット マシン上でデプロイ作業を行うのが Calamari です。
ちなみに意味は「イカ」です。

f:id:cw_owashi:20180129202234p:plain
アップデート完了です。
このように、エージェントも Web ポータルから集中管理できますし、通常はアプリケーションをデプロイする際に自動的にサーバーからプッシュ配信されて更新されます。
ただし、それもサーバー側が最新版ならばの話です。
Octopus Deploy は非常に頻繁にアップデートされますので、ときどき Web ポータルを見て、画面右上のベルのアイコンをチェックしましょう。

f:id:cw_owashi:20180129203335p:plain

いったん休憩

ここまでは特に迷うこともなく来れたと思います。
次回はアプリケーションを追加してみます。