사용하는 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비트 라즈비안을 설치했습니다.
도커 설치는 제가 작성한 도커 설치법을 그대로 따라갑니다.
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
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
4-2. rsync 와 crontab
rsync -azvh /home/pi/docker /home/pi/exhdd
rsync 에 대해 알고 싶다면 링크 클릭
'SBC (Single Board Computer) > Raspberry Pi 4' 카테고리의 다른 글
라즈베리파이 , VNC 연결시 블랙아웃 해결하기 ( Cannot currently show the desktop ) (0) | 2022.05.19 |
---|---|
라즈베리파이로 랩토리움 (Raptoreum) 채굴하기 (0) | 2022.01.24 |
라즈베리파이, 커널 빌드 (Kernel build) (1) (0) | 2021.05.26 |
라즈베리파이4 , 안드로이드 10 설치하기 (0) | 2021.05.12 |
<라즈베리파이 4> Pycharm 설치 (0) | 2021.03.05 |