
환경 구성 자동화 도구
서버를 수동으로 관리하기 때문에 구성이 동일해야 되는 여러 서버에서 눈송이 서버(Snowflake Server)와 같이 차이가 생기기 때문에 그래서 최근 시스템들은 자동화 방식을 많이 채택하고 있습니다.

노드 (제어 노드와 관리 호스트)
플레이북: 하나 이상의 플레이로 구성된 파일
플레이: 여러 작업을 정의
작업: 모듈 실행 단위

다운로드
virtualbox.org
rockylinux.org
mobaxterm
(virtualbox)Download-Window hosts
(rockylinux)Download- Minimal ISO 다운로드
virtualBox setting
수동으로 어댑터 설정
IPv4주소: 172.16.0.1
새로만들기
이름: controller
ISO이미지: roky
환경설정
Host Key Combo : Ctrl+Alt
controller - 설정 - Expert - 어댑터2
네트워크 어댑터 활성화
호스트 전용 어댑터
iso 적용이 안됐으면 변경
재부팅 후 연결 성공
패스워드 : root
일반 사용자
test, root
poweroff // 종료
복제
serverA, serverB, serverC 복제
MAC 주소 정책: 모든 네트워크 어댑터의 새 MAC 주소 생성
mobeXterm-ssh
controller
nmcli con mod enp0s8 ipv4.address 172.16.0.200/24 ipv4.method manual
hostnamectl set-hostname controller
reboot
serverA
nmcli con mod enp0s8 ipv4.address 172.16.0.201/24 ipv4.method manual
hostnamectl set-hostname serverA
reboot
serverB
nmcli con mod enp0s8 ipv4.address 172.16.0.202/24 ipv4.method manual
hostnamectl set-hostname serverB
reboot
serverC
nmcli con mod enp0s8 ipv4.address 172.16.0.203/24 ipv4.method manual
hostnamectl set-hostname serverC
reboot
controller 노드에서만 실행
useradd -> 사용자 생성
passwd 사용자 -> 패스워드 설정
사용자 로그인 su - 사용자
useradd ansible-user
passwd ansible-user
su - ansible-user
serverA
serverB
serverC
ssh-keygen -f -N '' ~/.ssh/id_rsa
# -t rsa : 기본 알고리즘이라서 rsa 방식 그대로 쓰고 싶은 경우에는 생략해도 됨
# ~/.ssh/id_rsa : 기본 저장 위치
# -N '' : 키에 암호를 지정하지 않겠다는 뜻 (키만 가지고 있으면 바로 들어갈 수 있게끔)
ssh -i test.pem ec2-user@10.0.0
# 이 -i 옵션은 기본 위치(~/.ssh)일때는 굳이 작성하지 않아도 된다.
ssh-copy-id 172.16.0.201 #severA
ssh-copy-id 172.16.0.202 #serverB
ssh-copy-id 172.16.0.203 #serverC
-i옵션 없이도 접근 가능하다.
su - ansible-user
ssh-keygen -f ~/.ssh/id_rsa -N ''
ssh-copy-id 172.16.0.201
ssh-copy-id 172.16.0.202
ssh-copy-id 172.16.0.203
ssh 172.16.0.201
연결 확인
# root 계정으로 실행
cat /etc/sudoers
vi /etc/sudoers.d/ansible
ansible-user ALL=(ALL) NOPASSWD: ALL
sudo dnf install epel-release
sudoer를 직접 건들기보다는 sudoers.d에 파일을 생성하여 상속하게 해줌(보안)
vi /etc/sudoers.d/ansible
epel.repo 안에 ansible이 있기에 ansible을 install 받을 수 있음
su - ansible-user
sudo dnf install epel-release
# EPEL -> Extra Package for Enterpirse Linux #패키기 최신을 제공
sudo dnf install -y ansible
controller에서 했던 것처럼 serverA, serverB,serverC에 sudo 권한 부여
cat /etc/sudoers
vi /etc/sudoers.d/ansible
위처럼 설정해주면 ssh 접속시에 ip로 접속하는 것이 아니라 호스트 이름으로 접속
설치 한 뒤 확인하기 위해 버전 정보를 출력.
버전
ansible 파이썬 기반으로 실행
Ansible Core, AWX, Ansible AP