Vagrant + Ansible로 LAMP 환경 구축

소개



지금 입니다만, 오랜만에 로컬에 LAMP 환경을 구축할 기회가 있었으므로 순서등을 메모합니다.

준비



다음을 설치합니다.
  • Vagrant - Download
  • VirtualBox - Download

  • 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입니다.

    좋은 웹페이지 즐겨찾기