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。。。
うぉぉぅぃ。。。
こっちの教訓としては、
ツールを過信しすぎて、注意力が散漫になり過ぎないようにしましょうってことですね。

0 件のコメント:

コメントを投稿