Berkshelf は、chef-DKで入れることを推奨
Berkshelf って何?
- Cookbookの管理をする
- Cookbookの依存関係を管理する
良くCookbookのgemとか言われる
作業用ディレクトリ作成
mkdir mysql_server
初手
vagrant init
vim Vagrantfile
Vagrant.configure(2) do |config|
config.omnibus.chef_version = :latest
config.vm.box = "chef/centos-7.0"
config.vm.provision :chef_solo do |chef|
chef.cookbooks_path = './chef-repo/cookbooks' # ここに、Berkshelfで生成される Cookbook が置かれる
chef.add_recipe 'setup_mysql'
end
end
インストール用のレシピを作成
knife cookbook create setup_mysql -o cookbooks/
cd cookbooks/setup_mysql
ここの内容に従い、Berkshelfで落としてきたMySQLのcookbook を使って、MySQLをインストールするためのレシピを作成
metadata.rb
name 'setup_mysql'
maintainer 'YOUR_COMPANY_NAME'
maintainer_email 'YOUR_EMAIL'
license 'All rights reserved'
description 'Installs/Configures setup_mysql'
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
version '0.1.0'
depends 'mysql'
recipes/default.rb
#
# Cookbook Name:: setup_mysql
# Recipe:: default
#
# Copyright 2015, YOUR_COMPANY_NAME
#
# All rights reserved - Do Not Redistribute
#
mysql_service 'default' do
version '5.5'
initial_root_password ''
action [:create, :start]
end
mysql_client 'default' do
action :create
end
Berkshelf作業用ディレクトリを生成
mkdir chef-repo/
cd chef-repo
vim Berksfile
Berksfile に必要なCookbookを列挙
source "https://supermarket.chef.io"
cookbook 'mysql' # supermarket.chef.io から取得
cookbook 'setup_mysql', path: '../cookbooks/setup_mysql' # 自前のcookbook(MySQLインストール用)
Berkshelfの情報を元にcookbookを生成
berks vendor cookbooks
サーバ起動 & provision
vagrant up
動作確認
vagrant ssh
mysql -u root