사용자 도구

사이트 도구


devops:vagrant

Vagrant

Install

  • debian/ubuntu 은 https://www.vagrantup.com/downloads.html 에서 다운로드 하거나 vagrant 패키지를 설치하면 됨
  • Arch Linux Vagrant
    sudo pacman -S vagrant
  • 기본 Provider 지정. Default 설정을 해두면 --provider 옵션 불필요
    export VAGRANT_DEFAULT_PROVIDER=virtualbox

기본 provider 지정

  • ~/.bashrc 혹은 ~/.config/environment.d/원하는파일 등의 방식으로 default provider 로 지정하기
export VAGRANT_DEFAULT_PROVIDER=libvirt
  • 실행 시점마다 지정
vagrant up --provider=libvirt

libvirt

Ubuntu 에 설치하기

sudo apt install libvirt-dev
vagrant plugin install vagrant-libvirt
  • Ubuntu 용 vagrant, vagrant-libvirt 패키지가 존재하지만 linuxbrew와 ruby 버전이 안 맞아 충돌하는 경우가 많아서 그냥 brewvagrant 사용

Arch Linux 에 설치

# libvirtd 는 ebtables, dnsmasq 가 떠있ᅟ는 상태에서 실행해야 함.
sudo pacman -S libvirt qemu ebtables dnsmasq
 
# enable libvertd.servcie
sudo systemctl enable --now libvertd.service
 
# 플러그인 설치
vagrant plugin install vagrant-libvirt
# 잘 설치됐는지 확인
vagrant plugin list
 
# 실행시 --provider=libvirt 지정
vagrant up --provider=libvirt

기본 사용

  • 박스를 검색해서 찾은뒤 사용법을 따라하면 된다.
  • Ubuntu trusty 64bit, debian buster 64bit 띄우기
    # vagrant 관련 설정을 넣어둘 디렉토리로 이동하여 Vagrantfile 생성
    # for ubuntu
    vagrant init ubuntu/trusty64
    # for debian
    vagrant init debian/buster64
    
    # 띄우기
    vagrant up
    
    # 종료
    vagrant halt
    
    # 완전삭제
    vagrant destroy
  • SSH 접속
    vagrant ssh

공유 폴더 / shared folder / synced folder

  • 기본적으로 Host의 Vagrantfile 있는 디렉토리가 Linux 가상머신의 /vagrant 디렉토리로 마운트 된다. 두 시스템간의 파일 공유는 해당 디렉토리를 사용하면 된다.

Box를 미리 받아두기

# 원하는 box를 다운로드
wget https://atlas.hashicorp.com/laravel/boxes/homestead/versions/0.5.0/providers/virtualbox.box
 
# vagrant에 등록
vagrant box add laravel/homestead file:///c:/users/idecardo/downloads/virtualbox.box

Hyper-V

# 관리자 권한으로
vagrant up --provider=hyperv

vagrant-aws

사설 인증서 오류

box 다운로드시에 아래와 같은 오류가 발생한다면 실제로 문제가 없는지 확인하고 문제가 없는게 맞다면

An error occurred while downloading the remote file. The error
message, if any, is reproduced below. Please fix this error and try
again.
 
SSL certificate problem: self signed certificate in certificate chain

먼저 다음과 같이 --insecure로 box 를 받고나서

vagrant box add --insecure ubuntu/jammy64

환경 구성을 한다.

혹은 Vagrantfile에 다음과 같은 방식을 취한다.

config.vm.box_download_insecure = true

Linux box 기본 username/password

  • Linux box 의 기본 username/password 는 꼭 몰라도 된다.
  • ssh key 가 모두 설정되어 자동 로그인이 된다.
  • 그래도 알고자 한다면 vagrant ssh 명령으로 자동 로그인이 되면 id 명령으로 id 를 확인하고, sudo passwd <id> 해주면 된다.

명시적 username / password

config.ssh.username = '사용자명'
config.ssh.password = '비번'
config.ssh.insert_key = 'true'
  • 만약 사용자명을 root 로 할 경우 ssh 를 root 로 접근가능하게 해줘야한다. box 내의 /etc/ssh/sshd_config
PermitRootLogin yes

vagrant ubuntu

vagrant amazon-linux

참조

devops/vagrant.txt · 마지막으로 수정됨: 2024/01/03 16:56 저자 kwon37xi