a-yasui / ansible-mysql-master-slave

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ansible で MYSQL Master-Slave 環境を構築する

コマンド

デプロイサーバでこんな感じに実行する。

> ansible-playbook -i hosts.ini db.yml

構築

  1. master 1台, slave 2台とする

  2. aws t2-micro を 4台用意する。

    1. これらは同じ VPC ネットワークに設置する
    2. これのうち一つは deploy 用として用意。いらなけりゃなくていい。
  3. デプロイサーバから ssh db1.atys.local とホスト名でログインできるように設定しておく

    1. ~/.ssh/priv.pem に鍵を設置する
    2. ~/.ssh/config に設定を設置する
    3. このリポジトリをデプロイサーバに設置する
  4. Route53 に atys.local をプライベートDNSとして登録する

    1. master は 172.31.20.128group_vars/db.yml でベタ打ちになってるので合わせたほうが良いっぽい
    2. master のプライベートIP を db1.atys.local と対応させるようにする。
    3. slave のプライベートIP を db2.atys.localdb3.atys.local と対応させるようにする。
  5. ansible をインストールする

    1. yum install python3-pip
    2. pip install ansible-playbook
  6. 実行する

    1. ansible-playbook -i hosts.ini db.yml

~/.ssh/config ファイル設定例

Host db1.atys.local db2.atys.local db3.atys.local
	IdentityFile ~/.ssh/priv.pem

設定の変更とか

  1. mysql root パスワードは group_vars/db.yml に書いています。

対処的なこと

Security group で mysql の通信ができない時は slave が master のデータを取りにいけない。その時は security group を追加すれば問題がない。(もちろん、IP Range で範囲限定して)

いいかもなぁ

my.cnf の設定とかは roles/mysql/vars/main.yml にベタ書きだから、なんか振りかけられるようになれればいいかもなぁ

see

About