エンタープライズでもInfrastructure as Code――Chef 12/Chef-Zero/Knife-Zeroの基礎知識とインストール:サーバー管理者のためのChef超入門(1)(2/2 ページ)
エンタープライズ向け機能が充実してきたChefを使って高速かつ精度の高いサーバーインフラを構築/管理する方法について解説する連載。初回は、Chef 12、Chef Solo、Chef Server、Chef-Zero、Knife-Solo、Knife-Zeroの概要と、Chef-ZeroをKnife-Zero経由で利用するCookbook開発環境の構築について解説します。
Chef-ZeroをKnife-Zero経由で利用するCookbook開発環境の構築
本連載では、Chef-ZeroをKnife-Zero経由で利用することを前提として進めていきます。今回は環境の構築について解説します。
恐らく多くの企業ではWindows PCが社用クライアントとして支給されているでしょうから、今回はWindows PC上で開発とテストができるよう、以下図のような環境を構築します。
事前準備
まず、任意のフォルダーで下記コマンドを実行します。
$ mkdir chef-repo $ cd chef-repo $ rpm -ivh http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm $ yum groupinstall "Development Tools" $ yum install openssl-devel libffi-devel tcl-devel tk-devel libxml2-devel $ yum install --enablerepo=epel libyaml-devel
rvmのインストール
rvm(Ruby Version Manager)は、Rubyをバージョンごとに別々のパスにインストールし、簡単に切り替えられる仕組みです。後述するGemインストール時に要求されるRubyのバージョンが2.0.0であるため、今回は2.0.0のインストールをするためにrvmを用います。
# sudo gpg2 --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 # curl -L https://get.rvm.io | sudo bash -s stable
インストールによりパスの設定が追加されているので、シェルを再度起動します。
# bash
以下のように表示されればrvmのインストールは完了です。
# rvm -v rvm 1.26.7 (latest) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
rvmによるRubyのインストール
rvmを使用してRuby2.0.0をインストールします。
# rvm install 2.0.0 # ruby -v
Rubyのパスを通す
Rubyを一般ユーザーで使用できるように、rootの環境変数の内容を確認します。
# echo $PATH
上記コマンドで表示された「$PATH」の内容を、「/home/{一般ユーザーのusername}/.bash_profile」の中に「PATH=$PATH:〜」の形式で追記し、シェルを再起動します。追記および再起動は一般ユーザーで実行します。
Chefのインストール
ChefをインストールするためのGemfileを作成します。Gemfileの作り方については知りたい方は、記事「Rubyで逆ポーランド変換機を作りgem作成&コマンドの使い方」を参照してください。
$ cd ~/chef-repo $ bundle init
生成されたGemfileに以下の通り追記します。
source "https://rubygems.org" gem 'chef' gem 'knife-zero' gem 'berkshelf'
Gemfileに基づいてGemをインストールします。
$ sudo bundle install
Chef Clientを常にローカルモードで実行するために、「.chef/knife.rb」ファイルを作成しておきます。
$ mkdir .chef $ echo 'local_mode true' > .chef/knife.rb
以上でCookBook開発環境の構築は完了です。
次回以降は実際にCookbookを作成・管理
次回以降は実際にCookbookを作成していきます。併せてCookbookの管理についても解説します。
- WordPress環境構築におけるMySQLの設定とChef上達のポイント
- WordPressのダウンロード/配置とバーチャルホスト設定で見るChefの変数とAttributeの書き方の基本&Template活用
- Apache、PHP、MySQLパッケージのインストールで見るChefのRecipeの基本的な書き方
- WordPress構築で学ぶ、サーバー構築作業をChefのCookbookとして記述するためのポイント
- Knife-ZeroでCookbookの作成/実行/削除&git cloneコマンドでCookbookの取得
- エンタープライズでもInfrastructure as Code――Chef 12/Chef-Zero/Knife-Zeroの基礎知識とインストール
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 環境構築自動化の手順と評価検証、Puppetの基礎知識
サーバー構築の自動化で利用される技術、自動化ツールとして「Kickstart」「Puppet」を紹介し、構築から運用まで、システムライフサイクル全体にわたる運用管理の自動化についても解説する連載。 - OpenStackで激変するシステム開発・運用 “抽象化”が実現する「究極の自動化」とは
前回はOpenStackの活用ポイントと、今後のシステム開発・運用に与える影響――特に自動化にフォーカスして紹介した。今回は日本OpenStackユーザ会 会長の中島倫明氏が、「OpenStackによる自動化の仕組みと実施法」を分かりやすく解説する。 - PowerShell Desired State Configuration(DSC)とは(前編)
Windows OSの設定や構成を変更する場合、GUIの管理ツールを使うのが一般的である。だが台数が多かったり、構成変更や以前の構成への復旧などが頻繁だったりするとGUIでは非常に面倒だし、間違いもしやすくなる。こんな場合はPowerShell DSCを使ってインフラ構築作業を自動化するとよい。 - アプリ開発者もインフラ管理者も知っておきたいDockerの基礎知識
オープンソースのコンテナー管理ソフトウェアDockerについて主な機能と特徴、使用技術、動作環境などを紹介。ハイパーバイザー型とコンテナー型の仮想化の違いも解説します。