Ansible로 NGINX 설정 자동화 방법
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

NGINX 설정을 Ansible로 동기화하는 방법

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

DevOps

대상자

DevOps 엔지니어, 시스템 관리자

  • 중급 이상의 Ansible 및 NGINX 경험을 가진 사람에게 유용
  • 자동화 및 인프라 설정을 반복적으로 수행하는 업무에 적합

핵심 요약

  • Ansible 역할 초기화: ansible-galaxy init 명령어로 역할 구조 생성
  • NGINX 설정 동기화: copy 모듈과 file 모듈을 사용해 파일 복사 및 심볼릭 링크 생성
  • 자동화 프로세스: nginx-conf-sync-playbook.yml에서 roles/nginx-conf-sync 실행하여 설정 적용 및 NGINX 재로딩

섹션별 세부 요약

1. 역할 초기화 및 구조 설정

  • roles/nginx-conf-sync 역할 생성 후 files/ 폴더에 NGINX 설정 파일 (blog.dev.to, api.dev.to) 배치
  • hosts.ini에 서버 정보 정의 (IP, 사용자, SSH 키 경로)

2. NGINX 설정 동기화 구성

  • nginx_conf_domains 변수에 동기화할 도메인 목록 선언
  • nginx-conf-sync-playbook.yml에서 hosts: master 지정 및 역할 실행

3. 역할 내 태스크 정의

  • 디렉토리 생성: /etc/nginx/sites-available/etc/nginx/sites-enabled 디렉토리 생성
  • .htpasswd 파일 생성: 기본 인증을 위한 copy 모듈 사용
  • 파일 복사: {{nginx_conf_domains}} 리스트를 기반으로 sites-available에 설정 파일 복사
  • 심볼릭 링크 생성: file 모듈로 sites-enabled에 심볼릭 링크 생성

4. NGINX 재로딩

  • service 모듈을 사용해 nginx 서비스 재로딩 (state: reloaded)

결론

  • Ansible 활용 팁: 설정 파일을 files/ 폴더에 배치하고 defaults/main.yml에서 도메인 목록 선언 후 playbook 실행
  • 자동화의 이점: 수동 오류 방지, 환경 간 일관성 유지, 반복 작업 효율화
  • 예시 실행 명령: ansible-playbook -i hosts.ini nginx-conf-sync-playbook.yml