Ansible
python으로 만들어진 인프라 구성 관리 도구
컨트롤(Control)용 서버 한 대로 구축 대상 서버 구축
- 구축 대상 서버에 구성 관리 클라이언트 도구를 도입할 필요가 없다
- 정해진 포맷으로 설정을 간단하게 기술할 수 있다
- 경우에 따라 명령어 하나로(Ansible 설정 없이) 실행할 수 있어 도입이 용이하다
Infrastructure as Code
환경의 배포와 구성을 규격화된 코드로 정의해 사용하는 것을 의미
즉, 해당 개념을 내포하는 각종 환경 자동화 도구는 인프라의 상태를 코드로 선언하고 이를 모든 서버에 배포함으로써 특정 환경을 동일하게 유지할 수 있도록 돕는다.
Ansible 설치
간단한 사용법을 익히기 위해 centos에서 nginx를 설치해보자.
아래 링크를 사용하여 설치하였다.
이후 아래 명령어를 사용해 ansible 설치
$ sudo yum -y install epel-release
$ sudo yum -y install ansible
*epel-release: EPEL(Extra Packages for Enterprise Linux)은 Fedora Project에서 제공되는 저장소로 각종 패키지의 최신 버전을 제공하는 community 기반의 저장소
ansible로 nginx를 실행시켜보자.
$ sudo sh -c "echo \"localhost\" >> /etc/ansible/hosts"
$ ansible localhost -b -c local -m service -a "name=nginx state=started"
/etc/ansible/hosts는 Inventory File로 불려지는 것으로, ansible에 의해 향후 원격 실행을 하기 위한 대상이 되는 서버 목록을 정의
두번째 명령어가 실제로 nginx를 실행하는 명령어
localhost: Inventory File에 기재된 서버 중에서 이번 명령어에 의해 실제 명령 실행을 수행하는 대상
-b: 원격 실행되는 대상 서버에서 어떤 사용자에 의해 조작이 실행되는지, -b의 경우 root 사용자
-c local: local 연결을 하기 위해 부여(일반적으로 원격 서버 접속은 ssh로 실행)
-m service: service 모듈을 이용하는 것을 정의
-a "name=nginx state=started": 상기 모듈 사용에 대한 추가적인 인수
이를 입력하고 상태를 확인해보자.
현재 nginx가 이미 실행중인 상태이다.
ngnix가 실행 중이기에 해당 명령어가 잘 실행된 것을 확인
실행을 중지하고 실행
중지가 된 것을 확인할 수 있고 실행 명령어를 한 뒤 다시 확인
nginx가 실행으로 바뀐 것을 확인
<출처>
IT 운용 체제 변화를 위한 데브옵스(DevOps)
'Study > Ansible' 카테고리의 다른 글
[Ansible]Serverspec (0) | 2023.02.07 |
---|---|
[Ansible]Ansible(앤서블) 기본 개념 (0) | 2023.02.07 |