ブログニフクラやクラウドの技術について、エンジニアが語るブログです。ブログニフクラやクラウドの技術について、エンジニアが語るブログです。はじめにはじめまして、ニフティ入社一年目の袁と申します。最近ニフティクラウドを色々勉強しています。Automationがリリースされました。自分でも使ってみて、非常に便利な機能だと思いましたので、ここで皆さんに紹介したいと思います。紹介するだけではなく、実際の利用例として、皆さんがよく使っている監視ソフトのZabbixをAutomationを使って構築してみます。Automationの基礎知識まずは、ニフティクラウドAutomaitonの基礎知識を紹介いたします。Automationは、これまでサーバー・ディスクなどコントロールパネル上でリソースごとに管理していた機能を、用途や環境ごとにまとめて作成・管理することができる機能です。設定済のサーバーを手軽に作成することが可能です。お客様が簡単にアプリケーションをデプロイできるので、継続的デリバリーを実現することができます。※デプロイ:お客様が開発されたアプリケーションをサーバー内に展開すること。※継続的デリバリー:アプリケーションのデプロイを自動化することにより、継続的に新しいプロダクトを顧客へ届けること。Automationは下の図のように、スタック/レイヤー/サーバーの3つの階層から構成されています。スタック:「レイヤー」「サーバー」「アプリ」によって構成される「入れ物」のようなものです。複数のサーバーをまとめて管理することができます。レイヤー:「アプリサーバー」「DBサーバー」など、特定の役割が定義されたサーバーの集合を表します。サーバーは必ずレイヤーに所属する必要があります。サーバー:ニフティクラウドのサーバーを表します。サーバーは、スタック・レイヤーの設定に沿って構築されます。アプリ:サーバーにデプロイするアプリケーションの情報です。デプロイ:保存したアプリは、サーバーへデプロイすることができます。アプリのデプロイだけでなく、さまざまなコマンドをコントロールパネルからサーバーに実行させることができます。簡単に説明すると、スタックの中に複数のレイヤーがあり、さらに各レイヤーの中でサーバーを管理することができます。Automationで構築するため、スタックとレイヤーの設定をメインに記述します。Automationは、デフォルトのレシピとお客様が作成したレシピを利用して、サーバーを自動的に構築します。お客様はChefを手動で実行する必要がありません。ライフサイクルイベントと呼ばれる5つのイベントが用意されており、それぞれのイベントにレシピを設定しておけば、そのタイミングで指定したレシピが自動的に実行され、サーバーを簡単に構築できます。Automationにはたくさんのデフォルトレシピが提供されているので、非常に使い易いと思います。お客様の操作とライフサイクルイベントの発生タイミングについて、下記の図の通りです。図を見ると、お客様の操作は主にサーバーの「作成・停止」とアプリの「デプロイ・アンデプロイ」となります。それぞれの操作に合わせて、ライフサイクルのイベントが発生します。サーバーの「作成・停止」を行う場合、同じスタック内の他のサーバーに対して、configureイベントが自動的に発生することに注意してください。レイヤーに設定された設計書を元に、用途に合わせた設定済のサーバーを手軽に作成することが可能です。お客様のニフティクラウドリソースをまとめて管理することが可能です。アプリケーション(ソースコード)の管理・デプロイを行うこともできます。Automationを利用し、Zabbixサーバーを立ち上げることです。今回は下記のようなサーバー環境を構築してみます。Zabbixの概要Zabbixは、サーバーのリソース(cpuの利用率、メモリの使用状況等)、プロセス起動状況、ネットワーク状況などを監視・追跡するソフトウエアです。設定の自由度が高く、オープンソースで提供されているため、非常によく使われている監視ソフトです。http://www.zabbix.com/documentation.phpZabbixの監視構造は二つの部分に分かれています。監視データを収集して表示するサーバー側と、システムの様々な情報を取得するエージェント側の二つです。この記事では、サーバー側を「Zabbixサーバー」と呼び、Zabbixサーバーが所属するレイヤーは「Zabbixレイヤー」と呼びます。エージェント側は「監視対象サーバー」と呼びます。Automationの基本操作まず、Automationにアクセスしてみます。ニフティクラウドにログインし、左上のメニューをクリックして、「Automation」を選択します。「利用開始」のボタンクリックします。Automationがお客様のAutomation用ファイアーウォールグループおよび、ルールなどを作成する為、申し込みに10分間ほど時間が掛かるので、しばらくお待ちください。申し込みが完了したら、スタックを作成してみます。作成するため、先にSSHキーの作成が必要です。キーを作成]をクリックして、sshkeyを作成してください。■スタックのchefを設定します。今回はgitHubのgitリポジトリにアップロードした自作cookbookを利用します。https://github.com/kuroei/auto-zabbix-ver3.git■カスタムJSONカスタムJSONで、chefがレシピを実行する時のJSONの内容を調整することができます。"password"}zabbixで利用するmysqlの初期passwordを設定します。サーバーをインストールするかどうかを指定します。ソースからインストールし、バージョンは2.2.0になります。}web管理画面をインストールします。Zabbixサーバーでも、エージェントをインストールするため、fqdnはlocalhostに設定してください。},エージェントをインストールします。ソースからインストールします。serversにはZabbixサーバー(複数可能)のホスト名を設定します。}Zabbix用のデータベースの設定です。ホストはlocalhost,ポートは3306です。これで、スタックの設定が完了です。レイヤーの作成スタックを作成した後、レイヤーを作成します。今回はカスタマイズしたZabbixレイヤーを作成したいため、カスタムレイヤーを選びます。必要に応じて入力してくださいレイヤーの基本情報を入力した後、レイヤーのchefの設定も行う必要があります。zabbixをインストールするため、setupとconfigureにレシピを設定します。それぞれの設定について、下記の図のとおりです。追加されたカスタムレシピは下記の通りです。追加されたカスタムレシピは下記の通りです。カスタムレシピは、追加した順番に実行されますので、ご注意ください。レイヤーで、サーバーを作成してみます。基本設定画面では、特に変更必要なものはありません。確認した後、[作成する]ボタンをクリックすると、サーバーが作成されます。レイヤーの下に、作成したサーバーが表示されます。右の開始ボタンを押すと、今度は実際のサーバー環境が作成されます。サーバーの起動が完了するまでに、約10分程度掛かります。動作の流れを確認することができます。サーバーのコマンド一覧から見ると、まずはsetup、その次にconfingureが実行されていきます。Configureの結果が[successful]に変わると、Zabbixサーバーの作成が完了です。IPアドレスが発行されました。このIPアドレスをクリックしてみましょう!なんとZabbixのweb管理画面が表示されました。