Click here to load reader
Upload
shinichiro-ohhara
View
1.220
Download
2
Embed Size (px)
Citation preview
自己紹介
大原 慎一郎 https://twitter.com/ohhara_shiojiri
(有)トラストネットワークス 塩尻インキュベーションプラザ108号室
サーバーやルーター、スイッチなどのインフラ系のシステム構築、運用、管理、監視、保守を行っています。
・長野県塩尻市に活動拠点を置く、市内プログラマー有志による団体・「オープンな環境でオープンな活動を目指す」を合言葉に集う・CoderDojo Shiojiri 開催 ・小学生高学年向けRuby教室開催・オープンソースCMS ZOMEKIを使ったサイト構築・塩尻市と東京都三鷹市で交互にOSS勉強会開催・IT技術書をリブライズで貸し出し、また市立図書館と協力
http://shiojiri-osslabo.com/
本日のアジェンダ
■前回のおさらい
・基本的な作業の流れ
■サードパーティのクックブック利用方法
・公開されているクックブック
・Vagrant環境を準備
・Berkshelf ・WordPressクックブック
本日のアジェンダ
■レシピの書き方
・Attribute(属性)
・Resource(リソース) ・テンプレート
基本的な作業の流れ
1.Vagrantで仮想サーバー環境を作成して起動、ssh環境設定する。
2.レポジトリ(キッチン)を作成して、Gitで初期設定します。
knife solo init [レポジトリのディレクトリ名]3.クックブックを作成してレシピを編集する。
knife cookbook create [レシピ名] -o site-cookbooks4.仮想サーバーに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でインストールします。
・bundlerのインストールを確認します。
gem install bundler
gem list | grep bundler
Berkshelf
■bundle初期化 ・Gemfileファイルを作成します。
bundle init
# A sample Gemfilesource "https://rubygems.org"
# gem “rails”gem “berkshelf”
・Gemfileを編集します。
Berkshelf
■Berkshelfをインストール
bundle --path vendor/bundle
/cookbooks//vendor/
・必要なgemがインストールされます。 ・Git管理から除外する為、.gitignoreファイルにディレクトリを 追記しておきます。
Berkshelf
■クックブックをインストール ・利用するクックブックをBerksfileファイルに記述します。
site :opscodecookbook ‘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サービスポートを
設定して有効にします。
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
sudo vi /etc/sysconfig/iptables
sudo service iptables restart
■Webブラウザでアクセスして確認 ・問題なくWordPressがインストール出来れば、
インストールページがブラウザから開くことが出来ます。
http://192.168.33.10/wordpress/
WordPressクックブック
Attribute(属性)
■属性として変数的に利用します。
■動的に変化する値に使用します。
■記述する場所で動作の優先順位が変わる。
■記述出来る場所
・クックブックのattributeディレクトリに規定値
・Role毎 ・JSONファイルでノード毎
・Vagrantfile
Resource(リソース)
■ノードの状態を示します。
・パッケージ
・サービス
・テンプレート
・ファイル、ディレクトリ
・ユーザー、グループ
・スクリプト
・cronとか、その他いろいろあります。
テンプレート
■設定ファイルのテンプレートが利用できます。
■指定した位置にファイルを設置できます。
■Attributeをテンプレート内で使用出来る。
■拡張子erbを付けたテキストファイル
■クックブックのテンプレートディレクトリに配置
templates/default/ファイル名.erb