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