Vagrant를 이용한 개발환경 구축과 NetBeans를 이용한 C/C++개발과 리모트 디버깅

Preview:

Citation preview

Vagrant를 이용한개발환경 구축과NetBeans를 이용한 C/C++개발과 리모트 디버깅

협업시스템개발팀 / 신승엽

팀에 새로운 인원이 들어왔다면개발환경 구축을 위해...

"위키 보고 따라하세요"

"위..키... 보고... 따..라... 하..세요..."

"다음에 들어올 사람을 위해서 정리해 두어야겠군!"

따라하는데 반나절이 걸린다면?!

입사한 사람이 여러 명이라면?!

1. 오늘 입사한 모든 사람이 개발환경 구축에소모한 리소스를 구하시오.(단, n은 입사한 사람의 수, t는 걸리는 시간)

해답: _________________________________________

vagrant명사. 방랑자

vagrant세가지만 기억하세요!

$ vagrant box add "centos 6.3" http://...$ vagrant init "centos 6.3"$ vagrant up

기반이 되는 VM 이미지 추가

vagrant 초기화Vagrantfile이 만들어져요!vm 부팅

여기까지만...

저희 개발환경은...

Centos 6.3gcc 4.6.x

hbaseredis

...

깡통 VM으로 할 수 있는 게 없다!

Vagrantfile

쉽게말해서VM을 구성하는방법을

기술한 파일!

어떤 방법?

포트포워딩공유폴더

Provisioning...

VM의 각종 서비스에 접근할 수 있게!

소프트웨어를 설치하고 필요한 구성을 셋팅해서실행할 수 있도록 해 놓는 것

Provisioning

ShellChef Solo

Chef ClientDockerPuppet

...

여기서 잠깐!

Chef

Chef는대상이 물리든 가상이든 혹은 클라우드이든 서버나애플리케이션의 배포를 쉽게

만들어 주는 시스템

Cookbook

배포 설정 등을 담은 기본 단위Recipe를포함

원래대로라면이 구성이 필요하지만...

Workstation

Knife

Node

Chef Client

Chef Server

Cookbook

배포 설정등을 담은 기본 단위Recipe를 포함

Chef Solo

Chef Server 없이 CookBook을쓸 수 있다!

Shell

Vagrant.configure("2") do |config|config.vm.provision "shell", path: "script.sh"

end

Chef Solo

Vagrant.configure("2") do |config|config.vm.provision "chef_solo" do |chef|

chef.add_recipe "apache"end

end

아무튼 이렇게vagrant 구성이 완료되었다면이제 팀 내에공유하는 것이

인지상정!

공유를 위해선

VagrantfileChef Cookbooks

기타 등등

형상관리시스템에올리면 끝!

$ vagrant box add "centos 6.3" http://...$ vagrant init "centos 6.3"$ vagrant up

기반이 되는 VM 이미지 추가

vagrant 초기화Vagrantfile이 만들어져요!vm 부팅

$ vagrant box add "centos 6.3" http://...$ git clone http://...$ vagrant up

기반이 되는 VM 이미지 추가

vagrant 설정 clonevm 부팅

"다음에 들어올 사람을 위해서 정리해 두어야겠군!"

↓ ↓ ↓

"다음에 들어온 사람은 vagrant up만하면 되겠군!"

로컬 PC

VM

httpdhbaseredis

CUBRIDmemcached

...

↓ ↓ ↓

$ vagrant up

그런데 말입니다...

이렇게 로컬 PC에환경을 구축하니...

IDE를 붙일 수 있게 되었어요!!

C/C++ Build Host원격 서버에서 빌드/디버그가 가능!

File Access 방법

SFTPAutomatic Copying

System Level Sharing

Samba 등으로 이미 파일 공유가 되어 있을 경우우리는 vagrant를 통해 공유 폴더 설정이 되었기 때문에 이 설정을 사용!

Path Mapping

로컬 PC

VM

httpdhbaseredis

CUBRIDmemcached

...

로컬 PC

VM

httpdhbaseredis

CUBRIDmemcached

...

IDERemote

Build/Debug

자세한내용을 알고 싶으신 분은

↓ ↓ ↓

flysky@flysky.krfacebook.com/flysky.kr

Recommended