今すぐChef-Soloを試したい
サーバー構成管理の自動化をするためにChef-Soloは必須。
まずは使ってみよう!ということで社内向けにまとめていた手順を記事に書いてみました。
Chef-Soloが気になっている、とりあえずChef-Soloを使ってみたい
という人たちの参考になればと思います。
目的
Chef-Soloで仮想サーバーにapache、mysqlをインストールして起動する。
前提
- Mac
- bundlerがインストールされていること
- Vagrant, VirtualBoxインストールされていること
- VagrantでCent OSなど の Box が追加されていること
手順
仮想サーバーの準備
mkdir chef cd chef vagrant init centos65 // box名は適宜変更 vagrant up // 仮想サーバ起動 vagrant ssh-config --host webdb >> ~/.ssh/config // これでssh webdb で仮想サーバにログイン可
Vagrantfile修正
※コメントアウトになっているので外す config.vm.network "private_network", ip: "192.168.33.10"
仮想サーバー再起動
vagrant reload
Gemfile作成
touch Gemfile 以下を追加 source 'https://rubygems.org' gem 'knife-solo'
gem install
bundle install --path vendor/bundler
Chefリポジトリをローカルに作成
bundle exec knife solo init .
仮想サーバーにChef-soloをインストール
bundle exec knife solo bootstrap webdb
クックブック作成
bundle exec knife cookbook create yum_update -o site-cookbooks bundle exec knife cookbook create apache -o site-cookbooks bundle exec knife cookbook create mysql -o site-cookbooks
yum updateのレシピ作成
site-cookbooks/yum_update/recipes/default.rb
以下を追加
execute 'yum_update' do user 'root' command 'yum -y update' action :run end
Apacheのレシピ作成
site-cookbooks/apache/recipes/default.rb
以下を追加
package 'httpd' do action :install end service "httpd" do action [:enable, :start] end
MySQLのレシピ作成
site-cookbooks/mysql/recipes/default.rb
以下を追加
package 'mysql-server' do action :install end service "mysqld" do action [:enable, :start] end
Nodeオブジェクトを設定 ※下の補足参照
nodes/webdb.json
以下を追加
{ "run_list": [ "recipe[yum_update]", "recipe[apache]", "recipe[mysql]" ], "automatic": { "ipaddress": "webdb" } }
Chef-soloを実行
bundle exec knife solo cook webdb
yum updateにかなり時間がかかりますが、
これで仮想サーバーにapache、mysqlがインストールされます。
vagrant ssh インストールされているか確認 which httpd which mysql 起動しているか確認 ps auxw | grep httpd ps auxw | grep mysql ブラウザで http://192.168.33.10/ を確認
補足
- Nodeについて
Chefでは管理するサーバーをノードと呼びます。
webdb.jsonはこのノードにyum_update、apache、mysqlのクックブックを適用するという設定
takano takano
素晴らしいアプリを開発して世の中をもっとハッピーにしたい! ビール大好き!卓球大好き!音楽大好き! 最近は子供とおかあさんといっしょを見てるせいで「ブンバボーン」の脳内再生が止まりません。
TAG
- Android
- AWS
- Bitrise
- CodePipeline
- Firebase
- HTML
- iOS
- IoT
- JavaScript
- KPI
- Linux
- Mac
- Memcached
- MGRe
- MGReのゆるガチエンジニアブログ
- MySQL
- PHP
- PICK UP
- PR
- Python
- Ruby
- Ruby on Rails
- SEO
- Swift
- TIPS
- UI/UX
- VirtualBox
- Wantedly
- Windows
- アクセス解析
- イベントレポート
- エンジニアブログ
- ガジェット
- カスタマーサクセス
- サーバ技術
- サービス
- セキュリティ
- セミナー・展示会
- テクノロジー
- デザイン
- プレスリリース
- マーケティング施策
- マネジメント
- ラボ
- リーンスタートアップ
- 企画
- 会社紹介
- 会社紹介資料
- 勉強会
- 実績紹介
- 拡張性
- 採用
- 日常
- 書籍紹介
- 歓迎会
- 社内イベント
- 社員インタビュー
- 社長ブログ
- 視察
- 開発環境