2015.03.10

Chef Server12をKCPS上に構築、活用方法を検証

2回目の投稿になります岡澤です。先日Chef meetup 10thがKDDIビルにて開催されました。今回もChef社からAlex Vinyar 氏、HiganWorksの澤登 亨彦氏、クリエーションラインの浦底 博幸氏と内容の濃い発表がありました。Chef meetupは第1回から参加していますが徐々に規模も大きくなってきています。参加者の方も初めてChefに触れる方や企業でガンガン開発、運用している方など様々です。継続してChefの注目度があることが伺えます。Chefに興味のある方は、次回、是非参加してみてください。さて今回ですが、Chef meetupで弊社の取り組みを紹介させていただいたので、こちらにも記載したいと思います。

Chef Server12の検証を実施。Chef11との違い

Chef Server12が昨年末に正式リリースされましたので、活用方法を検討しつつ検証を実施しています。今回は弊社で提供しているKDDI Cloud Platform Service(KCPS)上に構築しました。KCPSは、キャリアグレードの信頼性とさまざまなシステムに対応する柔軟性を兼ね揃えたクオリティの高いクラウド基盤です。

2

評価するChef Server12は、Chef Server11から大きな変更があります。

(これはChef Server11までは個別にモジュールを入手する必要がありましたが、Chef Server12からはコマンドで実装可能です)

また以下は、アップデートもしくは無料化されたプレミアム機能となります。後ほど説明します。

  1. Management Console
  2. Reporting
  3. High Availability
  4. Analytics Platform
  5. Replication

Chef Server12 インストールで注意すべき点とは

構築にあたっては、エンタープライズ向けですので冗長構成、イントラでの対応、また折角ですのでChef ServerもChefで構築しました。

3

今回の構築中に苦労した点がありましたのでご紹介します。まずHA構成についてですが、今回、検証初期は機能確認を実施しようと考え、スタンドアロンで構築しました。その後HA構成に再構築しようと考えたのですが、HA構成に変更をした後、DB周りの設定を行ったのですが、正常に動作しませんでした。Chef Serverの新規構築の際に、予め構成を設定する箇所があります。Chefサポートにヒアリングしながら、各整合性を確認しつつ設定を変更できましたが、推奨としては、コマンド及びコンフィグで初期状況からHA構成前提として構築することが望ましいです。ただ今回はChef Server自体の構築もレシピ化しているので、再構築、設定値の変更は容易に出来る状態となっていました。こういった点(同じ環境を自動で構築できる)もChefを使って構築するメリットかと思います。なお、公式ドキュメント上はChef Server11から12へのアップデート手順はありますが、スタンドアロンからHAへの構築手順はありません。HA構成については、chef-server.rbファイルに定義する形となります。構成のタイプを指定(topology “ha”)し、その後にプライマリーバックエンドサーバー、セカンダリバックエンドサーバーを構築していく手順です。詳しくは、公式ドキュメントを確認ください。

プレミアム機能のインストール

次に、プレミアム機能のインストールについてです。今回からプレミアム機能のインストールはコマンドで実施可能となりました。基本的な流れは、以下となります。

$ chef-server-ctl install “プレミアム機能”

$ opscode-“プレミアム機能“ reconfigure

$ chef-server-ctl reconfigure

インストール➡コンフィグレーション➡サーバのコンフィグレーションとなります。今回は先にも述べさせていただいた様にChef Server構築をChefで実施しています。プレミアム機能を連続して投入する場合は、コア機能(プレミアム機能以外)のインストールが完了した時点で、一旦サーバのコンフィグレーションを実施し、その後プレミアム機能のインストールを実施してください。プレミアム機能のコンフィグレーションも個別に毎回実施してください。一連の流れで実行した際に正常動作しないケースもありました。こちらもサポートに確認したところ上記手順で実施することを推奨されております。また、プレミアム機能のインストール対象サーバですがChefManageは正式ドキュメントにフロントサーバのみと明記してありますが、Chef Job Pushについては何も記載がありません。当初、Pushサーバのためフロントサーバとバックエンドサーバの両方にインストールしておりましたが、バックエンドサーバのみのインストールで問題ありません。フロントエンドには認証の通信を行っているだけのため、バックエンドサーバのみのインストールとなります。Reportingについては、フロントエンドだけではなく、バックエンドにもインストールしてください。

