SkyHopper v1.15.2の評価用AMI公開しました

全国1億人のSkyhopperファンの皆様(願望)お待たせしました。
SkyHopper v.1.15.2についてWebでのインストーラが起動するところまでの準備が終わったAMIの作成を行いました。
組織によっては運用ポリシー、セキュリティポリシーが異なると思いますのでご評価という位置付けでのご利用をお待ちしております。

この機会を利用してより多くの方の評価を頂けますとチーム一同大変うれしいです。

3/30にChefServerへの登録ができなくなりました。対応を致しましたので下記の「はじめに」を一読ください。

はじめに

お約束ですが、
本記事は AMI名: SkyHopper2016.03.28v1.15.2.evaluation.image (ID:ami-4012052e) を元に書いてあります。
なんらかの事情でこのAMIの公開を取りやめを行うなど将来にわたっての利用のお約束はできません、また手順の変更が発生しうることをご了承ください。
また本記事の手順や公開内容につきましては無保証とさせていただきます。

ChefServerへの登録が失敗する不具合について

3/30にChef社のパッケージ配布の仕様に変更があったことを確認しましたので対応を実施しました。
対応前に既にChefServerまで構築が終わっている方は下記の手順に従ってください。
なお、これから構築する方(これからインストーラを実行する方)には不要です。

ChefServerへログイン(SkyHopperではありません)

$ cd /opt/chefserver-internal-bootstrap-addon/
$ sudo git pull
$ sudo chef-server-ctl restart

これでChefServerへの登録が可能になります。

*参考:https://github.com/skyarch-networks/chefserver-internal-bootstrap-addon#update

事前準備

AWS

  • AWSのアカウントのご用意
  • APIキー、シークレットキーが必要となりますのでコントロールパネルから作成をお願いします
  • 必要に応じてサポートページからのEC2,EIP,CloudFormationの上限緩和申請

SkyHopperはシステムとしては標準で

  • SkyHopper
  • ChefServer
  • Zabbix Server

の3つのインスタンスが必要となります。
そのため、デフォルトでのAWSアカウントでは作成できるEC2やEIP,CloudFormationの使用できる数の上限にあたりやすくなっております。
すでにお使いの環境であれば余裕があるかどうかのご確認をおすすめします。
状況を見て上限緩和の申請をAWSのサポートへご依頼頂くようにお願いいたします。

インスタンスの作成

さっそくSkyHopperのインスタンスを作成しましょう。

通常どおりインスタンスの作成を選択してください。
skyhopper2016-03-28_16_09_56

AMIの選択

左のメニューから「コミュニティAMI」を選択しましょう。
skyhopper2016-03-28_16_10_14

検索窓がありますので、そちらに「skyhopper」(大文字小文字の区別は気にしなくて問題ありません)を入力してエンターを押してください。複数の結果が表示されると思いますが、そのうち「ami-4012052e」と書かれているものが本記事での対象となるamiですので、その右の「選択」を押しましょう。
skyhopper2016-03-28_16_10_43

インスタンスタイプの選択

インスタンスタイプの選択画面になりますが、t2.smaill以上でのインスタンスを選択してください。もちろん管理する対象や同時に利用するユーザ等によって快適と言えるスペックは変動することがあります。
skyhopper2016-03-28_17_19_27

続いてステップ3の画面になりますが、こちらは特に変更しなくても問題ありません。
skyhopper2016-03-28_16_34_03

ストレージの設定

ストレージの設定画面になります。こちらもデフォルトの10GBもあれば評価に問題無いと考えています。
実運用時にはログの量や管理するプロジェクト、インフラの量に影響を受けます。
skyhopper2016-03-28_16_34_11

タグ付け

ステップ5のタグ付けについては、必須ではありませんが自分の作成したインスタンスがわかりやすく名前をつけておくことをお勧めします。
skyhopper2016-03-28_16_34_34

セキュリティグループの設定

ステップ6はセキュリティグループの設定です。こちらは少々気をつけるポイントがあります。

  • Webアプリケーションなのでインバウンドは80を有効にしてください。
  • ZabbixでSkyHopper自身も管理する場合には10050を通してください。
  • セキュリティポリシーに応じてソースとなるアドレスは絞ってください。
skyhopper2016-03-28_16_34_55

設定内容の確認と作成実行

