Octopus Deploy を使ってみた(1)インストールと環境構築
クロスワープの大鷲です。
これまで MODD では、アプリケーションをデプロイする際に、自家製のスクリプト(バッチ ファイルや PowerShell スクリプト)を使ってきましたが、昨年から、一部のプロジェクトで試験的に Octopus Deploy を導入し評価をしております。
octopus.com
アプリケーションのデプロイ ツールはいくつもありますが、Octopus Deploy の特徴は、Windows / .NET アプリケーションとの親和性が高いという点です。
今後、いろいろな使い方を試していきたいと考えておりますが、とりあえず今回は、インストールと環境設定について紹介します。
インストールとセットアップ
公式サイトからダウンロードしましょう。
動作には SQL Server が必要ですが、無料の Express Edition でも構いません。あらかじめインストールしておきましょう。
ライセンスは評価用のものを自動取得します。
45 days と書いてありますが、この期限が過ぎても、Free Edition としては利用可能です。
ホーム ディレクトリを決めます。
書いてある通り、このディレクトリに設定ファイル等が置かれます。
サービス アカウントを決めます。
既存の SQL Server にアクセスする際に Windows 認証を使用しているとか、その他、社内リソースへのアクセスが必要な場合、Local System Account だと面倒なので Custom Domain Account を使うのがよいでしょう。
使用するデータベース サーバーを選択します。
サーバーだけ用意しておけば、データベースは、この時点で存在しなくても自動的に作成してくれます。
Web ポータルの URL とポートを決めます。
既に何らかの Web サーバーとして利用しているマシンにインストールする場合は、バッティングしないよう変更してください。
なお、ファイアーウォールのポートを自動で開けてくれるわけではないようなので、忘れずに開けておきましょう。
Web ポータルにアクセスする際のユーザー情報と管理者アカウントを設定します。
これが最後のステップです。チェックは両方ともつけておいてよいでしょう。
「Install」を押すとセットアップが始まります。
この画面が出ればセットアップは完了です。
Web ダッシュボードにアクセスしてみましょう。
Web ポータル
導入手順が書かれています。
「CREATE ENVIRONMENT」を押しましょう。
Environment
画面を見ればわかりますが、Environment とは、アプリケーションをデプロイするターゲット マシンの論理的なグループです。
「ADD ENVIRONMENT」を押し、まずは例に倣って「Development」というのを作ってみましょう。
作成した Environment にターゲット マシンを追加します。
「ADD DEPLOYMENT TARGET」を押しましょう。
Octopus Server とターゲット マシンが通信する方法を決めます。
今回は、オンプレミスの Windows マシンの想定なので、「Listenting Tentacle」を選びます。
Tentacle とは、ターゲット マシンにインストールするエージェントです。
「触手」という意味ですね。
Tentacle のインストーラーがダウンロードできます。
また、その下に表示されるランダムな文字列は、ターゲット マシンにインストールされた Tentacle が、サーバーが意図したものかどうかを検証するための指紋です。
後で使うのでコピペしておきましょう。
Tentacle のインストール
ここからしばらく、ターゲット マシンの画面の説明になります。
上のパスは Tentacle の設定やログが置かれるディレクトリで、下のパスはアプリケーションが配置される既定の場所です。
配置先は後でアプリケーションごとに変えることもできます。
Tentacle が Octopus Server と通信する方法を選びます。
先程、Web ポータル側で「Listenting Tentacle」を選んだので、それに合わせます。
Tentacle が Octopus Server からの接続を待ち受けるポートと、サーバーを識別するための指紋を入力します。
いずれも先ほどの Web ポータルの画面に表示されています。
以上で Tentacle のインストールは完了です。
Web ポータルに戻りましょう。
再び Web ポータル
ターゲット マシンのホスト名、ポート、プロキシを設定して、右上の「DISCOVER」を押すと、次のステップに移ります。
Octopus が識別するターゲット マシン名(必ずしもマシンの実際の名前である必要はありません)と、このマシンを割り当てる Environment と、1つ以上の Role を設定します。
Role とは、上の画面サンプルでは Web としていますが、その名の通り、サーバーの役割を表します。Environment と Role の組み合わせによって、そのマシンにデプロイされるものが決まります。
「SAVE」を押すと、ターゲット マシンの追加は完了です。
接続の確認とアップデート
「Connectivity」タブを選択すると、早速何か警告が出ています。
「UPGRADE CALAMARI」と表示されていますね。アップグレードしておきましょう。
Calamari とは、ターゲット マシンにインストールされるコンポーネントです。
Tentacle は Octopus Server との通信を担当するのみで、Tentacle によって起動され、実際にターゲット マシン上でデプロイ作業を行うのが Calamari です。
ちなみに意味は「イカ」です。
アップデート完了です。
このように、エージェントも Web ポータルから集中管理できますし、通常はアプリケーションをデプロイする際に自動的にサーバーからプッシュ配信されて更新されます。
ただし、それもサーバー側が最新版ならばの話です。
Octopus Deploy は非常に頻繁にアップデートされますので、ときどき Web ポータルを見て、画面右上のベルのアイコンをチェックしましょう。
いったん休憩
ここまでは特に迷うこともなく来れたと思います。
次回はアプリケーションを追加してみます。