메뉴 닫기

Ansible – 계정 생성 및 포트 변경

 

Ansible – 계정 생성 및 포트 변경

서버 관리와 구성은 시간이 많이 걸리고 복잡할 수 있습니다.

그러나 Ansible과 같은 자동화 도구를 사용하면 이러한 작업을 효율적이고 오류 없이 수행할 수 있습니다. 

Ansible Playbook을 사용하여 새로운 사용자를 생성하고 SSH 포트를 변경하는 방법을 안내합니다.

Ansible이란?

오픈 소스 소프트웨어의 자동화 플랫폼이며, 애플리케이션 배포를 자동화하기 위해 사용합니다.

  • 간결한 구성관리 : Yaml을 사용하여 읽기 쉬운 구성 파일을 작성하며, 이를 통해 시스템 설정 사용자 관리 서비스 관리 등 손쉽게 자동화 할 수 있습니다.

  • 모듈화 및 확장성 : 다양한 모듈을 제공하며, 패키지 설치, 파일 복사, 서비스 관리 등 다양한 작업을 수행할 수 있습니다.

  • 인벤토리 관리 : 인벤토리 파일을 통해 관리 대상의 호스트와 그룹을 정의하며, 특정 서버, 서버 그룹에 대한 작업을 쉽게 지정할 수 있습니다.

  • 플레이북(Playbook) : 수행할 작업을 정의한 스크립트이며, 다양한 자동화 작업을 명세화하고 재사용할 수 있습니다.

새로운 서버를 준비하여 진행하는 경우에는 업데이트 후에 설치를 진행합니다.

저는 Centos 7을 통해 테스트하여 작업하였으며, 사설 아이피로 통신하여 진행하였습니다.

업데이트를 해줍니다.

# yum update y

업데이트 후 yum 레포지토리를 추가해줍니다

# yum install y epelrelease

epel 레포지토리가 정상적으로 추가 되었는지 레포 목록을 확인합니다.

레포가 목록을 확인하여 설치가 된 부분을 확인하면 이제 ansible을 설치합니다.

# yum install y ansible

설치가 잘 되었다면 해당 버전 확인을 통해 설치가 잘 되었는지 확인을 할 수 있습니다.

# ansible version

Ansible은 ssh 접속을 기반으로 서버들에게 명령을 전달합니다.

Controller 서버와, 원격 서버들간의 ssh key가 공유되어야 통신을 할 수 있으며

Controller 서버에서 모든 작업을 진행할 수 있습니다.

Controller 서버에서 ssh key를 생성합니다.

# sshkeygen

생성을 한후에 key를 원격 서버에 복사합니다.

# sshcopyid [서버 계정]@[서버 IP]

정상적으로 생성 및 복사가 되었다면, controller 서버에서 ssh 접속 시도할 때,

비밀번호 입력 없이 바로 접속이 되어야 합니다.

Ansible의 인벤토리 파일은 /etc/ansible/hosts 이며

이 파일안에 통신할 서버의 IP를 작성해주어야 합니다.

# vi /etc/ansible/hosts
 
해당 파일을 작성한 후에 통신이 제대로 이루어지는지 확인을 합니다.
# ansible all m ping

통신이 제대로 이루어지는지 확인이 되었으면, ansible playbook을 통해 yml 파일을 작성합니다.

저는 /etc/ansible/ 에 playbook.yml을 작성하였습니다.

서버의 아이디는 ansible로, 패스워드는 test0427!!로 만들어지고

ssh 포트를 2222번 포트로 변경 후 ssh 데몬이 재시작하여 포트 변경이 적용되는 부분을 작성하였습니다.

# vi /etc/ansible/playbook.yml

 

작성한 후에 정상적으로 돌아가는지 확인을 하기 위해 테스트를 해줍니다.

# ansibleplaybook playbook.yml check diff

정상적으로 테스트가 완료되었다면, ansible-playbook playbook.yml 명령을 사용하여 Playbook을 실행합니다.

* 실행을 하기전에, ssh 또는 다른 서비스들의 포트를 변경할 경우 접속이 안될 수 있기에

접속이 끊겨도, 따로 접속할 수 있는 방안을 만들고 포트를 변경하여야 하며, 또한 서버내에 방화벽을 사용하고 있다면

해당 서버들의 방화벽에 해당 변경하려는 포트를 열어주어야 정상적으로 통신이 가능한 점 확인을 하고 진행하여야 합니다.

외부에서 따로 접속할 환경이 아니라면 컨트롤러 서버에서 접근하여 변경할 수도 있습니다.

playbook을 실행해줍니다.

# ansibleplaybook playbook.yml

변경이 완료되었습니다.

제대로 변경이 되었는지 확인을 하기 위해 컨트롤러 서버를 통해 접근합니다.

# ssh root@10.101.0.3 p2222

접속하여 ssh 포트가 변경된 점 확인하였습니다.

 

# cat /etc/passwd | grep ansible

아이디도 정상적으로 만들어진점 확인하였습니다.

또한, 공인아이피로 ssh 변경된 포트 및 아이디로 접근시도시

playbook에 작성한 패스워드로 정상적으로 접근 되는점 확인하였습니다.

Ansible을 사용하면 서버 관리 작업을 자동화하고, 시간과 노력을 절약할 수 있습니다.

이러한 자동화를 통해 IT 인프라를 보다 효율적으로 관리할 수 있습니다.

감사합니다.

참조 : https://www.ansible.com/

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