LoginSignup
0
0

More than 3 years have passed since last update.

Vagrant + Ansible で LAMP 環境を構築する

Posted at

はじめに

今さらですが、久しぶりにローカルに LAMP 環境を構築する機会があったので手順などをメモします。

準備

以下をインストールします。

Ansible を使いたいので Homebrew でインストールしておきます。

$ brew install ansible

Vagrant

作業ディレクトリを用意して Vagrantfile を作成します。

# 作業ディレクトリの作成
$ mkdir /path/to/work/dir
$ cd /path/to/work/dir

# Vagrantfile の作成
$ vagrant init

box は Vagrant Cloud で提供されているものを使います。今回は centos/7 を利用します。IP アドレスはデフォルトで 192.168.33.10 です。

Vagrant.configure("2") do |config|
  config.vm.box = "centos/7"

  config.vm.define "hoge" do |node|
    config.vm.network "private_network", ip: "192.168.33.10"
    config.vm.synced_folder "data", "/vagrant", create: true
  end
end

このまま vagrant up するとおそらく共有フォルダのあたりでコケます。理由は VirtualBox Guest Additions のバージョンが合わないからです。なので、それをいい感じにしてくれる Vagrant のプラグインをインストールします。

$ vagrant plugin install vagrant-vbguest

これで vagrant up すると、とりあえず CentOS な環境が出来上がります。ちなみに作成した環境にログインするときは vagrant ssh でもいけますが vagrant ssh-connfig すると ssh で接続するための情報が出力されます。~/.ssh/config に書き込んでおくと ssh default みたいな感じでログインできます。

Ansible

今回は手っ取り早く LAMP 環境を構築したいので、AP サーバとか DB サーバとかは個別に用意しません。

Vagrantfile があるところに provisioning ディレクトリを作成して、その中に playbook.yml として作成します。情報としては古いですが、昔参考にしていた記事 をもとに playbook を作成していきます。

- hosts: playground
  become: yes
  tasks:
    - name: system update
      yum:
        name: '*'
        state: latest

    - name: install tools
      yum:
        name:
          - wget
          - vim
          - git

    - name: install repos
      yum:
        name:
          - epel-release
          - https://rpms.remirepo.net/enterprise/remi-release-7.rpm
        state: present

    - name: disable repos
      replace:
        path: /etc/yum.repos.d/{{item}}
        regexp: 'enabled *= *1'
        replace: 'enabled=0'
      loop:
        - epel.repo
        - remi.repo
        - remi-php70.repo

    - name: install packages
      yum:
        name:
          - httpd-devel
          - php
          - php-devel
          - php-mbstring
          - php-mysqlnd
          - php-pdo
          - mariadb-server
        enablerepo: "epel,remi-php70"

    - name: start httpd
      service:
        name: httpd
        state: started
        enabled: yes

    - name: start mariadb
      service:
        name: mariadb
        state: started
        enabled: yes

これで vagrant provision すると httpd/php/mariadb がインストールされた環境が構築されます。

ブラウザで http://192.168.33.10 にアクセスしてテストページが表示されていれば OK です。

Screen Shot 2019-08-19 at 0.16.46.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0