Information Security Study
엔서블 모듈 사용하기 본문
엔서블 모듈 사용하기
- Ansible 모듈은 Ansible의 핵심 구성 요소 중 하나로 관리할 대상 서버(호스트)에 수행할 작업을 정의한 작은 코드 단위다.
- 모듈은 다양한 작업을 자동화하는 데 사용되며 시스템 관리, 애플리케이션 배포, 클라우드 서비스 관리 등 다양한 목적에 맞게 설계되었다.
- Ansible 모듈은 단일 작업을 수행하는 데 필요한 로직을 포함하고 있으며 작업 실행 시 Ansible은 모듈을 원격 호스트에서 실행한 후 결과를 수집해 반환한다.
Ansible 모듈의 종류
1) 기본 모듈
- Ansible 설치 시 기본적으로 포함된 모듈로 운영 체제 관리, 파일 처리, 패키지 설치 등 일반적인 작업을 수행하는 데 사용된다.
- 예시
- file: 파일 및 디렉토리의 속성 관리 (예: 소유권 변경, 파일 생성 등)
- copy: 로컬에서 원격 호스트로 파일 복사
- yum, apt: 패키지 설치 및 관리
- service: 서비스 관리 (예: 시작, 중지, 재시작)
2) 클라우드 모듈
- AWS, GCP, Azure 등의 클라우드 플랫폼을 관리하기 위한 모듈이다.
- 예시
- ec2, s3: AWS 자원 관리
- gcp_compute_instance: Google Cloud 인스턴스 관리
3) 네트워크 모듈
- 네트워크 장치와의 상호작용을 위한 모듈이다. Cisco, Juniper, Arista 등의 네트워크 장비와 통신할 수 있다.
- 예시
- ios_config, nxos_config: Cisco 장비의 설정 변경
- junos_config: Juniper 장비 관리
4) 데이터베이스 모듈
- MySQL, PostgreSQL, MongoDB 등의 데이터베이스 시스템을 관리하기 위한 모듈이다.
- 예시
- mysql_db: MySQL 데이터베이스 관리
- postgresql_user: PostgreSQL 사용자 관리
5) 사용자 정의 모듈
- 필요에 따라 직접 Ansible 모듈을 작성할 수도 있다. Python 등의 언어로 작성할 수 있다.
Ansible 모듈 사용 예시
Ansible 모듈은 주로 플레이북에서 사용되며 각 모듈은 작업(task)로 정의된다.
ex) yum 모듈을 사용하여 Apache 웹 서버를 설치하는 작업
- name: Install Apache
yum:
name: httpd
state: present
yum 모듈을 사용하여 Apache 웹 서버 패키지(httpd)를 설치한다.
모듈의 작동 방식
- Ansible은 모듈을 원격 서버에 전송하고 그곳에서 실행한 후 결과를 다시 컨트롤러(Ansible을 실행한 시스템)로 가져온다.
- 대부분의 모듈은 파이썬으로 작성되어 있으며 일부는 쉘 스크립트 또는 다른 언어로 작성될 수 있다.
- 모듈은 "상태 기반"으로 설계되어 있다. 이는 모듈이 실행된 후 시스템의 상태를 보고 예상한 대로 변경되었는지 확인하는 것을 의미한다.
/etc/ansible/hosts 파일에 잘 등록되었다면 두 서버 모두 핑이 잘 보내질 것이다.
타겟 tmp 디렉터리를 만들고
master 서버에서 hello.txt를 생성한다.
앤서블 명령어로 파일을 전송할 수 있다.
target 서버의 tmp 디렉터리를 확인하면 hello.txt 파일이 생긴 것을 볼 수 있다.
이번에는 파일 전송이 아닌 패키지 설치를 해 볼 것이다.
먼저 nano 패키지를 삭제한다.
$ ansible target -m apt -a "name=nano state=present" --become
위 명령어로 target 서버에 nano 패키지를 설치할 것이다.
두 타겟 서버에 정상적으로 설치가 되었다.
'네트워크 캠퍼스' 카테고리의 다른 글
앤서블로 하는 AWS 프로비저닝 (0) | 2024.08.26 |
---|---|
프로메테우스 커스텀 매트릭 생성 및 조회하기(인스턴스 정지 시 상태값 조회 불가능한 상황) (0) | 2024.08.05 |