狠狠撸

狠狠撸Share a Scribd company logo
SOLA勉強会 第4回目

Chef入門 続編
自己紹介
大原 慎一郎 https://twitter.com/ohhara_shiojiri
(有)トラストネットワークス 塩尻インキュベーションプラザ108号室
サーバーやルーター、スイッチなどのインフラ系のシステム構築、運用、管理、監視、
保守を行っています。

http://shiojiri-osslabo.com/
?長野県塩尻市に活動拠点を置く、市内プログラマー有志による団体
?「オープンな環境でオープンな活動を目指す」を合言葉に集う
?CoderDojo Shiojiri 開催 ?小学生高学年向けRuby教室開催
?オープンソースCMS ZOMEKIを使ったサイト構築
?塩尻市と東京都三鷹市で交互にOSS勉強会開催
?IT技術書をリブライズで貸し出し、また市立図書館と協力
本日のアジェンダ
■前回のおさらい
 ?基本的な作業の流れ
■サードパーティのクックブック利用方法
 ?公開されているクックブック
 ?Vagrant環境を準備
 ?Berkshelf
 ?WordPressクックブック
本日のアジェンダ
■レシピの書き方
 ?Attribute(属性)
 ?Resource(リソース)
 ?テンプレート
基本的な作業の流れ
1.Vagrantで仮想サーバー環境を作成して起動、ssh環境設定する。
2.レポジトリ(キッチン)を作成して、Gitで初期設定します。
 knife solo init [レポジトリのディレクトリ名]
3.クックブックを作成してレシピを編集する。
 knife cookbook create [レシピ名] -o site-cookbooks
4.仮想サーバーにChefをインストールしてJSONファイルを編集する。
 knife solo prepare [ホスト名]
5.Knife Soloを実行して、リモートから仮想サーバーへインストール
 knife solo cook [ホスト名]
6.レシピが完成したらGitで変更を追加してコミットする。
7.仮想サーバーのChef作業ファイルを掃除して完了。
 knife solo clean [ホスト名]
公開されているクックブック
■ネットで様々なクックブックが公開されています。
 http://community.opscode.com/cookbooks
 ?カテゴリーや名称で検索できる。
 ?仕様や評価が掲載されている。

■WordPressのクックブックを試してみます。
 ?Vagrantで仮想サーバーを用意する。
 ?クックブック管理のBerkshelfをインストール
 ?WordPressをインストールします。
Vagrant環境を準備
■SOLA勉強会 第2回 Vagrant入門を参照
 ?http://www.slideshare.net/ShinichiroOhhara/solavagrantver2
■最新版(2014/01/16時点)に環境を揃えましょう。
 ?VirtualBox 4.3.6
  https://www.virtualbox.org/wiki/Downloads
 ?Vagrant 1.4.3
  http://www.vagrantup.com/downloads.html
 ?BOXファイル CentOS6.4
  http://www.vagrantbox.es/
 http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130731.box
Vagrant環境を準備
■最新版(2014/01/16時点)に環境を揃えましょう。
 ?Git 1.8.5.3(1.8.5.2)
  http://git-scm.com/
 ?Chef 11.8.2-1
  http://www.getchef.com/chef/install/
 ?Ruby 2.1.0 2.0.0-p353 1.9.3-p484
  windowsはGitBash付属の1.9.3-p484を利用
  https://www.ruby-lang.org/ja/downloads/
 ?RubyGems 2.2.1
  http://rubygems.org
Vagrant環境を準備
■ノード(CentOS仮想サーバー)環境
 ?サンドボックスを有効にする。
 ?外部参照出来るIPアドレスで起動している事。

■レポジトリを新規作成
 ?SOLA勉強会 第3回 chef入門を参照
  http://www.slideshare.net/ShinichiroOhhara/solachef

 ?Knife Solo initで新規作成
 ?Gitで初期化コミットしておきます。

■ノード(CentOS仮想サーバー)にchefをインストール
 ?Knife solo prepareでchefをインストールする。
Berkshelf
■複数のクックブックを統合管理できる。
■bundleコマンドのインストール
 ?bundlerをRubyGemsでインストールします。
gem install bundler
 ?bundlerのインストールを確認します。
gem list | grep bundler
Berkshelf
■bundle初期化
 ?Gemfileファイルを作成します。

bundle init
 ?Gemfileを編集します。
# A sample Gemfile
source "https://rubygems.org"
# gem “rails”
gem “berkshelf”
Berkshelf
■Berkshelfをインストール
bundle --path vendor/bundle
 ?必要なgemがインストールされます。
 ?Git管理から除外する為、.gitignoreファイルにディレクトリを
  追記しておきます。

/cookbooks/
/vendor/
Berkshelf
■クックブックをインストール
 ?利用するクックブックをBerksfileファイルに記述します。

site :opscode
cookbook ‘wordpress’
 ?指定したクックブックをネットから取得します。

bundle exec berks --path cookbooks
 ?cookbooksディレクトリ以下に関連する複数の
 クックブックが自動的にダウンロードされます。
WordPressクックブック
■JSONファイル設定
 ?レシピ名の他に、初期値を設定します。
 ?MySQLパスワードが最低限必要です。
{
“run_list”:[“wordpress”],
“mysql”: {
"server_root_password": "password",
"server_debian_password": "password",
"server_repl_password": "password"
}
}
WordPressクックブック
■WordPressインストール
 ?Knife Solo Cookを実行して、ノードにWordPressを
  インストールします。

knife solo cook centos64
 ?関連するパッケージを自動的にインストール
 ?設定ファイルを設置
 ?各サービスを自動起動
 ?インストール完了するまで、しばらく待ちます。
WordPressクックブック
■ノード(CentOS6.4)のフィルター設定
 ?ファイヤーウォールのフィルターにwebサービスポートを
  設定して有効にします。

sudo vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

sudo service iptables restart
WordPressクックブック
■Webブラウザでアクセスして確認
 ?問題なくWordPressがインストール出来れば、
 インストールページがブラウザから開くことが出来ます。
 http://192.168.33.10/wordpress/
Attribute(属性)
■属性として変数的に利用します。
■動的に変化する値に使用します。
■記述する場所で動作の優先順位が変わる。
■記述出来る場所
 ?クックブックのattributeディレクトリに規定値
 ?Role毎
 ?JSONファイルでノード毎
 ?Vagrantfile
Resource(リソース)
■ノードの状態を示します。
 ?パッケージ
 ?サービス
 ?テンプレート
 ?ファイル、ディレクトリ
 ?ユーザー、グループ
 ?スクリプト
 ?cronとか、その他いろいろあります。
テンプレート
■設定ファイルのテンプレートが利用できます。
■指定した位置にファイルを設置できます。
■Attributeをテンプレート内で使用出来る。
■拡張子erbを付けたテキストファイル
■クックブックのテンプレートディレクトリに配置
 templates/default/ファイル名.erb

More Related Content

厂辞濒补勉强会 肠丑别蹿入门 続编