프로비저닝 문제
이미지를 구축한 후에는 호스트 이름, SSH 키, 구성 또는 백엔드 등록 등의 설정을 통해 각각의 새 보드를 개인화해야 합니다.
수십 개 또는 수백 개에 달하는 Raspberry Pi Compute Module 5 (CM5) 유닛에 대해 이 작업을 수동으로 수행하는 것은 실용적이지 않습니다.
그래서 rpi-sb-provisioner 유연한 첫 부팅 자동화 프레임워크인 Raspberry Pi 디바이스를 위한 유연한 첫 부팅 자동화 프레임워크입니다.
방법 rpi-sb-provisioner 작동 방식
처음 부팅하면 시스템이 자동으로 시작됩니다. rpi-sb-provisioner를 자동으로 실행합니다:
- 프로비저닝 구성 파일을 읽습니다.
- 스크립트를 실행하여 시스템 설정을 적용합니다.
- 디바이스 ID 데이터(일련 번호, 자격 증명, 인증서 등)를 씁니다.
- 프로비저닝 프로세스를 완료로 표시합니다.
이렇게 하면 수동 개입 없이 모든 디바이스가 고유하게 구성되고 배포할 준비가 완료됩니다.
설치
에서 공식 설치 가이드를 확인하세요: https://github.com/raspberrypi/rpi-sb-provisioner
구성
rpi-sb-provisioner 에는 간단한 브라우저 기반 구성 GUI가 포함되어 있습니다.
열려면 터미널에서 다음 명령을 실행합니다:
xdg-open http://localhost:3142여기에서
- 이미지 메뉴를 열고 .img 파일( rpi-image-gen).
- 옵션 메뉴를 열어 사용할 대상 장치 제품군 또는 기본 이미지와 같은 프로비저닝 매개변수를 구성합니다.
- 결과 구성은 /etc/rpi-sb-provisioner/config 에 저장되며 다음과 같이 보일 수 있습니다:
CUSTOMER_KEY_FILE_PEM=
CUSTOMER_KEY_PKCS11_NAME=
GOLD_MASTER_OS_FILE=/srv/rpi-sb-provisioner/images/deb12-arm64-ix-base.img
PROVISIONING_STYLE=naked
RPI_DEVICE_BOOTLOADER_CONFIG_FILE=/srv/rpi-sb-provisioner/bootloader_config_files/bootloader-gpio17.naked
RPI_DEVICE_EEPROM_WP_SET=
RPI_DEVICE_FAMILY=5
RPI_DEVICE_FIRMWARE_FILE=/lib/firmware/raspberrypi/bootloader-2712/latest/pieeprom-2025-10-17.bin
RPI_DEVICE_LOCK_JTAG=
RPI_DEVICE_RETRIEVE_KEYPAIR=
RPI_DEVICE_STORAGE_CIPHER=aes-xts-plain64
RPI_DEVICE_STORAGE_TYPE=emmc
RPI_SB_PROVISIONER_MANUFACTURING_DB=/srv/rpi-sb-provisioner/manufacturing.db
RPI_SB_WORKDIR=사용법
- 예를 들어, 공식 Raspberry Pi Compute Module 5를 사용하는 경우 J2 점퍼를 설정하여 eMMC 부팅을 비활성화합니다.
- USB를 통해 CM5를 프로비저닝 호스트에 연결합니다. 프로비저닝 프로세스가 자동으로 시작됩니다.
- 프로비저닝이 완료되면 점퍼를 제거하고 전원 공급 장치를 연결하면 이제 장치가 eMMC에서 부팅됩니다.
혜택
- 완전 자동화된 디바이스 온보딩
- 모든 장치에서 일관된 구성
- 제조 시스템 또는 백엔드 API와의 손쉬운 통합
- 재현성 - 수동 조정이나 장치 간 불일치 없음
프로세스 확장
프로비저닝 워크플로는 다음을 포함하도록 확장할 수 있습니다:
- 백엔드 서비스에 디바이스를 등록하기 위한 API 호출
- 보안 부팅 또는 암호화를 위한 인증서 생성
- 활성화 전 하드웨어 유효성 검사 또는 기능 테스트
와 함께 rpi-sb-provisioner를 사용하면 프로비저닝이 빌드 및 배포 파이프라인의 통합 단계가 되어 나중에 고려할 사항이 아닙니다.
출처
- rpi-image-gen: https://github.com/raspberrypi/rpi-image-gen
- rpi-sb-provisioner: https://github.com/raspberrypi/rpi-sb-provisioner
- SWUpdate: https://github.com/sbabic/swupdate
- swugenerator: https://github.com/sbabic/swugenerator