PostgreSQL을 Ansible로 설치하는 간단한 방법
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

PostgreSQL을 Ansible로 설치하는 간단한 방법

카테고리

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

서브카테고리

DevOps

대상자

  • DevOps 엔지니어 및 시스템 관리자
  • Ansible을 사용해 인프라 자동화를 수행하는 분야
  • 초보자 대상 (간단한 명령어와 구조 설명 포함)

핵심 요약

  • Ansible 역할(roles/db)을 사용해 PostgreSQL 설치를 모듈화하고 재사용 가능하게 구성
  • ansible-galaxy init 명령어로 역할 구조 생성 (tasks, handlers, files 등)
  • Playbook(install-db.yml)을 통해 설치 프로세스 자동화 (apt 업데이트, 패키지 설치, 서비스 관리 등)
  • 테스트 역할(roles/db/tests/test.yml)을 통해 PostgreSQL 설치 확인 (psql 버전 검증)

섹션별 세부 요약

1. Ansible 프로젝트 구조 설정

  • ansible-galaxy init roles/db --offline 명령어로 역할 생성
  • 생성된 디렉토리 구조:

- tasks/main.yml: PostgreSQL 설치 주요 작업

- handlers/: 서비스 재시작 트리거 정의

- defaults/: 기본 변수 정의

- files/: 정적 파일 저장

  • ansible/ 디렉토리 내 hosts.ini, install-db.yml, requirements.yml 등 구성 파일 포함

2. Playbook 작성 및 실행

  • Playbook(install-db.yml) 예시:

```yaml

- name: Install PostgreSQL

hosts: all

become: true

roles:

- db

```

  • 실행 명령어: ansible-playbook -i hosts.ini install-db.yml
  • hosts.ini 파일에서 대상 서버 정의 예시:

```ini

[db]

node1 ansible_host=192.168.1.10 ansible_user=ubuntu

```

3. PostgreSQL 설치 작업 분해

  • APT 캐시 업데이트: apt: update_cache: yes
  • postgresql-common 설치: apt: name: postgresql-common, state: present
  • PGDG 스크립트 실행:

```yaml

command: /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh

args:

creates: /etc/apt/sources.list.d/pgdg.list

```

  • PostgreSQL 및 contrib 설치:

```yaml

apt:

name:

- postgresql

- postgresql-contrib

state: present

```

4. 테스트 역할 구성

  • roles/db/tests/test.yml 예시:

```yaml

- name: Test PostgreSQL installation

hosts: all

tasks:

- name: Check if postgres is installed

command: psql --version

register: pg_version

changed_when: false

failed_when: pg_version.rc != 0

- debug:

var: pg_version.stdout

```

  • 테스트 시 psql --version 명령어로 설치 여부 확인

결론

  • Ansible 역할과 Playbook을 사용해 PostgreSQL 설치 프로세스를 모듈화하고 재사용 가능하게 구성
  • roles/db 역할을 통해 모든 서버에서 일관된 설치 및 테스트 가능
  • LiveAPI를 활용해 백엔드 API 문서화 자동화 (Swagger/Postman 대체)