Chefのレシピを書く
Chefのレシピを書く練習を始めた。
今回はどこにもあるかもしれないがApacheを入れるもの
まず、Berkshelfを使って雛形を作成する
$ cd site-cookbooks
$ berks cookbook httpd
次に出来上がったファイルを編集する
まずは、site-cookbooks/httpd/recipes/default.rbを編集する。
1 # 2 # Cookbook Name:: httpd 3 # Recipe:: default 4 # 5 # Copyright (C) 2013 YOUR_NAME 6 # 7 # All rights reserved - Do Not Redistribute 8 # 9 #execute "yum-get update" do 10 # command "yum update" 11 #end 12 package "httpd" do 13 action :install 14 end 15 #bash "rewrite" do 16 # code <<-EOC 17 # sudo a2enmod rewrite 18 # EOC 19 #end 20 #service "apache2" do 21 # supports :status => true, :restart => true, :reload => true 22 # action [:enable, :start] 23 #end
続いてBerksfileを編集する
1 site :opscode 2 cookbook "hello" , path: "site-cookbooks/hello" 3 cookbook "java" 4 cookbook "mysql" 5 cookbook "yum" 6 cookbook "git" 7 cookbook "httpd", path: "site-cookbooks/httpd"
ここでは、Javaやmysql、yumのアップデートやgitのインストールもしています。
Vagrantfileを編集して終わりです。
・・・途中省略・・・ 99 config.vm.provision :chef_solo do |chef| 100 # chef.chef_server_url = "https://api.opscode.com/organizations/ORGNAME" 101 # chef.validation_key_path = "ORGNAME-validator.pem" 102 chef.run_list = [ 103 "hello", 104 "yum::epel", 105 "mysql::client", 106 "mysql::server", 107 "recipe[java]", 108 "httpd" 109 ] 110 chef.json = { 111 mysql: { 112 server_root_password: "hoge", 113 server_repl_password: "iloverandompasswordsbutthiswilldo", 114 server_debian_password: "iloverandompasswordsbutthiswilldo", 115 bind_address: "127.0.0.1" 116 } 117 } 118 end ・・・途中省略・・・
以上です。
site-cookbooks/httpd/recipes/default.rbのリソースの書き方などは、ここを参考にするといい。
以上になります。
個人的にrecipeを増やしていこうと思っています。