Fedora Atomic에서 Toolbox 개발 환경 설정하기
date: 2026-03-15
Fedora Silverblue 같은 Atomic 계열 OS는 호스트 파일시스템이 읽기 전용이라 패키지를 직접 설치할 수 없다.
이러한 OS에 대한 한국어 가이드가 많지 않기에, 내 환경에서 EKS 학습을 위해 사용했던 설치 방법을 기록해두고자 한다.
Fedora Atomic계열에서는 기본적으로 toolbox 를 사용해 격리된 컨테이너 안에서 개발 도구를 관리한다.
- 설치 도구:
kubectl,kubectx,kubens,awscli
설치순서
Toolbox 컨테이너 생성 및 진입
# 컨테이너 생성
toolbox create dev
# 컨테이너 진입
toolbox enter dev
참고: 필자의 경우 fish shell을 사용하고 있기에 다음과 같은 경고메세지가 나올 수 있다.
shell bash: /usr/bin/fish: 그런 파일이나 디렉터리가 없습니다 Using /bin/bash instead.fish 셸이 설치되어 있지 않아서 나오는 경고일 뿐, bash로 정상 진입된 상태이므로 무시해도 된다.(아니면 fish 설치)
kubectl 설치
Kubernetes 공식 repo를 추가한 뒤 설치한다.
공식문서 설치방법
위 문서에 소개된 방법중 가장 간단한편인 package manager를 이용한 설치방법을 이용하였다.
# Kubernetes repo 추가
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.35/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.35/rpm/repodata/repomd.xml.key
EOF
# 설치
sudo dnf install -y kubectl
왜 컨테이너 안에서는
/etc/yum.repos.d/수정이 가능한가? Fedora Atomic 호스트는/etc가 읽기 전용이지만, Toolbox 컨테이너 내부는 일반 Fedora처럼 쓰기가 가능하다.
설치 확인:
kubectl version --client
kubectx / kubens 설치
Fedora 기본 repo에는 kubectx가 없어서 GitHub에서 직접 바이너리를 받아 설치한다.
kubectx는 매우 유용한 툴로, 이전의 계정 생성 문서 여러개의 클러스터를 생성하여 관리하기 위해서 매우 유용한 툴 중 하나임으로 설치하였다.
# 다운로드 - 다운로드 전 최신 버전으로 링크 확인 후 curl 경로는 변경하세요.
curl -LO https://github.com/ahmetb/kubectx/releases/download/v0.9.5/kubectx_v0.9.5_linux_x86_64.tar.gz
# 압축 해제
tar -xzf kubectx_v0.9.5_linux_x86_64.tar.gz
# /usr/local/bin으로 이동 (Toolbox 내부 전용 경로)
sudo mv kubectx /usr/local/bin/
설치 확인:
> kubectx --version
0.9.5
AWS CLI 설치
AWS CLI v2 도 공식 설치방법에 써있는 방법으로 설치를 toolbox내부에 진행하였다.
# 다운로드 및 설치
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
설치 확인:
> aws --version
aws-cli/2.34.9 Python/3.13.11 Linux/6.19.6-200.fc43.x86_64 exe/x86_64.fedora.43
Terraform(OpenTofu) 설치
OpenTofu는 Terraform의 오픈소스 포크로, Fedora repo에서 바로 설치할 수 있다.
HashiCorp가 2023년 8월 Terraform의 라이선스를 MPL-2.0에서 BSL 1.1(Business Source License)로 변경하면서 상업적 사용에 제한이 생겼다.
OpenTofu는 기존 MPL-2.0 라이선스를 유지하여 진정한 오픈소스로 남아있다.
위와같은 이유로 나는 OpenTofu를 사용하는것을 더 선호한다. 조금 더 자유로운 FOSS소프트웨어를 사용하는것을 선호하는 홍대병(?) 때문이다.
그 외에 Tofu 만의 일부 개선점이 있는데
- State 암호화 (1.7+): 상태 파일을 AES-256으로 암호화할 수 있다. Terraform에는 없는 기능으로, S3 같은 외부 백엔드에 저장되는 민감한 상태 정보를 보호할 수 있다.
- Provider 함수 (1.8+): Provider가 직접 커스텀 함수를 정의할 수 있어 HCL 내에서 더 풍부한 표현이 가능하다.
import블록의for_each지원 (1.7+): 기존 리소스를 Terraform 상태로 가져올 때 반복문을 사용할 수 있어 대량 import가 훨씬 간편해졌다.
Terraform 만의 장점...?
- 잘 모르겠다 ㅎㅎ...
sudo dnf install -y opentofu
설치 확인:
tofu version
참고: Toolbox 컨테이너 경로 vs 홈 폴더
Toolbox 내부와 외부는 홈 폴더(~)를 공유한다. 따라서 설치 경로에 따라 접근 범위가 달라진다.
| 경로 | 접근 범위 |
|---|---|
/usr/local/bin |
Toolbox 컨테이너 내부 전용 |
~/.local/bin |
호스트 + Toolbox 양쪽에서 접근 가능 |
개발 도구는 호스트와 격리하는 게 Atomic OS의 철학에 맞으므로 /usr/local/bin을 사용하는 것을 권장한다.