Virtual 테스트 환경 구성하기

인프라 용어

  • 프로비저닝 (provisioning) : 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요 시 시스템을 즉시 사용할 수 있는 상태로 준비해두는 것을 말한다 (출처: 위키)

IaC를 위한 Tools

Vagrant

Vagrant is a tool for building and managing virtual machine environments in a single workflow. With an easy-to-use workflow and focus on automation, Vagrant lowers development environment setup time, increases production parity, and makes the “works on my machine” excuse a relic of the past.

Remarkable is that, once someone else creates a single vagrantfile, we just need to vagrant up and everything is installed and configured for we to work. This means that other members of a team create their development environments from the same configuration.

Command Description
vagrant init Make base VagrantFile for provisioning
vagrant up Read Vagrantfile and run provisioning
vagrant halt Exit virtual machine running at vagrant
vagrant destroy Destroy virtual machine running at vagrant
vagrant ssh Access to virtual machine running at vagrant
vagrant provision Apply changes to virtual machine running at vagrant

VirtualBox

VirtualBox is a powerful x86 and AMD64/Intel64 virtualization product for enterprise as well as home use. You have experienced at your school (if your are in computer engineering major) that run Window OS on MAC. Virtual Box helps running other OS on the machine even if the OS does not match for it

CentOS

CentOS 는 레드햇 제휴로 개발한 컴퓨터 운영체제이다. 리눅스와 완벽하게 호환되는 무료 기업용 컴퓨팅 플랫폼을 제공할 목적으로 만들어진 리눅스 계열 운영 체제 가운데 하나다.

Setting Test Environment by Vagrant

  1. 가상 머신에 필요한 설정 자동으로 구성하기 VagrantFile 하나로 운영체제와, virtualBox를 설정한다.
Vagrant.configure("2") do |config|
  config.vm.define "m-k8s" do |cfg| # Virtual Machine
    cfg.vm.box = "sysnet4admin/CentOS-k8s"
    cfg.vm.provider "virtualbox" do |vb| # provider = VirtualBox
      vb.name = "m-k8s(github_SysNet4Admin)"
      vb.cpus = 2
      vb.memory = 2048
      vb.customize ["modifyvm", :id, "--groups", "/k8s-SM(github_SysNet4Admin)"]
    end
    cfg.vm.host_name = "m-k8s"
    cfg.vm.network "private_network", ip: "192.168.1.10"
    cfg.vm.network "forwarded_port", guest: 22, host: 60010, auto_correct:true, id: "ssh"
    cfg.vm.synced_folder "../data", "/vagrant", disabled: true
  end
end

Provisioning

install packages and vagrant provision

EPEL (Extra Packages for Enterprise Linux)

Extra Packages for Enterprise Linux is a Fedora Special Interest Group that creates, maintains, and manages a high quality set of additional packages for Enterprise Linux, including, but not limited to, Linux, CnetOS, Oracle Linux

스크린샷 2022-02-14 오후 8.54.30

뭔가 많이 설치될 줄 알았는데 15k밖에 안된다.

스크린샷 2022-02-14 오후 8.55.46

오히려 vim이 진짜 무겁구나

vi 와 vim의 차이점 : vi는 HJKL 로만 이동할 수 있다.

Access virtual machine

We can access to virtual machine by vagrant ssh <가상머신이름> There is an useful tool that can access to multiple virtual machines at one time

PuTTY

PuTTY는 SSH, 텔넷, rlogin, raw TCP를 위한 클라이언트로 동작하는 오픈소스 단말 에뮬레이터 응용 프로그램이다. 즉, PuTTY는 SSH(Secure Shell), Telnet, TCP 접속을 위한 클라이언트이다.

일반적으로 Window환경의 호스트 운영체제에서 다른 운영체제에 CLI(Command Line Interface)환경의 SSH 접속에 편리하며 또한 설치와 사용법이 굉장히 간단하다는 장점도 있다.

PuTTY를 실행하면 전회사에서 익숙하게 쓰던 화면이 보인다.

Putty 첫실행화면

사진 및 글 출처

MAC 은 PuTTY 필요없이 터미널에서 쉽게 ssh로 원격서버에 접속할 수 있다. 다만 super PuTTY 처럼 여러 서버에 같은 명령어를 내리려면 shell 파일을 만들어서 수행해야 된다.

댓글남기기