피드로 돌아가기
Dev.toInfrastructure
원문 읽기
openSUSE MicroOS에 NetBird 설치 시 읽기전용 /usr와 SELinux 문제를 transactional-update와 restorecon으로 해결함
Install NetBird on openSUSE MicroOS
AI 요약
Context
openSUSE MicroOS는 불변 인프라 원칙을 적용하여 /usr/bin 디렉터리가 기본적으로 읽기 전용으로 설정됨. NetBird는 기본적으로 /usr/bin/netbird 경로에 바이너리를 설치하므로 설치 과정에 제약이 발생함.
Technical Solution
- transactional-update: transactional-update shell 명령으로 읽기전용 파일시스템에 대한 쓰기 권한을 획득한 후 설치를 실행함
- curl 설치 스크립트: pkgs.netbird.io에서 제공하는 공식 설치 스크립트를 파이프라인 방식으로 실행함
- restorecon: SELinux 파일 컨텍스트를 user_tmp_t에서 bin_t로 변경하여 systemd 서비스가 바이너리를 인식하도록 함
- systemd 자동 시작: 재부팅 후 netbird.service가 자동으로 활성화되어 서비스가 시작됨
- Setup Key 연결: netbird up --setup-key 명령으로 NetBird Dashboard에서 생성한 키를 기반으로 메쉬 네트워크에 연결함
Impact
설치 및 설정 완료 후 systemctl status로 active (running) 상태 확인 가능함.
Key Takeaway
불변 인프라 환경에서는 transactional-update를 활용하여 읽기전용 영역에 대한 변경사항을 트랜잭션 단위로 적용하고, SELinux 활성화 시스템에서는 restorecon으로 파일 보안 컨텍스트를 올바르게 설정해야 한다.
실천 포인트
openSUSE MicroOS에서 NetBird를 설치할 때 transactional-update shell 환경에서 curl 설치 스크립트를 실행하고, restorecon -v /usr/bin/netbird로 SELinux 컨텍스트를 bin_t로 변경한 후 재부팅하면 systemd 서비스가 자동으로 정상 동작함.