ansible 2016-04-02 8.51.53

目次

  1. はじめに
  2. VagrantとAnsibleについて
  3. 環境構築してみる
  4. 設定ファイルについて
  5. おわりに

1.はじめに

こんにちは。シカタローです。最近、本ブログに機能を追加する必要がありました。de2p開発者ブログでは開発環境は全社共有となっているため、直接編集して開発すると開発環境を壊してしまう可能性がありました。そこで、ローカルマシーンに仮想環境を構築し、そこで開発を行うことにしました。仮想環境を構築するにあたり、今後同様の機会があった場合を想定しVagrantとAnsibleで自動化を行ったのでご紹介したいと思います。

今回作成したソースコードはGitHubに置いてあります。

2.VagrantとAnsibleについて

VagrantとAnsibleは環境構築を自動化するツールです。
これらのツールを使用することで仮想環境をコードとして表現出来るため以下のメリットがあります。
・仮想環境の状態をバージョン管理出来る
・環境を壊してしまった場合の作り直しが容易になる

今回作成した環境は以下の様になります。

env 2016-04-02 17.39.29

3.環境構築してみる

百聞は一見に如かず。早速やってみましょう。
VirtualBoxとVagrantのインストールが必要です。なおAnsibleはCentOSへ自動インストールする様に設定してあるため不要です。

VirtualBoxのインストール

VirtualBoxの公式サイトにアクセスし、お使いのOSに対応したパッケージをダウンロードします。

virtualbox 2016-04-03 3.21.06

virtualbox 2016-04-03 3.21.35

ダウンロードしたパッケージを開き、手順に従ってインストールして下さい。

vaturlbox 2016-04-03 3.27.37

Vagrantのインストール

Vagrantの公式サイトにアクセスし、お使いのOSに対応したパッケージをダウンロードします。

スクリーンショット 2016-04-03 3.41.02

ダウンロードしたパッケージを開き、手順に従ってインストールして下さい。

vagrant 2016-04-03 3.40.37

Vagrantコマンド実行

準備が出来たので実際に構築してみましょう。たったの3ステップで完了です。

$ git clone git@github.com:de2p-shikataro/wp-dev.git
$ cd wp-dev
$ vagrant up

結果確認

http://192.168.33.10/wp-admin/install.phpにブラウザからアクセスするとWordPressのインストール画面が出力されるはずです。

wordpress 2016-04-03 4.21.45

4.設定ファイルについて

Vagrantの設定は「Vagrantfile」に記述しています。

# -*- mode: ruby -*-
# vi: set ft=ruby :

# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure(2) do |config|

  # boxが存在しなければ新規にCenOS6.7のboxをダウンロード
  config.vm.box = "CentOS67"
  config.vm.box_url = "https://github.com/CommanderK5/packer-centos-template/releases/download/0.6.7/vagrant-centos-6.7.box"

  # ゲストOSのIPアドレスの設定
  config.vm.network "private_network", ip: "192.168.33.10"

  # ホストとゲストのディレクトリ同期設定
  config.vm.synced_folder "wordpress", "/srv/wordpress", create: "true", type: "rsync"

  # ansibleの設定
  config.vm.provision "ansible_local" do |ansible|
    ansible.playbook = "ansible/site.yml"
  end

end

Ansibleの設定は「ansible/site.yml」に記述しています。

---
- name: Install WordPress, MySQL, Nginx, and PHP-FPM
  hosts: all
  sudo: yes

  roles:
    - common
    - mysql
    - nginx
    - php-fpm
    - wordpress

5.おわりに

仮想環境を構築することで他の人に迷惑をかけずに開発が出来ると思います。
参考になれば嬉しいです。

de2p株式会社は最新の技術を積極的に採用して開発の効率化を図っています。テクノロジーを使用した世界のハックに興味のある方はこちらまでよろしくお願いします。


<スポンサーリンク>