메뉴 닫기

Ansible Playbook 으로 PostgreSQL 설치

Ansible Playbook 으로 PostgreSQL 설치

 

Ansible playbook으로 PostgreSQL 설치


Ansible은 파이썬 기반으로 작성되었으므로, 모듈과 명령어를 사용하여 여러 서버를 동시에 실행할 수 있는 자동화 엔진입니다.

Ansible playbook은 반복, 재사용, 간단한 구성 관리 및 다중 시스템 배포, 복잡판 애플리케이션 배포 사용에 적합합니다.

예를 들어, 대량의 서버에 웹 서비스를 설치 및 가동을 해야할때 서버 패키지 설치, 파일 전송, 서비스 재시작을 Ansible playbook에 작성하여 실행하면 한번에 모든 과정을 진행할 수 있습니다. 

 

[개  요]

✅ 종    류 : 엔지니어링

✅ 난이도 : ⭐

✅ 내용요약 : Ansible playbook에 대한 이론과 이를 이용하여 PostgreSQL 설치

✅ 테스트환경 : Ubuntu 22.04 서버 2대

✅ 관련직무 : 시스템&클라우드 엔지니어

[기초이론&용어설명]

  • Ansible : 오픈소스 소프트웨어 프로비저닝, 구성관리, 애플리케이션 전개 도구이다.
  • playbook : 호스트 서버에서 시행할 정책, 시스템 프로세스 단계의 설정 자동화를 위해 사용된다.
  • PostgreSQL : 오픈 소스 객체-관계형 데이터베이스 시스템(ORDBMS)입니다.

Ansible의 5가지 주요 기능


✅ 간편하다.

 – 관리하려는 서버에 ansible 용 agnet 등을 설치할 필요가 없다.

 – openssh이나 winrm 등을 사용하여 관리할 서버에 Ansible을 실행할 수 있다.

   =>  관리할 서버에 대한 승인 절차가 필요하지 않기 때문에 보안적으로 취약점이 생길 가능성이 적으며 빠르게 바로 사용할 수 있어 매우 효율적이다.

 

✅ 결과에 집중

 – 결과를 얻기 위해 명령어를 실행하는 것이 아닌 특정 상태로 만드는 것이다.

 

✅ 다양한 플랫폼에 지원

 – 물리, 가상, 클라우드, 컨테이너 환경에서 모두 지원 가능하다.

 – 네트워크 장치 등 특정한 하드웨어도 지원한다.

 – Linux, Unix, Windows 등 모든 OS에서 지원 가능하다.

 

✅  다른 시스템과 쉽게 통합 가능

 – 사용자 환경에 있는 HP SA, Puppet, Jenkins, Reahat Satellite 등의 시스템을 활용하고 Ansible 워크플로우로 통합할 수 있다.

  => 다른 프로그램과 호환되는 것이 많으니 이 점은 확인해야 한다.

 

✅ 보안 기능 지원

 – Linux의 Selinux를 그대로 사용하며, playbook이나 비밀번호 파일들을 암호화하는 기능 (ansible-vault)을 지원한다.

 

Ansible playbook 이란?


✅  Ansible 설정 관리 스크립트로서 yaml 형식으로 작성된 텍스트 파일이다.

✅  사용자가 구성한 인벤토리 파일 목록에 설정해둔 서버에 대해 실행된다.

 

Ansible playbook으로 PostgreSQL 설치


Ansible Playbook을 활용하여 PostgreSQL 설치를 진행해보려 합니다.

 

✅ 테스트 구성 환경

  ☞ OS Ubuntu22.04로 설치된 서버 2대( Controlloer Server 1대, Remote Server1대 )를 준비합니다.

1️⃣ Ansible 설치 및 초기 설정

  1) Ansible 설치

    – Ansible 설치는 Controller Server에만 설치하면 되며, Remote Server에는 Ansible(agent)가 따로 필요하지 않습니다.

# apt -y update

# apt -y upgrade

# apt -y install ansible

 

  – Ansible 버전 확인

# ansible –version

Ansible Playbook 으로 PostgreSQL 설치

 

 

 

 2) ssh key 생성

  – Ansible은 ssh 접속을 기반으로 Remote Server에게 명령을 전달하기 때문에 Controller Server와 Remote Server 간의 ssh key가 공유되어야 합니다.

    =>  Controller Server에서 ssh key를 생성합니다.

# ssh-keygen

Ansible Playbook 으로 PostgreSQL 설치

 

  – Controller Server에서 생성된 key를 Remote Server에 복사합니다.

    (중간에 Remote Server의 계정 비밀번호를 입력해야 합니다.)

# ssh-copy-id [원격 서버 계정 ID]@[원격 서버 IP]

Ansible Playbook 으로 PostgreSQL 설치

 

 – ssh key 복사가 되었는지 확인한다.

   Controller Server   = 접속 =>  Remote Server

 (ssh 접속 시 비밀번호 입력하지 않고, 접속되어야 잘 된 것!)

# ssh [원격 서버 계정 ID]@[원격 서버 IP]

Ansible Playbook 으로 PostgreSQL 설치

 

 3) 인벤토리 파일 생성

 ☞ 인벤토리 작성 문법은 다양하며, 여러 기능을 활용할 수 있습니다.

      지금은 간단히 인벤토리 파일에 원격 서버 IP를 작성하여 원격 접속이 되는지 테스트 진행을 해보려 합니다.

 

  – 인벤토리 파일에 원격 서버 IP를 작성합니다.

# vi /etc/ansible/hosts

[서버 이름]

원격 서버 IP

Ansible Playbook 으로 PostgreSQL 설치

 

 –  인벤토리 파일 목록에 설정해둔 서버로 정상 접속되는지 확인합니다.

    해당 파일 목록의 모든 서버 목록의 결괏값이 SUCCESS가 떠야 정상 접속이 되는 것입니다.

# ansible all -m ping

Ansible Playbook 으로 PostgreSQL 설치

Ansible 사용을 위한 설치 및 초기 설정이 모두 완료되었습니다.

​Controller Server에서 Ansible Playbook으로 Remote Server에 PostgreSQL 설치를 해보겠습니다.

 2️⃣ Remote Server에 PostgreSQL 설치

  1) Controller Server에 PostgreSQL 설치하는 yaml 파일을 생성합니다.

   – 간단하게 PostgreSQL을 Remote Server에 설치하는 간단한 문법으로 yaml 파일을 생성합니다.

Ansible Playbook 으로 PostgreSQL 설치

  2) 파일 생성 후 Ansible playbook으로 yaml 파일 실행하기

    ☞ ansible-playbook –check [파일명. yaml] : –check 옵션은 yaml 파일의 문법이 정상적으로 작성되었는지, 문법에 오류가 없는지 체크할 수 있는 옵션입니다.

# ansible-playbook ansible-playbook.yaml

Ansible Playbook 으로 PostgreSQL 설치

** 위와 같은 결과가 나오면 성공!! **

 

 3) Remote Server로 접속하여 PostgreSQl 설치 확인하기

   – Controller Server에서 Remote Server로 접속하여 netstat로 PostgreSQL 데몬이 실행되고 있는지 확인해 본다.

Ansible Playbook 으로 PostgreSQL 설치

 

  – PostgreSQL의 슈퍼유저 ‘postgres’ 계정으로 접속해 봅니다.

# sudo -u postgres psql

Ansible Playbook 으로 PostgreSQL 설치

위 방법으로 간단하게 PostgreSQL 데몬을 Remote Server에 설치할 수 있으며, yaml 파일을 보다 상세하게 설정하면 손쉽게 내가 원하는 환경으로 바로 구성이 가능합니다.

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x