2014年8月17日日曜日

[chef solo]mysql周りの設定について困った点

chefでmysqlの設定をやった際にハマったことをまとめておこう。 今回は2つのことに困った(;´∀`)
  1. mysqlのインストール
  2. master/slave構成を作る

1.mysqlのインストール

普通に以下のようにpackageインストールのリソースを書いたら、
何故かエラーで失敗する事態が発生。
%w{mysql mysql-server}.each do |pkg|
  package pkg do
    action :install
  end
end
どうもmysql-libsが競合してしまっているよう(参考)

なので、以下のようにmysqlコマンドが使えない場合はmysql-libsをuninstallするように修正して一件落着。
package "mysql-libs" do
  action: remove
  not_if "which mysql"
end

%w{mysql mysql-server}.each do |pkg|
  package pkg do
    action :install
  end
end

2.master/slave構成を作る

既存で作ってきた環境を利用してDBのmaster/slaveを構成しようとしたが、
なぜかslave側ホストからmaster側ホストへ"mysql -h"を通すことができなかった。

いろいろ調べた結果、原因は凡ミス。
略
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
略
  config.vm.hostname = "guest"
略
  config.vm.define "dbmaster" do |dbmaster|
    dbmaster.vm.hostname = "dbmaster"
    dbmaster.vm.network :private_network, ip: "xxx.xxx.xxx.xxx"
  end

  config.vm.define "dbslave" do |dbslave|
    dbslave.vm.hostname = "dbslave"
    dbslave.vm.network :private_network, ip: "yyy.yyy.yyy.yyy"
  end
略
えーっと。。。実はこのVagrantfileですね、
以前まではconfig.vm.define部の代わりに
config.vm.network "private_network", ip: "192.168.33.10"
なんて書いてあったんですねー。 これを途中でvagrant haltさせてDBの設定行ったもんだからグチャグチャになって、
ssh xxx.xxx.xxx.xxx
すると、vagrant@guest。。。
うぉぉぅぃ。。。
こっちの教訓としては、
ツールを過信しすぎて、注意力が散漫になり過ぎないようにしましょうってことですね。

2014年3月19日水曜日

Chef Soloの導入

起(introduction)

ひょんなことから家が停電に見舞われ,その影響かルータ及び自鯖のiptablesがバグった.
そんなことから自鯖の再設定をやってたわけなんですが,これって前にインスコするときと同じことまたやんないといけなくて激めんどいっすよね.
ってことで,サーバー状態管理フレームワークであるChefに目を付けたわけですよ.
まずはChefに関する書籍として,
達人出版会入門Chef Solo(伊藤直也 著)を購入.

時間の合間を見つけてお勉強するですよ.

承(development)

仮想環境構築ツール「Vagrant」のインストール

Chef Soloでいろいろやる際に,仮想環境構築ツールであるところのVagrantを使うと便利とあったのでインストール.
  1. Oracle VM VirtualBoxをインストール
  2. Vagrantのインストール

転(turnconclusion)

Chef Soloには
gem install vagrant
としてインストールするってあったけど,
どうやら現在ではこの方法ではインストールできなくなっているっぽいよ.

結(conclusion)

じゃあ仮想サーバ立ち上げてみようか.
  1. VagrantにOSのイメージをダウンロード
    vargant box add base http://developer.nerl.gov/downlaods/vagrant-boxes/CentOS-6.3-x86_64-v20130101.box
    
    ※この例ではCentOS 6.3で,その他のOSについてはここから欲しいものを追加してやってね.
  2. vagrant init