Inception 과제에 필요한 가상환경으로 Debian Buster를 사용 (penultimate stable version)
born2beroot와 다르게 그래픽 환경을 사용하지 말라는 말이 없었고, 가상환경 자체에 대한 설정 지시가 없기에 편하게 설치
필요한 패키지들 설치
- apt update
- apt install sudo (설치되어있었던것같기도)
- apt install ca-certificates
SSL 통신이 가능하도록 CA 인증서를 획득 - apt install curl
curl(client for urls) : 다양한 통신 프로토콜을 이용하여 데이터를 전송하기 위한 라이브러리 및 커맨드라인 도구를 제공하는 오픈소스 프로젝트 - apt install software-properties-common
PPA(Personal Package Archive, 개인 패키지 저장소)를 추가 또는 제거하는데 사용 - apt install make
- apt install vim
- apt install git
- apt install systemd
시스템 부팅 후 가장 먼저 생성된 후 다른 프로세스를 실행하는 init 역할을 대체하는 데몬, 1번 프로세스 차지
systemd를 관리하기 위한 도구인 systemctl 사용 가능
Copy & Paste 문제 해결
두가지 해결방법이 존재
- VirtualBox 자체에서 해결
- VM 실행후 devices -> Insert Guest Additions CD Image
- shared Clipboard와 Drag and Drop을 Bidirectional으로 설정
- apt install -y build-essential dkms linux-headers-$(uname -r)
커널 모듈을 빌드하기 위한 패키지 설치 - mkdir -p /mnt/cdrom
마운트용 디렉토리 생성 - mount /dev/cdrom /mnt/cdrom
Guest Image 마운트 - 마운트된 디렉토리로 이동하여 sh ./VBoxLinuxAdditions.run으로 Guest Image의 실행파일 실행
- shutdown -r now로 재실행
- 놀랍게도 드래그시 복사, 휠버튼 클릭시 붙여넣기가 됨
- ssh를 통한 우회 접속으로 해결
- /etc/ssh/sshd_config 파일 오픈
파일이 존재하지 않을시 apt-get install openssh-client oepnssh-server - sshd_config 파일 내에 Port 42 지정, PermitRootLogin yes로 변경
- service ssh restart / service sshd restart
- apt install ufw 이후 ufw allow 42
추후에 쓰게될 80번(http) 포트와 443번(https) 포트도 열어두면 좋음 - vm 종료 후 VirtualBox 설정->네트워크->고급->포트포워딩에서 각 포트 연결
- ~/.ssh/known_hosts 파일 내에 [localhost]로 시작하는 항목이 이미 존재한다면 삭제
- 이제 호스트 os에서 ssh <계정(root 등)>@localhost -p 42로 접속 가능
- 편하게 iterm 등에서 마음껏 복붙
- /etc/ssh/sshd_config 파일 오픈
Docker 및 Docker-compose 설치
debian에서의 Docker 설치 참고링크
https://www.hostwinds.kr/tutorials/install-docker-debian-based-operating-system
- curl -4fsSL https://download.docker.com/linux/debian/gpg | apt-key add-
- -f : HTTP 오류시 출력 없이 자동으로 실패
- -s : 메시지를 출력하지 않음
- -S : -s와 함께 사용시 에러 메시지를 출력
- -L : 서버 링크가 다른 url로 리다이렉트 되어있는 경우 해당 url로 접속
- -4 : fsSL만으로 오류가 뜰 경우, 해당 옵션으로 IPv4로 한정시켜 오류 해결
- apt-key : apt가 패키지를 인증하는데 사용하는 키 목록을 관리하는 패키지, add 옵션으로 신뢰할 수 있는 키 목록에 key 등록
- add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
도커를 설치할 수 있도록 패키지를 저장소(Repository)에 추가 - apt update
apt 패키지 색인이 최신 상태인지 확인 - apt install docker.io
도커 설치 - chmod 666 /var/run/docker.sock
도커 소켓의 권한을 설정하여 다른 사용자의 접근을 허용 - curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
도커 컴포즈 설치 - chmod +x /user/local/bin/docker-compose
도커 컴포즈 실행 권한 부여 - su -c 'printf "{\n\t\"live-restore\": true\n}" > /etc/docker/docker.json’
도커 서비스 재시작시 컨테이너를 종료하지 않도록 설정 - systemctl restart docekr
도커 서비스 재시작
Docker 권한설정
docker 및 docker-compose를 문제없이 사용하기 위해서는 사용자에게 권한이 필요
- su -
root로 사용자 전환 - sudo usermod -a -G sudo <username>
사용자를 sudo 그룹에 추가 - sudo usermod -a -G root <username>
사용자를 root 그룹에 추가 - sudo visudo로 /etc/sudoer 수정
양식에 맞춰서 원하는 user에게 ALL=(ALL:ALL) ALL로 권한 부여
Localhost 설정
로컬 환경에서 https를 사용해 엑세스하기 위해서는 TLS 인증서가 필요
따라서 mkcert를 사용하여 로컬 환경에서 신뢰할 수 있는 인증서를 생성, http로 동작하는 localhost를 https로 동작하도록 변경
운영체제별 mkcert 설치는 공식 gitgub 페이지 참조
https://github.com/FiloSottile/mkcert#installation
- apt install libnss3-tools
- curl -JLO "https://dl.filippo.io/mkcert/latest?for=linux/amd64" chmod +x mkcert-v*-linux-amd64 sudo cp mkcert-v*-linux-amd64 /usr/local/bin/mkcert
- mkcert --version으로 설치 확인
- vim /etc/hosts에서 127.0.0.1에 name.42.fr 추가
서브젝트의 요구에 따라 로컬 도메인의 별칭인 127.0.0.1을 name.42.fr로 변경 - mkcert name.42.fr로 변경한 도메인에 대한 인증서 생성
- 생성된 인증서와 키를 nginx 서버가 읽을 수 있도록 확장자 변경
mv name.42.fr-key.pem name.42.fr.key
mv name.42.fr.pem name.42.fr.crt
'42Seoul > Inception' 카테고리의 다른 글
Inception 개념 (0) | 2023.03.02 |
---|
댓글