Allied ArchitectsAllied ArchitectsEngineer Blog

Ansible入門〜LAMP環境構築〜 (Advent Calendar 6日目)

2014/12/6 Ansible

この記事は Ansible Advent Calendar 2014 – Qiita の6日目の記事です。

お久しぶりです。Perfumeエンジニアの@massa142です。
(明日はWOWOWでのPerfume Nightです。このために今日WOWOWに加入しました(`・ω・´)キリッ)

仕事で新規開発をすることになってその開発環境を構築するのに、Vagrant × Ansibleの組み合わせがとても便利&お手軽だったので、ここでAnsibleについて紹介していこうと思います。

Ansibleってなに?

AnsibleとはPython製の構成管理ソフトウェアです。
詳しくは今年1年間でAnsible界隈ではどのような変化が起こったのか。の記事をご覧になって下さい。
公式ドキュメントはこちら

こういったプロビジョニングツールとしては他にchefなども有名ですが、個人的に以下のポイントがAnsibleの好きなところです。

・サーバ側に何もインストールする必要なし
・ディレクトリ構造がシンプル
・yaml形式で簡単

前提

今回ansibleを使って構築していく環境はこんな感じです。
・CentOS:6.4 x86_64
・PHP:5.3
・MySQL:5.6

また今回作成してgithubにあげたものは、こちらです。

参考にしたサイト

今回PHPの環境構築用のplaybookを作成していくうえで、Phansibleというサイトを参考にしました。

設定項目をポチポチしていくだけで整ったVagrantfileとansibleのファイルがDLできる、とてもありがたいサイトです。

Vagrantfileの解説

まずはVagrantfileはこんな感じです。

ここでprovisionをansibleで行うことを宣言しています。
※今回はinventoryファイルにhost先のアドレスとして、192.168.33.40を設定しています。

playbookの解説

さっきのVagrantfileで設定していたplaybook.ymlはこんな感じ。

ここのrolesで定義しているのが、上から順に実行されていきます。
(各々、roles/配下のディレクトリに対応してます。)
また、vars/packages.ymlでインストールしたいSystem PackagesとPHP Packagesを管理してます。

それでは、次にrolesのなかのphpとmysqlを取り上げて見ていきます。

PHPのインストール

PHPのインストールを行っているtaskのファイルはこんな感じです。

とても直感的でわかりやすいかなと思います。

php.iniの設定ではtemplateという機能を利用しています。
roles/php/templates/php.ini.tplのファイルをテンプレートとして、host先に/etc/php.iniを生成してくれています。

MySQLのインストール

MySQLに関しては、Ansible Galaxyから落としてきたRoleを利用してます。
Ansible Galaxyとは色々なRoleが公開されいるサイトです。
好みのRoleを調べて、

コマンドでインストールしてみて下さい。

今回は以下のRoleを使わせてもらってます。
https://galaxy.ansible.com/list#/roles/435
ここのREADMEにも説明がありますが、デフォルトの設定を変更して利用する際は、vars/配下にファイルを作ってよしなにやってみて下さい。以下、READMEからの引用です。

こんな感じで、DBの名前やrootのパスワードなどを設定して下さい。

まとめ

以上、Ansibleの使い方の基本的なところをさらっと見てみました。

はじめの方にも書きましたが、Ansibleはとてもシンプルで使い勝手が良いツールです。またPython製とありますが、記述は基本yaml形式なのでPythonのことが何もわからなくても利用可能です。

社内ではchef使いのほうが優勢ですが、もっとAnsibleの良さが広く伝わっていけばいいな…|ω・)チラッ

最後に

この記事は以下の2つのAdvent Calendar 6日目の記事を兼ねています。
Ansible Advent Calendar 2014 – Qiita
Allied ArchitectsEngineer Blog Advent Calendar 2014

弊社で行っているAdvent Calendarの明日はごえもんの番です!

新井 正貴
  • 新井 正貴
  • Software Developer
  • こんにちは。アライドには2013年に新卒で入社しました。 Perfume × ラクロス × エンジニア といった感じです。お手柔らかにお願いしますm(_ _)m

RELATION ENTRY

Instagram開発者に送る、注意すべきAPI規約/ブランド規約まとめ

Instagram開発者に送る、注意すべ...

2015/07/8 Instagram

お久しぶりです。Perfumeエンジニアの@massa142です。 今年のPerfumeはメジャーデビュー10周年、結成15周年というAnniversary Yearを迎えて、大いに盛り上がっています。Perfume Anniversary Website 9月に行われるAnniversary 1...

続きを読む

BigQuery × Perfume × tweet分析(Advent Calendar 19日目)

BigQuery × Perfume ×...

2014/12/19 Google BigQuery

この記事は Google Cloud Platform Advent Calendar 2014 - Qiita の19日目の記事も兼ねています。 こんにちは。Perfumeエンジニアの@massa142です。 今回の記事は、Google BigQueryに関して前々から気になっていたんで、この...

続きを読む

新井 正貴の記事一覧へ

ページTOPへ