VagrantにLAMP(Linux+Apache+MySQL+PHP)環境を構築する Part.2

Part.2ではchefのrecipeを使ってみる

この記事は下記の続きです
VagrantにLAMP(Linux+Apache+MySQL+PHP)環境を構築する Part.1

1.作業のディレクトリの作成

作業用のディレクトリを作成します。

$ mkdir vagrant-lamp

2.Vagrantfileの生成

次に先程作成したディレクトリに移動して、Vagrantの初期設定コマンドを実行します。

$ cd vagrant-lamp
$ vagrant init chef/centos-6.5

これでvagrant-lampディレクトリ配下にVagrantfileが生成されました。
このVagrantfileを修正してプロビジョニングを行います。

3.SELinuxでrecipeを試す

まずSELinuxが有効になっているのを確認します。
一旦Vagrantfile修正前の状態でインスタンスを起動してみます。

  
$ vagrant up
$ vagrant ssh
$ getenforce
  

Berksfileを修正します。

まずはdevelopmentディレクトリに戻ります

$ cd ../

生成されたBerksfileには

site :opscode

と記述があると思いますが、vimなどで下記のように修正します。

source “https://api.berkshelf.com”

次に公開されているcookbookを記述して行きます。
https://supermarket.chef.io/cookbooks
ここから自分の環境に合わせたcookbookを探しBerksfileに追記します。

source "https://api.berkshelf.com"
cookbook 'selinux'

上記のようにBerksfileを編集したら

下記を実行しSELinuxのcookbookをダウンロードします。

$ berks vendor ./cookbooks

このときcookbooksディレクトリが存在している場合エラーになるので消します。
cookbooksディレクトリが存在している場合のみ下記を実行しディレクトリを一旦削除します。

$ rm -r ./cookbooks

Vagrantfileを修正します。

$ cd vagrant-lamp
$ vim Vagrantfile

まずはchefのプロビジョニングの設定
cookbooks、site-cookbooksディレクトリへのパスを指定
使用するレシピを指定

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = “chef/centos-6.5”
config.omnibus.chef_version = :latest
config.vm.provision “chef-solo” do |chef|
chef.cookbboks_path = [“../cookbooks”, “../site-cookbooks”]
chef.add_recipe “selinux::disabled”
end
end

上記の設定を再読み込みさせます。


$ vagrant reload --provision

SELinuxが無効になっていれば完了です。

$ vagrant ssh
$ getenforce
これでSELinuxをdisableにするrecipeを使いこなせるようになりました(多分)

VagrantにLAMP(Linux+Apache+MySQL+PHP)環境を構築する Part.1

Part.1ではVagrantのインストールと最小構成で起動させることが目標

1.VirtualBoxのインストール

VirtualBoxの公式サイトからパッケージをダウンロードしてインストーラーの手順通りにインストールします。

http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html?ssSourceSiteId=otnjp#vbox

2.Vagrant本体のインストール

Vagrantの公式サイトからパッケージをダウンロードしてインストーラーの手順通りにインストールします。
https://www.vagrantup.com/downloads.html

3.vagrant-omnibus pluginのインストール

vagrant-omnibus
このプラグインはプロビジョニング時にchef-clientがインストールされているかを検出し、
指定したバージョンのchef-clientをインストールしてくれます。
・インストール方法

$ vagrant plugin install vagrant-omnibus

4.sahara pluginのインストール

sahara
仮想マシン(VirtualBox)の状態をロールバック出来るようにする。

・インストール方法

$ vagrant plugin install sahara

5.vagrant-vbguest pluginのインストール

  vagrant-vbguest
VirtualBoxのゲストOS用ソフトを更新する

・インストール方法

$ vagrant plugin install vagrant-vbguest

6.インストールされたpluginの確認

下記のコマンドでインストール済みのプラグインの確認が出来ます。

$ vagrant plugin list

7.chef DKのインストール

下記URLにアクセスし
https://downloads.getchef.com/chef-dk/
  今回Mac OS XにインストールするのでMac OS Xをクリック後

Downloadボタンを押下しダウンロードが完了後
インストーラーの指示通りにインストールします。

8.knife-soloのインストール

chef DKにはknif-soloが含まれていないのでインストールする

$ chef gem install knife-solo

Chef DKの環境内にknife-soloがインストールされます。

9.chef関連ファイルの生成

まずはchef関連ファイルを設置するディレクトリを作成します。

$ mkdir development

/user/ユーザー名/developmentというディレクトリが生成されます。
生成されたディレクトリにcdコマンドで移動しknifo soloを実行しchef関連ファイルを生成します。

$ cd development
$ knife solo init .

Berksfile, cookbooks, data_bags, environments,

nodes, roles, site-cookbooksが生成されます。

10.Vagrant Boxの取得

Vagrantで使用するBoxファイルをダウンロードします。
まず下記のサイトから希望のBoxファイルを探します。
https://vagrantcloud.com/discover/featured

今回はchef/centos-6.5を使用します。

$ vagrant box add chef/centos-6.5

下記のコマンドでインストールされたBoxファイルの確認が出来ます。

$ vagrant box list

作業用のディレクトリを作成します。

$ mkdir vagrant-lamp

次に先程作成したディレクトリに移動して、Vagrantの初期設定コマンドを実行します。

$ cd vagrant-lamp
$ vagrant init chef/centos-6.5

これでvagrant-lampディレクトリ配下にVagrantfileが生成されました。
このVagrantfileを修正してプロビジョニングを行います。

一旦Vagrantfile修正前の状態でインスタンスを起動してみます。

$ vagrant up

Vagrantの起動状態を確認します。

$ vagrant status

runningと表示されていれば問題なく起動しています。