最後に、構築時に忘れがちになる手順です。マニュアルにもさらっと書いてあるため実行し忘れないように気をつけてください。HA構成する際にPrimary backendで作成した証明書、Chef server.rb(/etc/opscode/)などを各サーバに配備する必要があります。この辺りは、Chef provisioningを使って独自実装などを行えば可能です。上記の様に公式ドキュメントですが、検証初期はドキュメント自体もあまり整備されておらず少々苦労しました。上記、Reporting機能はフロントサーバだけに入れるようにドキュメントには記載されていますが、実際はバックエンドにも入れる必要があったということなどがありました。ただ、本件はChef Server11のドキュメントには記載されており、Chef Server12のドキュメントには記載されていなかったのでChef Server11を構築した記憶があればハマらなかったかもしれません。ただ実際は、私も以前ローカルでChef Server11を立てはいたのですが気がつきませんでした。現状はドキュメントも徐々に整理されてきています。ドキュメントも改版、Chef Serverのバージョンも2月末に12.0.4のバージョンになっています。機能としてはCookbookのキャッシング等が追加されているようです。なお、本ブログ記載時に検証していたバージョンは12.0.3となります。

プレミアム機能の説明

次は、アップデートもしくは無料化されたプレミアム機能について記載したいと思います。

■Management Console

今回のUIは見た目と操作性も良くなったと感じます。実際はHosted Chefとほとんど同じUIになってます。

Chef Server12

4

Chef Server12以前

5

■Reporting

レシピの実行履歴などがログ形式及びグラフ形式で確認することができます。クライアントの結果を非同期で確認できる。運用サイドからUIベースで簡単に確認できます。

7

■High Availability

大きく分けて2種類あります。
・High Availability using Amazon web Service
・High Availability using DRDB

今回は、弊社で提供しているKCPS上に構築したため、High Availability using DRDBを採用しています。こちらはChef Server12からの新機能ではなく以前からもHA機能として提供されていました。フロントエンドマシンは、ロードバランシング前提で水平スケーリングされます。バックエンドはDRDBの信頼性とChef Serverの応答性を増加させるために垂直スケーリングされます。High Availability using Amazon web Serviceは、今回から採用されたアーキテクチャとなります。今回こちらで構築していないので、構築での感想がかけませんが、構成としてはシンプルでパッシブノードが アクティブノードの有効性を監視し、必要があればテイクオーバーしていく形となります。現状この構成はAWS前提というかEBS前提となっています。他プラットフォームでも構築できるように次バージョンでは提供して頂きたいです。

8

■Analytics Platform

こちらReporting機能となんとなく似ていますが、機能としてはよりエンタープライズ向けに有益な機能かと思います。管理者としてノードの動作にルールを適用していくこともできます。例えば、あるノードのポートがListenになった際に通知をあげることやオペレータの操作規制などもできます。また企業内で立ち上げるサーバなどに必須の条件に当てはまっていないものについてもアラートをあげて、構築ミス、設計ミスを減らすことができるかと思います。ただ、コンポーネント自体が別々で構成されており、UIも別になっています。この辺りをシームレスに提供できるような構成にするだけでもユーザーとしては利便性が向上すると考えています。この辺りも継続的に検証していきます。

9

■Replication

サーバのコンテンツの一貫性を保ための機能となります。複数リージョンにまたがっている場合などの大企業向けの機能となります。下記図にあるように各レプリケーションはData bags、Roles、Environs、Cookbooksを定期的に起動し、同期し一貫性を保つ仕組みとなります。

10

さいごに

今回は、Chef Server12構築内容及び各機能について記載させていただきました。構築した感想としては、エンタープライズ向けにChef Server11から比べてUI、機能ともに大きく変わっております。特にプレミアム機能についてもライセンス形態やインストール手順などが変更され導入の敷居が下がっています。特にAnalytics,Reportingの導入が容易になったことで運用フェースでのChef Serverの活用方法が広がると感じました。そのため、これまで国内事例としてChef Server活用の事例が多くありませんでしたが、今回のアップデートにより増加していくのではと感じています。今回紹介できていない内容にJobPush、イントラ向けカスタムテンプレート、継続検証中機能、実際の構成や課題などが様々あります。次回は、実際の利用シーン含めこれらの内容などを紹介できればと思っています。

カテゴリ
タグ

KDDI株式会社 プラットフォーム開発本部
アジャイル開発センター

岡澤 克暢

新着記事
タグ
アーカイブ
カテゴリー
TOP