Vagrant

22.06.13

가로선 2022. 6. 13. 22:14

 

   목차   

 

1. Vagrant

 - Vagrant 정리

 - Vagrant 초기파일 생성

 - VM의 Hostname 수정 및 base image 지정

 - Vagrant 실행(VM 생성) 및 VM 삭제

 - 포트포워딩 및 Shell 사용

 - VM 설정 및 폴더 동기화

 - VM 동시에 2개 생성

 - FTP 서버 생성


 

   Vagrant   

 

   Vagrant 정리   

 - Vagrant : Hasicorp사에서 만든 IaC 도구
 - IaC : Infrastructure As Code
    - Infra를 Code로 관리하는 기술
    - 1000대의 가상머신을 세팅한다면?
        - 완벽하게 똑같은 설정임을 보장할 방법이 없다
        - 만약에 code로 관리한다면?
            - 멱등성을 보장할 수 있다
                - 멱등성 : 몇 번을 수행해도 결과는 똑같음을 보장


 - 배포(=설치)관리
    - Terraform
        - Platform에 종속되지 않는다
        - AWS의 Cloud Platform은 aws에서만 사용이 가능
    - Vagrant
        - private 

 - 구성관리(설치 후 설정 작업)
    - puppet
        - RedHat 
    - chef
        - 설정이 힘들다
    - Ansible
        - 배우기 쉽다

 

   Vagrant 초기파일 생성   

 - Vagrantfile : Vagrant를 Provisioning 하기 위한 초기파일

    - Host가 직접 이름만 갖게하여 생성해도 무방

 

초기파일 생성을 위해 init 진해

    - powershell에서 진행

    - 해당 경로에 한글이 존재하여 characterset 오류가 발생하였다

    

vagrant 폴더를 c드라이브에 생성하여 다시 진행

 

vagrantfile 생성 확인

 

vscode에서 vagrant 확장팩 다운로드

 

   VM의 Hostname 수정 및 base image 지정   

 - Vagrantfile 수정(VScode 사용)

 

Hostname 지정

    - | | : 단락구문 지정

        - 설정해 놓은 이름으로 무조건 시작해야 한다

 

사용할 Base Image 지정

    - 업데이트가 자동으로 되지 않아 오류가 많이 발생하므로 vbguest 꼭 넣어주기(GuestAddition 문제)
        - 원하는대로 ip 설정불가(IaC의 의미가 퇴색된다)

 

https://app.vagrantup.com/boxes/search

 

Vagrant Cloud by HashiCorp

Vagrant Cloud by HashiCorp

app.vagrantup.com

    - 해당 위치에서 Base Image 확인 가능

 

centos 7 이미지 확인

 

   Vagrant 실행(VM 생성) 및 VM 삭제   

 

vscode 터미널에서 vagrant-vbguest 다운로드

    - vagrant-vbguest : 가상머신과 VirtualBox 호스트의 Guest Additions 버전이

                                          다를 경우에 알맞은 버전을 설치해 주는 플러그인

 

vagrant up을 통해 실행

 

virtualBox에 VM이 생성된 것을 확인

 

ID, PW는 vagrant로 동일

 

ssh 접속 확인

    - sudo su - 를 통해 root의 권한을 가질 수 있다

 

vagrant destroy를 통해 vm 삭제

    - 필히, vm 삭제 후 설정 변경을 해야 잔재가 남지 않는다

 

virtualBox에서 삭제된 것을 확인

 

   포트포워딩 및 Shell 사용   

 

포트포워딩 진행

    - 단락명.vm.network를 통해 설정

    - ssh는 Vagrant에서는 2222번으로 포트포워딩 되어있다

    - 포트포워딩하려는 포트가 존재할 때는 오류가 뜨므로 실행해보고 오류가 발생 시 포트 변경 진행

        - auto_correct=true를 통해 포트포워딩 오류해결 가능

 

웹페이지 접속 확인

 

   VM 설정 및 폴더 동기화   

 

VM의 이름, 메모리, CPU 설정

 

설정한 대로 VM생성이 된 것을 확인

 

data 폴더를 생성하여 그 안에 index.html 생성

 

synced_folder를 통해 폴더 동기화 진행

 

index.html을 제대로 가져옴에도 불구하고 메인페이지 변경 x

 

에러 로그 확인

 

index.html permission denied가 뜨는 것을 확인

    - selinux가 막고 있어 permission denied가 나는 것

    

selinux를 disabled 시키고 다시 접속 확인

 

   VM 동시에 2개 생성   

 

1번째 VM 생성

 

2번째 VM 생성

    - tag 변경, hostname 변경, vm 이름 변경, 포트 변경(겹치면 x) 진행

    - end 위치 잘 생각하자!

 

VirtualBox에서 생성된 것을 확인

 

설정한 포트를 통해 웹페이지 접속 확인

 

   FTP 서버 생성   

 

FTP active mode 사용

    - config.vm.provision 라인에서 path를 주어 스크립트 파일을 적용할 수 있다

        - 같은 폴더에 위치하는게 아무래도 편하겠죠?

 

FTP 서버 생성 스크립트

 

외부에서 포트포워딩한 포트로 ftp 접속 확인