SkyHopper 1.9.0リリース
12月8日にSkyHopperのリリースを実施しました。
今年最後の正式リリース版という扱いです。
pre releaseを継続して行っているため目新しさはあまり無いかもしれませんが利便性をあげるべく工夫のつまったツールとなっています。
ぜひお試し頂けると幸いです。
(git的にはタグを打っただけですけどね)
以前の記事や、githubのドキュメントと繰り返しにはなりますが、
インストールのやり方がわからないという声をお聞きする機会もありましたので
スクリーンショットを混ぜてインストールの流れを作成しました。
githubのドキュメントとあわせて参照して頂けますと幸いです。
インストール作業
環境
SkyHopper自体はAWSに作成しなくとも動作しますが、ここではAWSを用います。
また、Amazon Linux 2015.09.1(HVM)版を使用します。
SkyHopper用のインスタンスの作成
自動化のツールではありますが、さすがに自身のインスタンスを自動で作成できるテクノロジが現在ありませんので(日本のMarketplaceが実現できる日を期待しています)インスタンスを作成します。
Amazon Linux 2015.09.1(HVM)版を選択します。

smallサイズ以上なら現在起動する事を確認しています。

Diskのサイズは20GiBであれば余裕です。(もっと少なくても評価はできます)

運用面では分かりやすくタグを付けておくことをおススメします。

あたりまえですが、WebのアプリケーションなのでHTTPでアクセスできるようにセキュリティグループの設定をしてください。
SSHはちゃんと運用する際には絞ってください。

インスタンスが作成されましたでしょうか?
アプリケーションのデプロイ
Ruby環境の整備
SkyHopperはruby2.2を必要とします。そのためデフォルトでインストールされているrubyを一旦アンインストールします。
(既存のRubyと2.2が干渉する事が確認されているため、アンインストールをおすすめします)

無事にアンインストールができましたら2.2をインストールしましょう。

Node.js環境の整備
Node.jsをインストールしましょう。標準リポジトリのものではバージョンが古いのでepelを利用します。

スクリーンショットのようなバージョンが確認されるとOKです。

必要パッケージの追加
動作環境にはたくさんのパッケージが必要です。yumのgroupinstallで一気に入れてしまいましょう。


Redisをインストールします。

リバースプロクシの設定
Webアクセスをアプリケーションサーバ(Ruby On Rails)と繋ぐためにリバースプロクシの設定を行います。
またSkyHopperはWebSocketを活用していますので、HTTPとWebSocketの使い分けにも利用しています。

データベースの準備
githubでのドキュメントで問題ありませんが、ここでは念のためにmy.cnfに文字コードの設定を行っています。

デーモンの起動
Redis, MySQL Server, Nginxを起動します。

SkyHopperのダウンロード
SkyHopper本体のソースコードをCloneします。Tag v1.9.0が今回のリリースですが、現時点ではmasterと同じなのでそのままcloneして利用します。
なお、この手順では/appにcloneしています。

データベースの設定
アプリケーションで利用するDBのテーブル、アカウントを設定します。
Githubのドキュメントでは下記の様にdevelopとproductionの両方の準備をしていますが、どちらかのみで良い場合には適宜省略してください。

Rubyのgemのインストール
gemはrubyのbundlerで管理していますのでbundleでインストールします。

フロント系ライブラリのインストール
フロント系のライブラリはbowerで管理しています。まとめてインストールします。

ビルド
gulpを用いてビルドします。
まずglupのインストール。

アプリケーションのDB設定
ymlファイルを書き換えます。
アプリケーションの起動
この工程でアプリケーションの構築が終わりです。
起動してインストーラで設定しましょう。
インストーラ
ブラウザでアクセスすると、インストーラが起動します。
こちらを埋めましょう。ログのディレクトリはアプリケーションを起動するユーザで読み書きできる場所を指定してください。
この例では/app/skyhopper/logに設定しました。

必要な項目が埋まりましたらChefServerを構築しましょう。

ここまできたら、コンソールで鍵の設置を行います。

鍵のコピーが終わったら再起動しましょう。

管理者アカウントの作成
まず管理者アカウントの作成を求められます。
この管理者を元にアカウントを発行して多人数での利用を想定しています。

Cookbookのアップロード
弊社がGithubで公開しているCookbookは最低限ですが、SkyHopperのシステムとして利用するZabbixサーバの構築に必要なものが含まれています。
ダウンロードしてChefServerに登録しましょう。
この例ではダウンロード先は/appとしました。

knifeを用いてChefServerに登録します。
buldlerを用いて実行するため、SkyHopperのディレクトリ内で実行する必要があることにご注意ください。

Zabbix Serverの作成
SkyHopperはZabbixと連携して動作するようになっていますので、Zabbixが必要です。
インスタンスは既に作成されていますので、Zabbixをインストールするところから実施します。
しかし、既にSkyHopperもChefServerも構築済みであるためChefを用いて構築を実施することができます。
案件SkyHopperの中のインフラでZabbixと表示されている項目を選択します。

ChefServerに登録するボタンがあるので登録しましょう。

ChefServerへ登録が行われるとRunlistの編集が可能になります。

ロールのZabbix Serverを選択しましょう。これさえあれば構築ができます。

Runlistが確認できましたらCookして反映させてください。

Zabbix Serverとの連携
SkyHopperからZabbixサーバをAPIで操作するためにアカウントの登録が必要となります。画面上部の設定からZabbix Serverを選択してください。

こちらにadmin権限のあるユーザ(通常admin)とパスワードを登録してください。

お疲れさまでした。
以上でSkyHopperの構築は終わりです。
よい自動化ライフを!
投稿者プロフィール
-
インフラ系のエンジニアです。
運用系のスクリプトを書いたり、オートメーションな世界に向かって日々精進しています。
最新の投稿
Apache2016年6月24日ApacheWebServerで圧縮転送の設定
AWS2016年5月17日SkyHopperのインストーラで作成するChef Serverについてのご注意
AWS2016年3月29日SkyHopper v1.15.2の評価用AMI公開しました
AWS2016年3月8日SkyHopperのプロダクトページを作成しました









