SBC (Single Board Computer)/Raspberry Pi 4

Raspberry Pi, 안전한 GitLab Server 구축하기 <ing>

LEEHANDS 2022. 2. 21. 07:20
반응형

사용하는 NAS는 도커를 지원하지 않는다.

잘사용하는 나스를 바꾸긴 애매하고해서 사용하는 라즈베리파이4 를 사용해 깃랩 서버를 구축하려고합니다.

깃랩은 개발 자산으로 데이터의 안전한 보관이 참 중요하여 라즈베리파이 SD카드에 의지하기엔 리스키합니다.

 

그래서 SSD 외장하드를 사용해 OS를 OPERATE하고, 데이터는 레이드를 구성한 외장 HDD 2개를 묶어서 사용합니다.

이정도되면 데이터의 안전한 보관은 보장될 것이며

백업으로 외장하드에 2차 백업하는 방법을 고안하고있습니다.

 

아무리 안전해도 유지관리하는 방법을 까먹을 수 있기때문에 포스팅도 최대한 이식성이 높은 도커를 사용할 예정입니다.

글을 작성하며 스탭바이 스탭으로 구축하도록합니다.

 

 

1. 준비물

  - 라즈베리파이

  - SSD 외장하드

  - HDD 외장하드 2 pcs

 

 

2. 설치

2-1. 라즈베리파이 부팅을 USB 으로 하도록 변경

 

eeprom 확인

sudo rpi-eeprom-update

sudo raspi-config

Advanced Option --> Bootloader verison --> Latest version boot Rom

을 선택하여 초기화를 한번 진행합니다

 

부팅완료 후 raspi-config 를 실행하여 Advanced Option --> Boot order --> USB Boot 를 선택합니다.

 

그런다음 재부팅하고 아래 명령어를 실행했을 때 BOOT_ORDER=0xf14 가 보인다면 제대로 설정된 것입니다.

vcgencmd bootloader_config

이제 USB 장치에 라즈베리파이 OS 를 설치하고 연결하고 전원을 연결하면 라즈베리파이가 잘 돌아가겠죠?

 

2-2. DOCKER 설치

 

라즈베리파이는 2022년 2월21일 최신 32비트 라즈비안을 설치했습니다.

도커 설치는 제가 작성한 도커 설치법을 그대로 따라갑니다.

https://leehands.tistory.com/entry/%EB%9D%BC%EC%A6%88%EB%B2%A0%EB%A6%AC%ED%8C%8C%EC%9D%B44-Docker-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0?category=1079614 

 

라즈베리파이4, Docker 설치하기 < 끝>

https://dev.to/elalemanyo/how-to-install-docker-and-docker-compose-on-raspberry-pi-1mo How To Install Docker and Docker-Compose On Raspberry Pi RaspberryPi ARMed with Docker and Docker-Compose dev...

leehands.tistory.com

 

 

2-3. 필수 유틸리티 설치

SAMBA , VIM 을 설치하자

sudo apt-get install vim samba -y

 

2-4. 라즈베리파이 용 Gitlab 이미지 다운로드

docker pull ulm0/gitlab

위와 같이 도커 이미지가 다운로드 되었음을 알 수 있다.

2-5 DOCKER 데이터 볼륨 위치 설정

 

mkdir -p docker
export DOCKER_HOME=/home/pi/docker

부팅시마다 환경 변수 저장하기위해

"vi ~/.bashrc"

맨아래 export ~~ 추가한다.

echo ${DOCKER_HOME}

 

ㄴㄴ드ㅠㅣㄷ 

2-6.깃랩용 데이터 폴더 생성

mkdir -p $DOCKER_HOME/gitlab
mkdir -p $DOCKER_HOME/gitlab/data
mkdir -p $DOCKER_HOME/gitlab/logs
mkdir -p $DOCKER_HOME/gitlab/config

2-7. 깃랩설치

docker run --name gitlab \
-d \
--hostname 192.168.30.76 \
--restart always \
-p 443:443 -p 80:80 -p 20022:22 \
-v $DOCKER_HOME/gitlab/data:/var/opt/gitlab \
-v $DOCKER_HOME/gitlab/logs:/var/log/gitlab \
-v $DOCKER_HOME/gitlab/config:/etc/gitlab \
ulm0/gitlab

3. 유용한 컨테이너 설치

mkdir -p docker
export DOCKER_HOME=/home/pi/docker

3-1. Portainer 설치

docker run --name pi-portainer \
-d \
--restart always \
-p 9000:9000 \
-v $DOCKER_HOME/portainer:/data \
-v /var/run/docker.sock:/var/run/docker.sock \
portainer/portainer

https://windowshyun.tistory.com/37

 

Raspberry Pi(라즈베리 파이) Ubuntu Docker & Portainer 설치하기

도커(Docker)는 리눅스의 응용 프로그램들을 소프트웨어 컨테이너 안에 배치시키는 일을 자동화하는 오픈 소스 프로젝트입니다. Portainer는 Docker를 좀 더 쉽게 관리 할 수 있도록 GUI 형식의 웹페이

windowshyun.tistory.com

4. 백업디스크 설정

4-1. 레이드 구성 (mdadm)

외장디스크 2개를 레이드 1 (미러링)으로 묶어서 Rsync 으로 백업하려고합니다.

일단 레이드를 위해 아래 패키지를 설치합니다.

sudo apt-get install mdadm

sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdd1
#레이드 생성, Raid 1 (mirroring)


만약 새로운 OS 에 레이드 디스크를 입력했을 때 아래 명령어로 스캔한다.

sudo mdadm --assemble --scan


 

md0 가 미러링이 된 것을 볼 수 있다.

sudo mdadm --detail /dev/md0

파일시스템 생성 과 포멧을 한번합니다.

sudo mkfs.ext4 /dev/md0
sudo mdadm --detail --scan

 

sudo vim /etc/mdadm/mdadm.conf

sudo update-initramfs -u

vim /etc/fstab 에 아래와 같이 추가한다.

#/dev/md0 /home/pi/exhdd ext4 rw,auto,exec,suid,noatime 0 0

 

※ sdb1 / sdd1 등 알파벳 할당은 변경될 수 있다.

 

참고사이트 : https://gamdekong.tistory.com/63

                https://www.digitalocean.com/community/tutorials/how-to-create-raid-arrays-with-mdadm-on-ubuntu-16-04

 

4-2. rsync 와 crontab

rsync -azvh /home/pi/docker /home/pi/exhdd​

rsync 에 대해 알고 싶다면 링크 클릭

 

 

반응형