◈ Ansible
※ 자동화 관리 및 구성 관리 도구
ㄴIT 인프라의 관리, 애플리케이션 배포, 시스템 설정 등을 자동화하는 데 사용
- 이전 가상화에서는 가상화 파일 설치 후 서버를 등록하고 가상화 OS를 설치하여 실행하는 형식이였다면,
Ansible에서는 가상화컴퓨터를 만드는
- 컨테이너의 격리가 가능
- 버전을 컨버팅할 때 서로 버전이 안 맞으면 호환이 안될 수 있기에 컨테이너 기반으로 DB컨테이너, 웹서버 컨테이너로
구분지어 놓고 IP대역만으로 연결해놓으면 웹서버를 컨버팅 시 환경설정만 해주면 되는 형식
- 같은 일을 반복적으로 하는 부분에서 시간이 오래걸리는 문제가 발생
- 이전에도 다른 자동화 앱이 있었으나 Ansible의 장점으로 SSH기반으로 하기 때문에 웬만한 장비도 가능하며(관리 대상 시스템에 에이전트를 설치할 필요가 없고), 관리를 편하게 할 수 있도록 코드 표만 입력 시 원하는 형태로 볼 수 있는 기능이 있다
- 스크립트를 만들어서 한번의 명령어로 여러 서버를 동시에 관리 가능
- YAML(Yet Another Markup Language) 형식의 파일인 Playbook을 사용하여 작업을 정의
- 일일, 주간, 월간, 반기, 분기, 연간 보고서 : 본인이 관리하는 장비에 대한 운용률(720시간 99%이상=무중단) 및 트래픽이 80%넘는지(장비성능 부족의 가능성 확인 필요) > 장비 업글이나 네트워크 환경의 로드 변경
- DNA센터 = 원격으로 서버를 관리하는 공간
<실습 구조>
하나의 서버에 node 4개를 설치 및 등록
OS : Debian 12 ( Download Debian 에서 최신 버전 iso 설치)
◇ 서버 OS 설치
먼저 Virtual Box에서 새 서버 등록 : 원격 접속을 위한 서버
이름 : Controller / Memory : 4096M / Processer : 2 / HDD : 20GB
새 호스트 전용 네트워크 100 대역 추가 생성하여 등록






시작 :
Graphic Install > English > other > Asia > South Korea > United States > American English






> enp0s3로 선택(NAT를 메인으로 설정)

> controller > 도메인네임 : 빈칸 > 비번 : root > 사용자 : user > 비번 : user





> Guided - user entire disk > > All files in one partition > Finish partitioning and write changes to disk > yes




> no > South Korea > deb.debian.org > http proxy : 빈칸



> No > Debian desktop environment, Xfce, SSH server, standard system utillies


> yes > /dev/sda > reboot


완료한 후 로그인 화면 출력 시 정상 설치 완료

◇ 서버 패키지 설치
그후 root 계정으로 접속한 후 ip 대역 확인 시 enp0s8의 ip가 없다면 설정에 가서 추가하여 준다



그리고 이름을 변경하여 준 후 NAT의 값도 변경하여 준 후


연결을 끊었다 다시 연결하여 준다

연결된 것을 확인한 후 ssh로 원격접속을 하여 준다 (MobaXterm이나 PuTTY)
기본적으로 root접속은 차단되어 있기에 user로 접속한 후 su 명령어를 통해 root 로 접속하여 update를 진행하여 준다
※ update 시 설치되지 않는 오류 발생
ㄴ확인해보니 enp0s8에서 dns ip가 등록되지 않아서 연결되지 않은 것을 확인하여 수정
그후 vim과 net-tools를 install 하여준 후

/etc/usdoers 파일에 user에도 sudo 권한을 쓸수 있도록 root의 내용과 동일하게 추가하여 준다


완료하고 종료하여 준 후
해당 서버를 node1,2로 완전 복제 한 후 메모리를 2048MB로 변경하고



node 1, 2를 켜서 영어로 된 Ethernet을 두개 지워준 후

nat를 설정하기 위해 ip a로 MAC 주소 확인 후 10.0.2.101, 102로 설정을 변경하고


host를 설정하기 위해 동일하게 MAC 확인 후 192.168.100.11,12로 변경하여 준다


둘다 완료 된 후 외부 통신이 되는 지 확인하여 준다

그 후 /etc/hosts에서 node의 값을 추가하여 준다


그리고 node의 hostname도 변경하여 준다


이제 controller로 가서 /etc/hosts를 입력하여 준 후

두 node가 정상적으로 ping이 되는 지 확인한다

이제 ssh원격 접속을 바로 연결하기 위해 키를 만들어 준 후

다른 노드에 추가하여 준다

이렇게 완료 한 후 Ansible을 install하여 준다


CISCO Team NAS Server에서 위파일 다운가능(연결 끊길 시 안됨)
그후 환경 설정 용 파일을 클라우드를 통해 받아서 해당 내용을 입력하여 준다
su 명령어로 root 계정으로 가서 3개의 명령어를 입력하여 준 후



update를 하여 주면 upgrade할 패키지가 확인되며, upgrade도 진행하여 준다

이후 다시 user계정으로 가서 my-ansible디렉토리를 만들고 inventory 파일 생성한 후 내용을 입력하여 준다


그리고 ansible.cfg파일을 생성하여 내용을 입력하여 준다


ㄴ privilege_escalation은 권한 질문 시 내용
완료한 후 "ansible -m ping web", "ansible -m ping db" 명령어를 통해서 연결이 되는 지 확인하여 준다


※에러 발생 시 파이썬 버전호환 오류로 예상되어 inventory에서 파이썬 버전 고정 문구 추가 및 s 추가

이제 한번 원격지에서 디렉토리 생성을 해보기 위해 mkdir.yml파일을 생성하여 주고


"ansible-playbook mkdir.yml"명령어로 등록하여 주면 node01에만 해당 aws-502 디렉토리가 생성되는 것을 볼 수 있다


이제 node에 새 사용자 계정을 추가해주기 위해 inventory와

useradd.yml 파일을 생성 및 수정하여 준다

그 후 동일하게 playbook에 등록하여 주면 해당 계정이 추가되는 것을 볼 수 있다



이 외에도 다양한 playbook들이 존재하며 다양하게 설정할 수 있다
'AWS 교육 > Network (목,금)' 카테고리의 다른 글
온프레미스 인프라 구축 프로젝트 완료 (0) | 2025.02.21 |
---|---|
250214 온프레미스 인프라 구축 프로젝트 발표자료 (0) | 2025.02.14 |
241227_방화벽(ZBF) 이후 프로젝트 시작 (0) | 2024.12.27 |
241226_CCP VPN (0) | 2024.12.26 |
241220_CCP (0) | 2024.12.20 |