이미지를 다시 다운로드하지 않고 Raspberry Pi OS용 cloud-init 파일 생성
Source: Dev.to
위 링크에 있는 전체 글을 번역하려면, 번역하고자 하는 텍스트(코드 블록을 제외한 본문)를 제공해 주시겠어요?
텍스트를 주시면 원본 서식과 마크다운을 그대로 유지하면서 한국어로 번역해 드리겠습니다.
Introduction
Raspberry Pi는 최근 공식 Raspberry Pi OS 이미지에 cloud‑init 지원을 추가했습니다. 이를 통해 사용자는 첫 부팅 전에 Wi‑Fi 인증 정보, 사용자, SSH 접근, 로케일 등 다양한 설정을 미리 구성할 수 있습니다.
하지만 공식 Raspberry Pi Imager가 제공하는 현재 워크플로에는 실용적인 제한이 있습니다. 고급 맞춤 옵션은 Imager 내부의 공식 OS 목록에서 Raspberry Pi OS를 선택했을 때만 사용할 수 있습니다. Custom Image 옵션을 사용해 로컬에 다운로드한 이미지를 플래시하면 이러한 구성 옵션이 사라집니다.
대역폭이 제한되었거나 연결 속도가 느리거나 캐시를 자주 정리해야 하는 사용자에게 이는 금방 불편함을 초래합니다. 이 글에서는 문제를 자세히 설명하고, 클라우드‑init 파일 생성기를 이용한 간단하고 대역폭 친화적인 해결책을 제시합니다.
라즈베리 파이 이미저 커스터마이징 문제점
커스터마이징은 공식 OS 다운로드에만 적용됩니다
라즈베리 파이 이미저에서는 다음을 설정할 수 있습니다:
- Wi‑Fi (SSID, 비밀번호, 국가)
- 사용자 이름 및 비밀번호
- SSH 접근
- 로케일, 시간대, 키보드 레이아웃
이 옵션들은 다음 경우에만 활성화됩니다:
- 이미저에서 직접 Raspberry Pi OS를 선택하고, 그리고
- 이미지가 이미저에 의해 다운로드된 경우.
만약:
- Raspberry Pi OS 이미지를 수동으로 다운로드하고,
- Custom Image 옵션을 사용해 플래시한다면,
모든 커스터마이징 옵션이 비활성화됩니다.
재다운로드는 대역폭을 낭비합니다
- Raspberry Pi OS 이미지는 용량이 큽니다.
- 캐시를 비우면 전체를 다시 다운로드해야 합니다.
- 동일한 이미지를 여러 번 재다운로드하면 데이터가 낭비됩니다.
- 인터넷 접속이 제한적이거나 비용이 많이 드는 지역에서는 특히 고통스럽습니다.
많은 사용자가 이미 원하는 이미지를 가지고 있지만, 첫 부팅 전에 Wi‑Fi와 사용자 설정을 구성할 방법이 필요합니다.
Source:
Raspberry Pi OS에서 cloud‑init 작동 방식
최근 Raspberry Pi OS 이미지에서는 cloud‑init을 지원하며, 첫 부팅 시 부팅 파티션에 있는 설정 파일을 읽어들입니다. 주요 파일은 다음과 같습니다:
meta-datanetwork-configuser-data
이 파일들이 부팅 파티션에 존재하면 Raspberry Pi OS가 첫 부팅 시 자동으로 설정을 적용합니다. 즉:
- Raspberry Pi Imager에서 별도로 커스터마이징할 필요가 없습니다.
- OS 이미지를 다시 다운로드할 필요가 없습니다.
- 어떤 플래싱 도구를 사용해도 동작합니다.
유효한 cloud‑init 파일만 있으면 됩니다.
Source:
솔루션: Raspberry Pi cloud‑init 생성기
프로젝트 개요
- GitHub 저장소:
- 호스팅 웹사이트:
이 도구는 다음 파일들을 생성합니다:
meta-datanetwork-configuser-data
이 파일들은 Raspberry Pi 부팅 파티션에 바로 복사할 수 있습니다.
기존 워크플로우 (문제점)
- Raspberry Pi Imager를 엽니다.
- 공식 목록에서 Raspberry Pi OS를 선택합니다.
- 이미지를 다시 다운로드합니다.
- 사용자 정의를 추가합니다.
- SD 카드를 플래시합니다.
문제점: 다운로드가 반복되고 데이터 사용량이 많으며, 사용자 정의 이미지 옵션을 사용할 수 없습니다.
새로운 워크플로우 (효율적)
- Raspberry Pi OS 이미지를 한 번만 다운로드합니다.
- Raspberry Pi Imager의 Custom Image 옵션이나 다른 도구를 사용해 플래시합니다.
- cloud‑init 생성기 웹사이트를 엽니다.
- Wi‑Fi, 사용자, SSH 정보를 입력합니다.
meta-data,network-config,user-data를 생성합니다.- 이 파일들을 SD 카드의 boot 파티션에 복사합니다.
- Raspberry Pi를 부팅합니다.
결과: 재다운로드가 없고, 전체 cloud‑init 사용자 정의가 가능하며, 이미지 다운로드 후 오프라인에서도 작동합니다.
주요 이점
- 대역폭을 절약합니다.
- 불필요한 재다운로드를 방지합니다.
- 캐시되거나 보관된 이미지와 함께 작동합니다.
- 공식 Raspberry Pi OS cloud‑init 지원을 사용합니다.
- 간단하고 초보자에게 친숙합니다.
이 방법은 특히 다음에 유용합니다:
- 여러 Raspberry Pi 보드를 플래시하는 개발자.
- 인터넷 접속이 제한된 사용자.
- 자동화되거나 반복 가능한 Raspberry Pi 설정.
결론
Raspberry Pi OS cloud‑init 지원은 강력하지만, 현재 Raspberry Pi Imager 워크플로우는 기본 맞춤화 기능에 접근하기 위해 이미지를 다시 다운로드하도록 불필요하게 강요합니다.
cloud‑init 파일을 수동으로 생성하고 부팅 파티션에 넣으면, Imager의 공식 OS 다운로드 흐름에 의존하지 않고도 Raspberry Pi OS를 완전히 구성할 수 있습니다. Raspberry Pi cloud‑init 생성기는 이 과정을 간단하고 접근하기 쉬우며 대역폭 효율적으로 만듭니다.
Raspberry Pi 보드를 정기적으로 사용하는 경우, 이 방법은 시간을 절약하고 데이터를 절감하면서 시스템 구성에 대한 완전한 제어를 제공합니다.