티스토리 뷰

DevOps

Vagrant 기본 사용법, 명령어

후늬뉨 2021. 6. 25. 16:01

Vagrant 란?

앤서블 교육을 받으면서 초기에 설치한 오픈소스인데, VM을 쉽게 관리해주는 도구라고 한다.

보통 개발환경 구축할때 많이 사용하는 도구라고 하는데, 이번에 처음 알게 되었다.

HashiCorp 라는 회사에서 만든 오픈소스이고, Vagrantfile에 VM 스펙을 정의해두고 실행하면 VM이 생성되거나 업데이트 된다.

 

Vagrant를 사용하기 위해 맥북에 virtualbox6.x, vagrant 2.x 버전을 설치했다.

아래의 Vagrantfile을 특정 디렉토리에 작성한다.


아래의 Vagrantfile은 Ansible 실습을 위해 iac-control, iac-mgmt1, iac-mgmt2  3개의 VM을 배포하는 스크립트파일이다.

 

~/vagrant/iac/Vagrantfile

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|

  # iac-control VM
  config.vm.define "iac-control" do |config|
    config.vm.box = "ubuntu/focal64"
    config.vm.provider "virtualbox" do |vb|
      vb.name = "iac-control"
      vb.cpus = 2
      vb.memory = 3000
    end
    config.vm.hostname = "iac-control"
    config.vm.network "private_network", ip: "192.168.200.100"
  end

  # iac-mgmt1 VM
  config.vm.define "iac-mgmt1" do |config|
    config.vm.box = "ubuntu/focal64"
    config.vm.provider "virtualbox" do |vb|
      vb.name = "iac-mgmt1"
      vb.cpus = 2
      vb.memory = 2000
    end
    config.vm.hostname = "iac-mgmt1"
    config.vm.network "private_network", ip: "192.168.200.101"
  end

  # iac-mgmt2 VM
  config.vm.define "iac-mgmt2" do |config|
    config.vm.box = "ubuntu/focal64"
    config.vm.provider "virtualbox" do |vb|
      vb.name = "iac-mgmt2"
      vb.cpus = 2
      vb.memory = 2000
    end
    config.vm.hostname = "iac-mgmt2"
    config.vm.network "private_network", ip: "192.168.200.102"
  end

  # Hostmanager plugin
  config.hostmanager.enabled = true
  config.hostmanager.manage_guest = true

  # Enable SSH Password Authentication
  config.vm.provision "shell", inline: <<-SHELL
    sed -i 's/ChallengeResponseAuthentication no/ChallengeResponseAuthentication yes/g' /etc/ssh/sshd_config
    sed -i 's/archive.ubuntu.com/mirror.kakao.com/g' /etc/apt/sources.list
    sed -i 's/security.ubuntu.com/mirror.kakao.com/g' /etc/apt/sources.list
    systemctl restart ssh
    apt update
    apt install -y chrony
  SHELL

end

 

Vagrantfile을 작성한후 해당 파일이 위치한 경로로 이동한후 vagrant up 명령어를 입력하면 VM이 배포된다.

배포도중 에러가 발생할수 있는데 나의 경우에는 다시 재시도를 했더니 정상적으로 배포가 되었다.

 

상태확인

vagrant status [VM]

 시작

vagrant up [VM]

 

일시중지

vagrant suspend [VM]

재개

vagrant resume [VM]

중지

vagrant halt [VM]

삭제

vagrant destroy [VM]

SSH 연결

vagrant ssh [VM]

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함