以前からずっと課題になっていたchefのインストールについてです。
まだ全然わかっていませんが、なんとかvagrantからのインストールをすることができましたのでメモします。
chefでの環境構築といってもさまざまなパターンがあります。
理想を言えば1台のサーバーがあり、そこからテンプレート的なものを一気にインストールできることでしょう。
ただ、とりあえずは一番最初なのでローカルで仮想環境でサーバーを構築し、その中にchefを入れてインストールを行いたいと思います。
下記が実験した環境です。
vagrant 1.7.4
Chef: 12.5.1
win7
chefのインストール
vagrantのインストールが終わっているものとし、vagrantを起動して、sshでログインをしているとします。
vagrantのインストールについてはこちら。
gemからインストールすることもできるようですが、下記のシェルスクリプトが用意されているのでそれをそのまま実行するのが楽でしょう。
1 |
curl -L https://www.opscode.com/chef/install.sh | bash |
次にchefでインストールするための準備を行います。
cookbookの作成
chefは簡単にいうとcookbookのなかのrecipeというインストール手順がかかれた設定ファイルようなものを記述し、ここからインストールを行います。
1 2 3 |
cd /vagrant #下記コマンドでクックブックが作成されます。 knife cookbook create my_cookbook -o cookbooks/ |
recipeの記述
実際にインストール手順をファイルに記述していきます。
今回はapacheをインストールするとしましょう。
1 |
vi /vagrant/site-cookbooks/my_cookbook/recipes/default.rb |
default.rb
1 2 3 |
package 'httpd' do action :install end |
vagrantの設定ファイルの記述
ここまで設定したら実際にインストールを行います。
1 |
vi /vagrant/Vagrantfile |
Vagrantfile
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Vagrant.configure(2) do |config| config.vm.box = "bento/centos-6.7" config.vm.network "private_network", ip: "192.168.33.10" config.vm.provider "virtualbox" do |vb| vb.gui = true end #↓ここからが追記ないようです。 config.vm.provision :chef_solo do |chef| # プロビジョニングにchef-soloを使用 chef.cookbooks_path = ["site-cookbooks", "cookbooks"] chef.add_recipe "my_cookbook" # my_cookbookというrecipeを適用 end end |
上記のファイルはコメントアウトした部分を除いて記述してみました。
ここまで記述したらwindows側で
1 |
vagrant reload --provision |
を行います。
下記のような画面が出力されます。
実際にsshでログインをしてみるとapacheがインストールされているのがわかると思います。