Devops/Ansible
DB 서비스가 실행 중인지 확인하는 Ansible 코드
BabyTT
2023. 3. 17. 20:30
DB 엔진을 설치할 때 이미 DB가 실행되고 있는 경우가 있다. 가끔 IP기반으로 설치하다보니 서비스를 중복으로 설치하는 분들이 있어서 방어 코드를 추가 하였다.
defaults/main.yml
db_port_check:
- 1433
- 3306
- 27017
.
.
.
tasks/port_check.yml
- name: netstat
shell: |
/bin/netstat -tln | grep ":{{ item }} " | sed -e 's/.*\///'
register: netstat_result
with_items:
- "{{ db_port_check }}"
- name: result
set_fact:
process_result: "{{ netstat_result.results | map(attribute='stdout') | join('') }}"
- name: failure
fail:
msg: "Database is running on {{ ansible_hostname }}."
when: process_result != ''
포트만 변경하면 Application 이 실행되고 있는 상태에서 추가 작업을 막기 위해 사용이 가능하다.
작업 중 이미 실행되고 있는 것이 있는지 포트 기반으로 확인한 후 작업이 진행되지 않게 활용할 수 있다.