본문 바로가기

AWS 교육/Network (목,금)

250227 Ansible 환경 구성

728x90

◈ 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하여 준다

0227-환경 설정용.txt
0.00MB

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와

user의 값과 동일하게 cloud를 설정

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

{{}}라는 것은 설정한 값인 cloud로 자동 설정되도록 한 것

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

 

  이 외에도 다양한 playbook들이 존재하며 다양하게 설정할 수 있다

728x90