chef-soloでリモートのサーバにインストールしてみる

CentOSにRuby2.1.1をインストールする

Vagrantを試してみる
の続き

chef-soloを使って、
VirtualBox上のCentOS64のサーバから
Vagrantで作成したCentOS64のリモートのサーバに
PHPをインストールしてみる。

リモートのサーバの準備

Macのターミナルから、vagrantでリモートのサーバを用意する。

mac$ mkdir sample
mac$ cd sample
mac$ vagrant init centos64

IPアドレスを設定する。

mac$ vi Vagrantfile
config.vm.network "private_network", ip: "192.168.33.10"	←コメントを解除

サーバを起動する。

mac$ vagrant up

chef/knife-soloのインストール

VirtualBoxのCentOS64のサーバ上で、
gemでchefをインストールして、knifeの設定を行い、knife soloをインストールする。

$ sudo gem install chef
$ knife configure
$ sudo gem install knife-solo

リモートのサーバにインストールする際、rsyncが必要になるので、入れておく。

$ sudo yum install rsync

リモートサーバへのphpのインストール

knife-soloでリポジトリを作成する。

$ knife solo init chef-repo
$ cd chef-repo/

knife-soloで、リモートのサーバにchefの環境をセットアップする。

$ knife solo prepare vagrant@192.168.33.10

cookbookを作成し、PHPをインストールするよう記述する。

$ knife cookbook create php -o site-cookbooks
$ vi site-cookbooks/php/recipes/default.rb
package "php" do
  action :install
end
$ vi nodes/192.168.33.10.json
{
  "run_list" : [
    "recipe[php]"
  ]
}

リモートのサーバへのインストールを実施する。
この時、10回くらいパスワード入力を求められるが頑張る。

$ knife solo cook vagrant@192.168.33.10

リモートにログインして、確認すると、PHPが入っている。

$ ssh vagrant@192.168.33.10
vagrant$ php -v
PHP 5.3.3 (cli) (built: Dec 11 2013 03:29:57)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies