AI와 함께하는 모던 리눅스 서버 관리와 트러블슈팅 실습 리포지터리.
책: https://wikidocs.net/book/20778
Docker 컨테이너 3대(웹/DB/스토리지) + 트러블슈팅 시나리오 5개 + AI 프롬프트.
git clone --recurse-submodules https://github.com/bashbomb/vws-book.git
cd vws-book
docker compose build
docker compose up -d빌드가 끝나면 컨테이너 3대가 기동된다.
docker compose ps| 컨테이너 | 역할 | 서비스 |
|---|---|---|
| cent1 | 웹서버 | Nginx |
| cent2 | DB서버 | MariaDB 11.7 |
| cent3 | 스토리지 | NFS |
컨테이너 접속:
docker compose exec cent1 bashSRC/ssh/ 의 키는 컨테이너 3대가 서로 접속하기 위한 실습 전용 키다.
이 실습 환경 밖에서는 쓰지 않으며, 다른 서버에 등록하지 말 것.
scenarios/ 디렉터리에 시나리오 5개가 들어 있다. 각 컨테이너 안에서는 /root/vws-scenario/로 마운트되어 있다.
| # | 시나리오 | 서버 |
|---|---|---|
| 1 | 로그파일 실종사건 | cent1 |
| 2 | DB에 접속이 왜 안돼!? | cent2 |
| 3 | 우리 서버, 혹시 영국 출장 중...? | cent1, cent2, cent3 |
| 4 | 거대 로그의 습격 | cent1 |
| 5 | 착한 사람에게만 보이는 백업파일!? | cent1, cent3 |
실행 방법 (예: 시나리오 1):
# cent1 컨테이너 안에서
cd /root/vws-scenario/1
bash 0.set_scenario1_env.sh # 환경 설정
bash 1.check_env.sh # 환경 확인리포지터리 루트에 CLI AI 도구별 설정 파일이 준비되어 있다.
| 도구 | 파일 |
|---|---|
| Claude Code | CLAUDE.md |
| Codex CLI | AGENTS.md |
| Gemini CLI | GEMINI.md |
내용은 모두 동일하다. 각 도구가 자동으로 읽어들이는 파일명이 다를 뿐이다. 프로젝트 디렉터리에서 CLI AI를 실행하면 실습 환경 정보(서버 구성, 네트워크, 제약사항)를 자동으로 인식한다.
SRC/test_db는 datacharmer/test_db를 git submodule로 참조한다. MySQL 공식 샘플 데이터베이스로, MariaDB 실습에 사용한다. GitHub에서 해당 폴더를 클릭하면 원본 리포지터리로 이동하는데, submodule의 정상 동작이다.
clone할 때 --recurse-submodules 옵션을 붙이면 자동으로 함께 받아진다.
CC BY-NC 4.0. 자세한 내용은 LICENSE 참조.
SRC/test_db는 CC BY-SA 3.0 라이선스가 적용된 별도 저작물이다.