Vagrant+Ansibleで構成管理

構成管理ツールのAnsibleです。今回はCentOS7でシンプルなLAMP環境を作ってみました。

 

インターン生が以前シェルスクリプトでLAMP+WordPress環境を構築する課題を行ってくれましたが、やっていることは同じです。ただ、Ansibleを使うと一度行った処理はスルーしてくれるのと、より環境構築することに最適化されて洗練されています。

 

また、前回行ったVagrantですが、Vagrantで最小限のBOXファイルを共有・配布して、AnsibleのPlaybookで構築して貰うのが具合が良いかと思います。

 

 

Ansible…インフラをコード化するメリット

  • Playbookから構築したものであれば、再現性の保証がある。
    手順書は大切ですが、手動での構築では、手順書の内容と実環境が同一でない場合がある。
  • 同一構成をいくらでも複製できる。
  • 記述がシンプルで簡単で導入しやすい。
  • 一度実行したものはスルーして未実行の操作だけ実行してくれる。便利!冪等性。シェルスクリプトでも判定できないことはないけれど、判定の為のテストコードが多くなり見通しが悪くしんどい。
  • エージェントレス。クライアントに余計なモジュールを入れなくて良い。
  • 当然、パブリッククラウドの構成管理にも使えます。

手順書より信用度が高いし、使いまわしがしやすい。

 

環境

 

参考リンク

 

 

BOXを取得しよう

たくさん用意されています。ちょっと気まぐれにフレームワークで遊んだりする時楽です。

 

VagrantCloud

お弁当からVagrantのBoxファイルを取得することにします。

 

 

Vagrrant initしよう

bento/centos-7.2をダウンロード、vagrantfileの作成

 

 

Vagrantfile

Vagrantfileを下記に書き換えます。

 

こんな風に構成したいと思います。

  • Ansibleサーバ:192.168.10.50
  • WEBサーバ:192.168.10.51
  • DBサーバ:192.168.10.52

 

 

 

Vagrant up

Vagrantfileから仮想サーバを構成します。

 

 

 

AnsibleサーバにAnsibleを導入しよう

 

 

“the python mysqldb module is required”対策

mysql_dbモジュールを使用するのに必要です。

 

 

ここからは、TeratermでhostであるAnsibleサーバにログインし、web, dbホストを操作します。

  • 192.168.10.50:22
  • ユーザ:vagrant
  • パスワード:vagrant

 

 

接続先ホストの設定

 

 

 

 

 

 

公開鍵を渡します。

 

sshでログインできるか確認

 

 

コンフィグの作成

 

疎通確認

 

playbook.ymlの作成

 

 

構文確認

構文の確認をしてくれます。

 

ドライラン

実行はするけれど、反映はさせない便利なテストモードです。

 

 

実行

 

ざざっと問題なくいけば完了です。気持ちいい!!(۶•̀ᴗ•́)۶

 

色々メリットがあるので、インフラのコード化を検討されてはどうでしょうか。

お疲れ様です。

 

 

金広 優(エンジニア)

この記事を書いた人:金広 優(エンジニア)

システムガーディアン爆弾処理班。アクセス負荷対策やNginxへの移行案件が多いこの頃。IBM BlueMix InfrastructureやAWSなどクラウド案件が多くなってきました。

この記事に関してのお問い合わせ
御連絡・ご返信は原則2営業日以内を予定しております。
お急ぎの場合は、お手数ですが下記電話でもご対応をしております。

システムガーディアン株式会社
受付時間:平日9:00~18:00
受付担当:坪郷(つぼごう)・加藤
電話:03-6758-9166