Ansible.cfg 최적화 가이드: 효율적이고 사용자 친화적인 설정 방법
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
DevOps
대상자
- 개발자 및 DevOps 엔지니어: 인프라 자동화 및 Ansible 사용자
- 난이도: 중급 (기본 Ansible 지식 필요)
핵심 요약
stdout_callback = yaml
및stderr_callback = yaml
: JSON 대신 가독성 높은 YAML 형식으로 출력pipelining = True
:sudo
임시 파일 생성 및 SSH 연결 재사용으로 성능 향상gather_facts: false
: 불필요한 호스트 정보 수집 생략으로 실행 시간 단축host_key_checking = False
: 제어된 인프라 환경에서만 사용 권장 (보안 주의)
섹션별 세부 요약
1. `defaults` 설정 요약
stdout_callback = yaml
:ansible-playbook
실행 시 JSON 형식의 불필요한 출력 제거timeout = 30
: SSH 연결 시간 제한으로 시간 초과 방지forks = 10
: 동시 실행 호스트 수 조정 (리소스에 따라 최적화 필요)host_key_checking = False
: SSH 키 확인 비활성화 (제어된 환경에서만 적용)
2. `ssh_connection` 설정 요약
pipelining = True
:sudo
명령 실행 시 SSH 연결 재사용으로 오버헤드 감소timeout
및forks
설정: 연결 및 병렬 처리 최적화
3. 정적 인벤토리 파일 예시
[web]
,[db]
등 호스트 그룹 정의: IP 주소 및 사용자 지정 가능ansible_user=root
등 인벤토리 옵션: 서버 접근 설정 유연성 제공
4. Ansible CLI 및 명령어 사용 팁
ansible -i hosts.ini master-new -m setup -u root -vvvv
: 시스템 정보 수집 및 디버깅ansible-playbook --check
: 플레이북 실행 전 시뮬레이션ansible-galaxy init roles/ghost --offline
: 오프라인 환경에서 역할 생성gather_facts: false
: 호스트 정보 수집 생략으로 성능 향상
5. `requirements.yml` 예시
geerlingguy.nginx
및community.general
등 필요한 역할 및 컬렉션 명시- 버전 제어:
version: 3.1.0
및version: ">=4.0.0"
결론
ansible.cfg
설정을 통해 SSH 오류, 비효율적인 출력, 병렬 처리 지연을 해결할 수 있음pipelining
,stdout_callback
,gather_facts
등 핵심 설정은 자동화 작업의 성능과 안정성 극대화requirements.yml
파일을 통해 역할 및 컬렉션 의존성 관리- LiveAPI 도구 활용: API 문서 생성 및 관리 자동화 (Swagger/Postman 대체)