Inception Step 3: vm 설정

James An·2022년 10월 20일
0

42SEOUL

목록 보기
11/11
post-custom-banner

1. Virtual Box에 debian 설치

  • VM 세팅은 아래 글을 참고했다.
    https://developer-eun-diary.tistory.com/135

  • 평가 진행을 위해 설치를 진행하면서 Software Selection 시 Debian desktop environment, SSH server, standard system utilities를 설치하였다.

2. package 설치

  • 기본적인 package들은 Shell Script로 작성하면 하나씩 설치하는 번거로움을 줄일 수 있다.
# 사용자 전환
su -

// init.sh
# Repository 인덱스 업데이트
apt-get update

# sudo 설치
apt-get install -y sudo

# 패키지 관리자가 https를 이용할 수 있도록 설정
sudo apt-get install -y apt-transport-https

# SSL 통신이 가능하도록 CA (Certificate Authorities)로부터 인증서를 획득
sudo apt-get install -y ca-certificates

# 다양한 통신 프로토콜을 지원하는 데이터 송,수신 패키지
sudo apt-get install -y curl

# Repository를 추가 및 삭제할 수 있도록 설정하는 패키지
sudo apt-get install -y software-properties-common

# git 설치
sudo apt-get install -y git

# make 설치
sudo apt-get install -y make

# vim 설치
sudo apt-get install -y vim

# systemd 설치
sudo apt-get install -y systemd
  • Docker와 docker-compose 설치 및 config 세팅도 Shell Script로 작성하면 번거로움을 줄일 수 있다.
//docker.sh
# Repository 인덱스 업데이트
sudo apt-get update

# 도커 패키지 신뢰성 추가
# f - http의 요청 헤더의 Content-Type을 multipart/form-data로 설정
# s - silent로 진행과정 및 오류 생략
# S - SSL 이용
# L - curl의 결과가 Redirection이더라도, 해당 URL로 작업을 이어감
# 파이프 이후의 apt-key는 다운로드 받은 패키지를 인증된 패키지로 인식 시키기 위해 키 리스트에 패키지를 추가
# (apt는 기본적으로 인증된 패키지들을 키 리스트로 관리)
sudo curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

# 도커를 설치할 수 있도록 Repository 추가
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"

# Repository 인덱스 업데이트
sudo apt-get update

# 도커 설치
sudo apt-get install -y docker.io

# 도커 소켓 /var/run/docker.sock 권한 666 설정하여 다른 사용자도 접근할 수 있도록 변경
sudo chmod 666 /var/run/docker.sock

# 도커 컴포즈 설치 (1.29.2 버전)
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 도커 컴포즈 실행 권한 부여
sudo chmod +x /usr/local/bin/docker-compose

# 도커 서비스 재시작 시 컨테이너를 종료하지 않도록 설정
sudo su -c 'printf "{\n\t\"live-restore\": true\n}" > /etc/docker/docker.json'

# 도커 서비스 재시작
sudo systemctl restart docker
  • 추가로 vm 상에서 한글을 적용하기 위한 패키지도 설치 후 reboot 해주었다.
// hangle.sh
sudo apt update

sudo apt install -y fcitx-hangul

sudo apt install -y fcitx-lib*

sudo apt install -y fonts-nanum*

# 설치 후  Reboot
init 6

3. clipboard

  • Shell Script로 작성된 파일들을 vm으로 복사 붙여넣기 하려면 clipboard를 설정해야한다.
  • 우선, guest image를 다운로드하고 vm의 저장소에 추가한다. (cluster vbox 버전에 맞춰 설치)
  • 그 후 아래 명령어를 순차적으로 실행한다.
# Repository 인덱스 업데이트
sudo apt-get update

# 커널 모듈을 빌드하기 위한 패키지 설치 (uname -r은 커널의 버전을 의미)
sudo apt-get install -y build-essential dkms linux-headers-$(uname -r)

# 광학 이미지를 Mount 하기 위한 디렉토리 생성
sudo mkdir -p /mnt/cdrom

# 광학 이미지를 Mount
sudo mount /dev/cdrom /mnt/cdrom

# Mount된 디렉토리로 이동
cd /mnt/cdrom

# Guest Image의 실행 파일을 직접 실행 (nox11은 xterm 화면이 나타나지 않도록 설정)
sudo sh ./VBoxLinuxAdditions.run —nox11
  • 위 과정까지 마친 후 vm의 설정에서 Shared Clipboard, Drag'n'Drop 을 양방향으로 설정해준다.
# 재부팅
sudo shutdown -r now

# 결과 확인
lsmod | grep vboxguest

  • vboxguest가 있다면 완료...!
  • 복사: ctrl + insert, 붙여넣기: shift + insert

4. Sudoer

  • debian을 설치할 때 root 계정과 일반 사용자 계정(seuan)을 생성했었다. root만 쓴다면 상관없지만 일반 사용자로도 docker-compose를 및 명령어들을 원활하게 이용하려면 Sudoer로 등록하고, root 소유의 파일과 디렉토리에 접근할 권한을 얻어야한다.
# 사용자 전환
su -

# 사용자를 sudo 그룹에 추가
sudo usermod -a -G sudo $intra_id

# 사용자를 root 그룹에 추가
sudo usermod -a -G root $intra_id
  • visudo를 이용하여 /etc/sudoer를 수정
  • visudo 명령어를 이용하면 sudoer로 사용자를 추가할 수 있는데, 아래와 같은 형태로 파일 제일 아래에 작성하면 된다. 각 필드는 |로 연결된 항목을 의미한다.
sudo visudo
seuan  ALL=(ALL:ALL) ALL
  • 필드에 대한 설명은 아래와 같다.
  • seuan: username
  • ALL: host
  • (ALL:ALL): all users
  • ALL: all commands

5. Make

  • 작성된 docker-compose.yaml 파일을 통해 build 하기위한 명령어를 Makefile로 작성 후 진행

참고

profile
born 2 code :)
post-custom-banner

0개의 댓글