Ansible Deployment Automation
서버 설정 파일 배포 시 안전하고 효율적인 Ansible 패턴을 제공합니다.
핵심 철학:
- 배포 전 diff 확인 필수 (사용자가 변경 내용 검토)
- Ansible 네이티브 기능 우선 (shell 스크립트 최소화)
- 단일 비밀번호 입력으로 전체 워크플로우 완료
- 색상 diff로 가독성 향상
Instructions
워크플로우: 요청 분석 및 리소스 선택
사용자 요청을 분석하여 필요한 리소스만 선택적으로 로드합니다.
1. 키워드 매칭
사용자 요청의 키워드를 분석하여 필요한 리소스를 판단:
Diff 체크 (resources/01-diff-checking.md)
- "diff", "차이", "변경 사항"
- "배포 전 확인", "dry-run"
- "file_diff_checker"
- "copy 모듈"
SSH 인증 (resources/02-ssh-auth.md)
- "SSH", "인증", "비밀번호"
- "vars_prompt"
- "ProxyJump", "Gateway"
- "VPN", "접속"
Copy 모듈 활용 (resources/03-copy-module.md)
- "copy 모듈", "copy module"
- "check_mode", "diff"
- "파일 동기화", "파일 배포"
Playbook 패턴 (resources/04-playbook-patterns.md)
- "playbook", "role"
- "배포", "deploy"
- "서비스 reload", "handler"
- "사용자 확인", "pause"
검증 및 테스트 (resources/05-testing-validation.md)
- "syntax check", "문법 검사"
- "dry-run", "테스트"
- "lint", "검증"
- "justfile"
2. 리소스 로딩 전략
단일 키워드 감지
- User: "배포 전 diff 확인하고 싶어"
- → Read resources/01-diff-checking.md
- → Read resources/03-copy-module.md
복합 요청
- User: "Ansible로 설정 파일 안전하게 배포하는 방법"
- → Read resources/01-diff-checking.md (Diff)
- → Read resources/02-ssh-auth.md (SSH)
- → Read resources/03-copy-module.md (Copy)
- → Read resources/04-playbook-patterns.md (Playbook)
불명확한 요청
- User: "Ansible 배포 설정"
- → REFERENCE.md 확인하여 사용자에게 선택지 제시
- → 선택에 따라 리소스 로드
3. 리소스 적용
현재 프로젝트 구조 파악
- ansible 디렉토리 위치 확인
- 기존 playbook, role 확인
리소스 Read
- 필요한 리소스만 Read
- 다른 리소스 참조 필요 시 추가 Read
패턴 적용
- Read한 리소스의 패턴을 프로젝트에 적용
- 기존 설정이 있으면 수정, 없으면 생성
- 사용자에게 변경 사항 확인
검증
- ansible-playbook --syntax-check
- 가능하면 실행하여 동작 확인
- 문제 발생 시 사용자에게 보고
예시
예시 1: Diff 체크 Role 생성
User: "배포 전에 변경 내용을 diff로 보고 싶어"
- 키워드 매칭: "diff", "배포 전" → Diff Checking
- Read resources/01-diff-checking.md
- Read resources/03-copy-module.md
- ansible/roles/file_diff_checker/ 생성
- copy 모듈 check_mode + diff 패턴 적용
- 사용자에게 사용법 안내
예시 2: SSH 인증 개선
User: "Ansible 실행할 때 비밀번호 여러 번 입력하기 귀찮아"
- 키워드 매칭: "비밀번호" → SSH Auth
- Read resources/02-ssh-auth.md
- vars_prompt 설정 추가
- ansible_password + ansible_become_password 설정
- 테스트 실행 확인
예시 3: 안전한 배포 Playbook
User: "서버 설정 파일을 안전하게 배포하는 playbook 만들어줘"
- 키워드 매칭: "배포", "안전" → 전체
- Read resources/01-diff-checking.md
- Read resources/02-ssh-auth.md
- Read resources/03-copy-module.md
- Read resources/04-playbook-patterns.md
- Playbook 생성 (diff → 확인 → 배포 → reload)
- 실행 테스트
중요 원칙
- 토큰 효율: 필요한 리소스만 Read
- Ansible 네이티브 우선: shell 스크립트 대신 Ansible 모듈 사용
- 사용자 확인: 배포 전 diff 확인 필수
- 실행 검증: 가능하면 항상 실행하여 동작 확인
- 범용성: 프로젝트 특정 내용 없이 패턴만 제공
Technical Details
상세한 설정 및 예제는 각 리소스 파일 참조:
REFERENCE.md: 리소스 전체 개요
resources/01-diff-checking.md: 배포 전 diff 확인 패턴
resources/02-ssh-auth.md: SSH 인증 및 vars_prompt
resources/03-copy-module.md: copy 모듈 활용법
resources/04-playbook-patterns.md: 안전한 배포 playbook 구조
resources/05-testing-validation.md: 검증 및 테스트 워크플로우
1---2name: ansible-deployment3description: Ansible을 활용한 서버 배포 자동화 패턴. diff 확인, SSH 인증, copy 모듈, playbook 구조가 필요할 때 사용하세요.4---5
6# Ansible Deployment Automation
7
8서버 설정 파일 배포 시 안전하고 효율적인 Ansible 패턴을 제공합니다.
9
10**핵심 철학**:
11- 배포 전 diff 확인 필수 (사용자가 변경 내용 검토)
12- Ansible 네이티브 기능 우선 (shell 스크립트 최소화)
13- 단일 비밀번호 입력으로 전체 워크플로우 완료
14- 색상 diff로 가독성 향상
15
16## Instructions
17
18### 워크플로우: 요청 분석 및 리소스 선택
19
20사용자 요청을 분석하여 필요한 리소스만 선택적으로 로드합니다.
21
22#### 1. 키워드 매칭
23
24사용자 요청의 키워드를 분석하여 필요한 리소스를 판단:
25
26**Diff 체크** (`resources/01-diff-checking.md`)
27- "diff", "차이", "변경 사항"
28- "배포 전 확인", "dry-run"
29- "file_diff_checker"
30- "copy 모듈"
31
32**SSH 인증** (`resources/02-ssh-auth.md`)
33- "SSH", "인증", "비밀번호"
34- "vars_prompt"
35- "ProxyJump", "Gateway"
36- "VPN", "접속"
37
38**Copy 모듈 활용** (`resources/03-copy-module.md`)
39- "copy 모듈", "copy module"
40- "check_mode", "diff"
41- "파일 동기화", "파일 배포"
42
43**Playbook 패턴** (`resources/04-playbook-patterns.md`)
44- "playbook", "role"
45- "배포", "deploy"
46- "서비스 reload", "handler"
47- "사용자 확인", "pause"
48
49**검증 및 테스트** (`resources/05-testing-validation.md`)
50- "syntax check", "문법 검사"
51- "dry-run", "테스트"
52- "lint", "검증"
53- "justfile"
54
55#### 2. 리소스 로딩 전략
56
57**단일 키워드 감지**
58- User: "배포 전 diff 확인하고 싶어"
59- → Read resources/01-diff-checking.md
60- → Read resources/03-copy-module.md
61
62**복합 요청**
63- User: "Ansible로 설정 파일 안전하게 배포하는 방법"
64- → Read resources/01-diff-checking.md (Diff)
65- → Read resources/02-ssh-auth.md (SSH)
66- → Read resources/03-copy-module.md (Copy)
67- → Read resources/04-playbook-patterns.md (Playbook)
68
69**불명확한 요청**
70- User: "Ansible 배포 설정"
71- → REFERENCE.md 확인하여 사용자에게 선택지 제시
72- → 선택에 따라 리소스 로드
73
74#### 3. 리소스 적용
75
761. **현재 프로젝트 구조 파악**
77 - ansible 디렉토리 위치 확인
78 - 기존 playbook, role 확인
79
802. **리소스 Read**
81 - 필요한 리소스만 Read
82 - 다른 리소스 참조 필요 시 추가 Read
83
843. **패턴 적용**
85 - Read한 리소스의 패턴을 프로젝트에 적용
86 - 기존 설정이 있으면 수정, 없으면 생성
87 - 사용자에게 변경 사항 확인
88
894. **검증**
90 - ansible-playbook --syntax-check
91 - 가능하면 실행하여 동작 확인
92 - 문제 발생 시 사용자에게 보고
93
94### 예시
95
96#### 예시 1: Diff 체크 Role 생성
97
98User: "배포 전에 변경 내용을 diff로 보고 싶어"
99
1001. 키워드 매칭: "diff", "배포 전" → Diff Checking
1012. Read resources/01-diff-checking.md
1023. Read resources/03-copy-module.md
1034. ansible/roles/file_diff_checker/ 생성
1045. copy 모듈 check_mode + diff 패턴 적용
1056. 사용자에게 사용법 안내
106
107#### 예시 2: SSH 인증 개선
108
109User: "Ansible 실행할 때 비밀번호 여러 번 입력하기 귀찮아"
110
1111. 키워드 매칭: "비밀번호" → SSH Auth
1122. Read resources/02-ssh-auth.md
1133. vars_prompt 설정 추가
1144. ansible_password + ansible_become_password 설정
1155. 테스트 실행 확인
116
117#### 예시 3: 안전한 배포 Playbook
118
119User: "서버 설정 파일을 안전하게 배포하는 playbook 만들어줘"
120
1211. 키워드 매칭: "배포", "안전" → 전체
1222. Read resources/01-diff-checking.md
1233. Read resources/02-ssh-auth.md
1244. Read resources/03-copy-module.md
1255. Read resources/04-playbook-patterns.md
1266. Playbook 생성 (diff → 확인 → 배포 → reload)
1277. 실행 테스트
128
129## 중요 원칙
130
1311. **토큰 효율**: 필요한 리소스만 Read
1322. **Ansible 네이티브 우선**: shell 스크립트 대신 Ansible 모듈 사용
1333. **사용자 확인**: 배포 전 diff 확인 필수
1344. **실행 검증**: 가능하면 항상 실행하여 동작 확인
1355. **범용성**: 프로젝트 특정 내용 없이 패턴만 제공
136
137## Technical Details
138
139상세한 설정 및 예제는 각 리소스 파일 참조:
140- `REFERENCE.md`: 리소스 전체 개요
141- `resources/01-diff-checking.md`: 배포 전 diff 확인 패턴
142- `resources/02-ssh-auth.md`: SSH 인증 및 vars_prompt
143- `resources/03-copy-module.md`: copy 모듈 활용법
144- `resources/04-playbook-patterns.md`: 안전한 배포 playbook 구조
145- `resources/05-testing-validation.md`: 검증 및 테스트 워크플로우