サマリーの画面になりますので設定内容が意図した通りになっているかを確認の上作成ボタンを押しましょう。
skyhopper2016-03-28_16_35_09

キーペアの選択。こちらはSkyHopper専用でも構いませんし既存でも構いません。既存の場合にはコンパネに登録されているキーペアを選択してください。

skyhopper2016-03-28_16_35_18

作成したインスタンスを確認しましょう。
下記のようにパブリックIPが割り振られていることが確認できると思います。こちらをメモしておきましょう。
skyhopper2016-03-28_16_37_25

インストーラの実行

割り当てられたPublic IPアドレスに対してブラウザでアクセスしてみましょう。インストーラが起動します。
インスタンスのサイズにも依りますがアプリケーションが起動するのに1分程度は掛かる可能性があります。
Bad Gatewayが表示されても落ち着いて、少し時間をあけてアクセスしてみてください。
インストーラが起動したことを確認できましたら各項目を埋めていきます。

skyhopper-2016-03-28_18.25.29

システムの設定

ログの保存先のパス

この評価用のイメージではアプリケーション専用のユーザskyhopperでアプリケーションサーバが起動しています。
そのため、skyhopperで読み書きが可能なディレクトリを指定してください。
アプリケーションは /app/skyhopperにインストールされていますので
/app/skyhopper/log を指定するとよいでしょう。

AWSの設定

APIキー、APIシークレット

SkyHopperのシステム自身が利用するAPIキー、APIシークレットキーを登録します。
AWSのAPIを用いてChefServerやZabbixサーバのEC2インスタンスを作成するのに利用します。
SkyHopperを作成したアカウントで発行して頂いて問題無いです。

使用するリージョン

APIキー、APIシークレットを発行したリージョンを指定してください。

使用する鍵ペア

すでにAWSで使用されているec2-userの鍵を指定してください。
(鍵ぺアの作成ができるような文言になっていますが、現在ここでは作成できません。すみません。)
ドラッグ&ドロップの際には問題が無いと思いますが、ここの鍵ペア名はAWSのコンパネに登録されている鍵の名前です。
ローカルで持っているpemファイルのファイル名ではありませんのでご注意ください。
(通常は拡張子pemを取ったものが鍵名になっていることが多いと思います)

すべての項目が埋まりましたら、[ChefServerの構築]ボタンを押しましょう。

skyhopper__2016-03-29_10_20_56

作成されている様子がプログレスバーとして表示されますので少々おまちください。
skyhopper_2016-03-29_10.25.41

skyhopper_2016-03-29_10.27.07 skyhopper_2016-03-29_10.38.23

作成が終わりますと上記のようにグリーンの表示でChefの鍵を設定するように指示がでますので生成された鍵をコピーしましょう。このAMIではskyhopperユーザでのアプリケーション起動を行いますのでskyhopperのホームディレクトリにコピーする必要があるということを留意ください。

$ sudo su - skyhopper
最終ログイン: 2016/03/29 (火) 00:55:02 UTC日時 console
$ id
uid=800(skyhopper) gid=800(skyhopper) groups=800(skyhopper)
$ cd /app/skyhopper/
$ pwd
/app/skyhopper
$ cp -r tmp/chef ~/.chef

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

$ id
uid=800(skyhopper) gid=800(skyhopper) groups=800(skyhopper)
$ pwd
/app/skyhopper
$ scripts/skyhopper_daemon.sh  stop
===== Kill Rails/Sidekiq/Websocket Servers
$ scripts/skyhopper_daemon.sh  start
===== Generating i18n-js dictionary
===== Precompile assets
===== Start Rails/Sidekiq/Websocket servers

ここまで終わればWeb画面に戻って完了ボタンをおしましょう。
skyhopper_2016-03-29_11_16_09

Cookbook/Roleのアップロード

SkyHopperが/app/skyhopperにインストール済みの環境なので、Cookbookを/app 以下に cloneしますが、必要なcookbookはすでに/app/skyhopper_cookbooksにダウンロードを行ってあります。
それを作成されたChef Serverへuploadしてください。

クックブックをアップロード

$ pwd
/app/skyhopper
$ id
uid=800(skyhopper) gid=800(skyhopper) groups=800(skyhopper)
$ bundle exec knife cookbook upload -ao ../skyhopper_cookbooks/cookbooks/
Uploading 7-zip        [1.0.2]
(略)
Uploading yum-epel     [0.3.6]
Uploading yum-mysql-community [0.1.8]
Uploading zabbix       [0.0.42]
Uploaded all cookbooks.

