상세 컨텐츠

본문 제목

ansible 사용해서 로컬 배포해보기

PROGRAMMING

by koharin 2026. 1. 30. 13:36

본문

728x90
반응형

Ansible

원격 시스템의 관리를 자동화하고, 원격 시스템의 상태를 제어함

반복 작업 제거 및 워크플로우 간소화, 시스템 유지보수, 복잡한 소프트웨어의 지속적인 배포 등에 사용됨

 

구성 요소

https://docs.ansible.com/projects/ansible/latest/getting_started/index.html

1. Control node

- Ansible이 설치되는 시스템. control node에서 ansible 또는 ansible-inventory 명령어 실행 가능

- Inventory: 로직적으로 정리된 managed node의 리스트. Ansible에 host 배포를 설명하기 위해 control node에 inventory 생성

 

2. Managed node

- Ansible이 제어하는 원격 시스템 또는 호스트

 

playbook

플레이북(playbook)이라는 스크립트를 사용하여 작업을 자동화함

플레이북에 로컬 또는 원격 시스템의 원하는 상태를 선언하면, Ansible이 해당 상태를 유지하도록 보장함

 

설치 방법

pip install ansible

ansible과 ansible-inventory 명령어를 사용할 수 있다.

 

프로젝트 폴더 생성

cd project
mkdir ansible

배포하고자 하는 프로젝트 폴더 내에 ansible 폴더를 생성해줬다.

 

로컬 배포용 테스트

- hosts: localhost
  connection: local 
  gather_facts: false

  tasks:
    - name: docker compose up 
      shell: docker-compose up -d --build
      args:
        chdir: /path/to/docker-compose/

로컬 배포용의 경우 간단하게 playbook.yml만 작성해주면 된다.

 

ansible-playbook ansible/playbook.yml

ansible-playbook 명령어에 playbook.yml 파일을 지정해주면, docker-compose up에 대한 task가 실행되어 결과를 출력해준다.

정상적으로 배포가 된 것을 확인할 수 있다.

 

 

728x90
반응형

관련글 더보기