VirtualBox+Vagrant+Ansible로 Laravel 개발 환경을 구축

환경을 만들 때마다 여러가지 사이트 봐 조사하고 있어···힘들기 때문에, 코피페 할 수 있도록(듯이) 모았습니다.

기계 사양


  • Mac mini 2018
  • macOS Catalina (10.15.x)
  • Intel Core-i7 3.2GHz 6 코어
  • 메모리 32GB
  • SSD 512GB

  • VM 환경


  • CentOS 7.x
  • Nginx 1.x
  • PHP (PHP-FPM) 7.3.x
  • MariaDB 10.3.x
  • Laravel 6.x
  • 리포지토리
  • Bitbucket

  • IP 주소
  • 192.168.56.105

  • 사용자/비밀번호
  • root/vagrant
  • vagrant/vagrant

  • VM명
  • CentOS7


  • 할 일


  • VirtualBox에서 CentOS 설치
  • Vagrant Box 만들기
  • Ansible로 자동 구축
  • 그 외

  • 보충



    각 환경을 오거나 하기 때문에 아래와 같이 기재합니다.
    [VM]# VirtualBoxの中でroot権限で作業
    [Cent]$ MacのターミナルからCentOSに接続して作業
    [Cent]# MacのターミナルからCentOSに接続してroot権限で作業
    [Mac]$ MacのターミナルでMac内の作業
    

    전제


  • VirtualBox가 설치되었습니다
  • Vagrant가 설치되었습니다

  • ※참고
    Vagrant+VirtualBox 설치(Mac)

    VirtualBox 설정


  • 이름은 CentOS7에서 생성.
  • NAT 및 호스트 전용 어댑터 설정

  • ※참고
    Mac에서 VirtualBox에 CentOS7을 넣고 ssh 연결

    CentOS 설치



    ISO는 다음을 사용
    htp //ftp. 좋은 j. 아 d. jp / 푸 b / ぃ 無 x / 전과 s / 7.9. 이소

    설치 절차
    CentOS 7.6 설치 Linux 설치는 어렵지 않습니다.

    네트워크 설정 변경
    [VM]# cd /etc/sysconfig/network-scripts
    [VM]# vi ifcfg-enp0s3
    ★下記の点線内を編集
    ---
    ONBOOT=yes
    ---
    :wq
    
    [VM]# vi ifcfg-enp0s8
    ★下記の点線内を編集
    ---
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.56.105
    ---
    :wq
    
    [VM]# systemctl restart network
    

    터미널에서 연결


    [Mac]$ ssh [email protected]
    password:vagrant
    

    NIC 이름 변경



    ※CentOS6와 같이, 디바이스명을 ifcfg-eth0와 ifcfg-eth1로 하고 싶었던 만큼의 설정이므로, 하고 싶지 않으면 불필요합니다.
    [Cent]# cd /etc/default
    [Cent]# cp -p grub grub_yyyymmdd
    [Cent]# vi grub
    
    ★下記の点線内をコピペ
    ---
    GRUB_TIMEOUT=5
    GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
    GRUB_DEFAULT=saved
    GRUB_DISABLE_SUBMENU=true
    GRUB_TERMINAL_OUTPUT="console"
    GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet biosdevname=0 net.ifnames=0"
    GRUB_DISABLE_RECOVERY="true"
    ---
    :wq
    
    [Cent]# cp -p /boot/grub2/grub.cfg /boot/grub2/grub.cfg_yyyymmdd
    [Cent]# grub2-mkconfig -o /boot/grub2/grub.cfg
    
    [Cent]# cd /etc/sysconfig/network-scripts
    [Cent]# mv ifcfg-enp0s3 ifcfg-eth0
    [Cent]# mv ifcfg-enp0s8 ifcfg-eth1
    
    [Cent]# vi ifcfg-eth0
    ★enp0s3をeth0に置換
    :%s/enp0s3/eth0/g
    :wq
    
    [Cent]# vi ifcfg-eth1
    ★enp0s8をeth1に置換
    :%s/enp0s8/eth1/g
    :wq
    
    [Cent]# shutdown -r now
    

    ※참고
    【CentOS7】NIC의 디바이스명을 eth0로 변경

    재부팅 후 재연결

    VirtualBox Guest Additions 설치



    CD 이미지 삽입
    htps //w w. 세주쿠. 네 t/bぉg/76014#ゔぃr ㅇㅎㅎ
    [Cent]# yum -y update
    [Cent]# yum -y install kernel kernel-devel perl gcc
    [Cent]# yum -y install bzip2
    [Cent]# mkdir /media/cdrom
    [Cent]# mount -r /dev/cdrom /media/cdrom
    [Cent]# sh /media/cdrom/VBoxLinuxAdditions.run
    [Cent]# umount /media/cdrom
    

    ※참고
    VirtualBox Guest Additions 설치

    sudo 설정


    [Cent]# visudo
    
    ★下記の点線内を追記
    ---
    vagrant ALL=(ALL)       NOPASSWD: ALL
    ---
    :wq
    

    Vagrant 사용자 만들기 및 확인


    [Cent]# useradd -m vagrant
    [Cent]# passwd vagrant
    [Cent]# su - vagrant
    [Cent]$ sudo ls -l /root
    

    vagrant up시의 「Warning: Authentication failure. Retrying...」 대응


    [Cent]$ sudo yum -y install wget
    [Cent]$ mkdir -p /home/vagrant/.ssh
    [Cent]$ wget --no-check-certificate https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub -O /home/vagrant/.ssh/authorized_keys
    [Cent]$ chmod 0700 /home/vagrant/.ssh
    [Cent]$ chmod 0600 /home/vagrant/.ssh/authorized_keys
    [Cent]$ chown -R vagrant /home/vagrant/.ssh
    [Cent]$ exit
    

    ※참고
    vagrant up 명령을 실행할 때 Authentication failure. 오류 발생

    기타 다양한


    ★udevのルールの削除
    [Cent]# rm -f /etc/udev/rules.d/70-persistent-net.rules
    [Cent]# rm -rf /dev/.udev/
    [Cent]# rm -f /lib/udev/rules.d/75-persistent-net-generator.rules
    
    ★Box作成のための最適化
    [Cent]# yum clean all
    
    ★フラグメンテーションの解消
    [Cent]# rm -f /EMPTY
    
    [Cent]# shutdown -h now
    

    시작 중인 VirtualBox도 종료

    ※참고
    Vagrant에서 원본 Box 만들기

    Vagrant Box 만들기


    [Mac]$ cd <Boxを作成するディレクトリ>
    [Mac]$ vagrant package --base CentOS7 --output CentOS7.box
    [Mac]$ vagrant box add CentOS7 CentOS7.box
    [Mac]$ vagrant init CentOS7
    
    作成された Vagrantfile を開いて編集
    
    下記を追加
    config.ssh.insert_key = false
    
    下記を編集
    # config.vm.network "private_network", ip: "192.168.33.10"
    ↓
    config.vm.network "private_network", ip: "192.168.56.105", auto_config:false
    
    末尾のendの手前に挿入
    config.vm.provision "ansible" do |ansible|
      ansible.playbook = "ansible/playbook.yml"
      ansible.inventory_path = "ansible/hosts"
      ansible.limit = 'all'
    end
    

    Ansible 설치 및 설정



    설정 파일을 만들었습니다!
    htps : // 기주 b. 코 m/보 b타보/안시 bぇ
    [Mac]$ sudo chown $USER /usr/local/lib/pkgconfig
    [Mac]$ brew install ansible
    [Mac]$ ansible --version
    ansible 2.9.2
    
    [Mac]$ cd <Boxを作成したディレクトリ>
    [Mac]$ git clone https://github.com/bobtabo/ansible.git
    

    ※참고
    가상 환경 입문! Virtualbox, Vagrant, Ansible로 LAMP 환경을 손쉽게 구축
    Ansible에서 AmazonLinux2 + Laravel + mysql5.7 + nginx + SSL 환경을 구축합니다.

    YAML 편집기에 VSCode를 사용하는 경우
    Visual Studio Code의 사용자 인터페이스(UI) 표시를 일본어로 만들기 - Korean Language Pack 설치
    [Ansible] Visual Studio Code에서 Playbook을 작성할 때 유용한 확장

    vagrant-vbguest 설치


    [Mac]$ vagrant plugin install vagrant-vbguest
    

    ※참고
    Vagrant에서 마운트 오류가 발생했을 때 해결하는 방법

    환경 구축


    [Mac]$ vagrant up
    

    ※참고
    가상 환경 입문! Virtualbox, Vagrant, Ansible로 LAMP 환경을 손쉽게 구축

    동작 확인


    [Mac]$ sudo vi /private/etc/hosts
    ★下記の点線内を追記
    ---
    192.168.56.105 laravel6.local
    ---
    :wq
    

    브라우저에서 확인
    http://laravel6.local/


    SSHFS 설치



    htps : // m / ysk 24 k / ms / b b148530 A55 A4E 55d99b
    FUSE for macOS 는 이쪽 에서 다운로드

    마운트 포인트 만들기


    [Mac]$ mkdir -p ~/MountPoint/mount
    

    마운트


    [Mac]$ sshfs [email protected]:/home/vagrant ~/MountPoint/mount
    password:vagrant
    

    언마운트


    [Mac]$ umount -f ~/MountPoint/mount
    

    PhpStorm 설정



    h tps:// 퀵했다. 작은 m / 푸른 그림 s / MS / 그림 13b36C449905b2b46cb
    h tp // w w. 1x1. jp/bぉg/2014/08/호w--세트 pphp-레모테-데부-g우우 th-ゔぁg란 tvm. HTML

    기타


  • Git 저장소의 https/ssh를 전환하고 싶습니다.
  • github에서 https로 clone 한 저장소의 origin을 ssh로 변경

  • SSHFS로 마운트 해제할 수 없는 경우

  • Mac의 sshfs에서 unmount 할 수 없을 때의 대처

  • 좋은 웹페이지 즐겨찾기