全国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のインスタンスを作成しましょう。
AMIの選択
検索窓がありますので、そちらに「skyhopper」(大文字小文字の区別は気にしなくて問題ありません)を入力してエンターを押してください。複数の結果が表示されると思いますが、そのうち「ami-4012052e」と書かれているものが本記事での対象となるamiですので、その右の「選択」を押しましょう。
インスタンスタイプの選択
インスタンスタイプの選択画面になりますが、t2.smaill以上でのインスタンスを選択してください。もちろん管理する対象や同時に利用するユーザ等によって快適と言えるスペックは変動することがあります。
続いてステップ3の画面になりますが、こちらは特に変更しなくても問題ありません。
ストレージの設定
ストレージの設定画面になります。こちらもデフォルトの10GBもあれば評価に問題無いと考えています。
実運用時にはログの量や管理するプロジェクト、インフラの量に影響を受けます。
タグ付け
ステップ5のタグ付けについては、必須ではありませんが自分の作成したインスタンスがわかりやすく名前をつけておくことをお勧めします。
セキュリティグループの設定
ステップ6はセキュリティグループの設定です。こちらは少々気をつけるポイントがあります。
- Webアプリケーションなのでインバウンドは80を有効にしてください。
- ZabbixでSkyHopper自身も管理する場合には10050を通してください。
- セキュリティポリシーに応じてソースとなるアドレスは絞ってください。
設定内容の確認と作成実行
サマリーの画面になりますので設定内容が意図した通りになっているかを確認の上作成ボタンを押しましょう。
キーペアの選択。こちらはSkyHopper専用でも構いませんし既存でも構いません。既存の場合にはコンパネに登録されているキーペアを選択してください。
作成したインスタンスを確認しましょう。
下記のようにパブリックIPが割り振られていることが確認できると思います。こちらをメモしておきましょう。
インストーラの実行
割り当てられたPublic IPアドレスに対してブラウザでアクセスしてみましょう。インストーラが起動します。
インスタンスのサイズにも依りますがアプリケーションが起動するのに1分程度は掛かる可能性があります。
Bad Gatewayが表示されても落ち着いて、少し時間をあけてアクセスしてみてください。
インストーラが起動したことを確認できましたら各項目を埋めていきます。
システムの設定
ログの保存先のパス
この評価用のイメージではアプリケーション専用のユーザ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の構築]ボタンを押しましょう。
作成されている様子がプログレスバーとして表示されますので少々おまちください。
作成が終わりますと上記のようにグリーンの表示で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画面に戻って完了ボタンをおしましょう。
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で使用するZabbix Serverのデプロイ
現在のSkyHopperの動作については監視をするしないに関わらずZabbixサーバは必須です。
そのためまずはZabbixサーバを構築する必要があります。
もちろんChefServerを用いて簡単に構築ができますので始めましょう。
管理アカウントを作成してログインを行った際にはすでに顧客コードの「SkyHopper」が存在しています。こちらの顧客に含まれるものはシステムとして利用するインフラの管理領域となっています。
3つの案件コードが確認できますのでZabbixServerの「インフラ一覧」を押しましょう。
スタックが確認できますので、「詳細」ボタンを押してください。
下記のようにEC2の詳細が表示されると思います。まずはインスタンスをChefServerに登録する必要があるので「ChefServerへ登録」ボタンを押して登録しましょう。
登録が成功すると下記のようなメッセージダイアログが表示されます。
ChefServerへ登録が終わるとChefの機能が使えるようになります。「Runlistの編集」ボタンを押しましょう。
Runlistの編集画面に遷移しますので、目的のZabbixServerを設定しましょう。
いよいよChefを用いた構築の実行です。「Cook」のボタンを押しましょう。こちらのインタフェースは標準ではWhy-runでの実行という実際に変更処理が行われないようになっていますので、ボタンの右端の矢印をクリックして「Cook」を選択してください。
Cookを始めると下記のようにリアルタイムに設定反映を行っている様子がみてとれます。
(ただしWebSocketを用いた通信をおこなっているため、Firewall/Proxyなどの影響でうまく表示されない環境もあるようです。)
下記のように「Success」という表示になればZabbixServerの構築は完了です。
ZabbixServerアカウントの登録
SkyHopperではAPIを用いてZabbixServerの操作を実施します。
そのためZabbixのAdminのアカウントを登録する必要があります。画面上部の「設定」からZabbixServerを選択しましょう。
アカウント情報を入力しましょう。
なお、Chefを用いた構築時のデフォルトではAdmin/ilikerandompasswordsとなっていますが、ZabbixServerへログインを行って変更されたのちに登録することをおすすめします。
以上ですおつかれさまでした!
以上で利用を始めるまでの作業は終了です。
この次は、非管理者のアカウントを作成したり、独自のCookbookを作成、プロジェクトの作成。
などといった流れになると思います。
楽しいAWSライフを!
投稿者プロフィール
-
インフラ系のエンジニアです。
運用系のスクリプトを書いたり、オートメーションな世界に向かって日々精進しています。
最新の投稿
- Apache2016年6月24日ApacheWebServerで圧縮転送の設定
- AWS2016年5月17日SkyHopperのインストーラで作成するChef Serverについてのご注意
- AWS2016年3月29日SkyHopper v1.15.2の評価用AMI公開しました
- AWS2016年3月8日SkyHopperのプロダクトページを作成しました