ロールのアップロード

ロールも同様にアップロードします。

$ bundle exec knife role from file ../skyhopper_cookbooks/roles/*rb
Updated Role zabbix_agent!
Updated Role zabbix_server!

サインアップ

まずは管理者としてのアカウントが必要となりますので下記の画面からアカウントを作成してください。
skyhopper_2016-03-29_11_21_56

skyhopper_2016-03-29_11_25_03

SkyHopperで使用するZabbix Serverのデプロイ

現在のSkyHopperの動作については監視をするしないに関わらずZabbixサーバは必須です。
そのためまずはZabbixサーバを構築する必要があります。
もちろんChefServerを用いて簡単に構築ができますので始めましょう。

管理アカウントを作成してログインを行った際にはすでに顧客コードの「SkyHopper」が存在しています。こちらの顧客に含まれるものはシステムとして利用するインフラの管理領域となっています。

「案件一覧」のボタンを押してみましょう。
skyhopper_makezabbix_1_2016-03-29_11_26_43

3つの案件コードが確認できますのでZabbixServerの「インフラ一覧」を押しましょう。
skyhopper_makezabbix_2016-03-29_11_46_23

スタックが確認できますので、「詳細」ボタンを押してください。
skyhopper_makezabbix_2_2016-03-29_11_35_11

下記のようにEC2の詳細が表示されると思います。まずはインスタンスをChefServerに登録する必要があるので「ChefServerへ登録」ボタンを押して登録しましょう。

SkyHopper_regist_Chef_2016-03-29_11_53_21
登録が成功すると下記のようなメッセージダイアログが表示されます。
SkyHopper_registed_Chef_2016-03-29 11.56.38

ChefServerへ登録が終わるとChefの機能が使えるようになります。「Runlistの編集」ボタンを押しましょう。
SkyHopper_runlist_2016-03-29_12_00_34

Runlistの編集画面に遷移しますので、目的のZabbixServerを設定しましょう。
SkyHopper_edit_runlist_2016-03-29_12_04_15

編集されたRunlistが表示されていればOKです。
SkyHopper_ZabbixServer_cook_2016-03-29 12.08.45

いよいよChefを用いた構築の実行です。「Cook」のボタンを押しましょう。こちらのインタフェースは標準ではWhy-runでの実行という実際に変更処理が行われないようになっていますので、ボタンの右端の矢印をクリックして「Cook」を選択してください。
SkyHopper_ZabbixServer_cook2_2016-03-29_12_10_31

Cookを始めると下記のようにリアルタイムに設定反映を行っている様子がみてとれます。
(ただしWebSocketを用いた通信をおこなっているため、Firewall/Proxyなどの影響でうまく表示されない環境もあるようです。)
SkyHopper_ZabbixServer_ 2016-03-29 12.17.11

下記のように「Success」という表示になればZabbixServerの構築は完了です。
SkyHopper_ZabbixServer_built_2016-03-29_12_20_06

ZabbixServerアカウントの登録

SkyHopperではAPIを用いてZabbixServerの操作を実施します。
そのためZabbixのAdminのアカウントを登録する必要があります。画面上部の「設定」からZabbixServerを選択しましょう。
SkyHopper_regist_zabbixserver_2016-03-29_12_23_58

アカウント情報を入力しましょう。
SkyHopper_regist_zabbixserver2_2016-03-29 12.26.20
なお、Chefを用いた構築時のデフォルトではAdmin/ilikerandompasswordsとなっていますが、ZabbixServerへログインを行って変更されたのちに登録することをおすすめします。

以上ですおつかれさまでした!
以上で利用を始めるまでの作業は終了です。

この次は、非管理者のアカウントを作成したり、独自のCookbookを作成、プロジェクトの作成。
などといった流れになると思います。

楽しいAWSライフを!

投稿者プロフィール

えんじにあん
インフラ系のエンジニアです。
運用系のスクリプトを書いたり、オートメーションな世界に向かって日々精進しています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.

ABOUTこの記事をかいた人

インフラ系のエンジニアです。 運用系のスクリプトを書いたり、オートメーションな世界に向かって日々精進しています。