Ansible

DevOps = IaC + CI/CD

IaC(Infrastructure as Code) - 인프라를 코드로 정의

  • 장점 : 인프라를 On-demand로 빠르게 띄울 수 있다. 휴먼 에러를 줄일 수 있다.
    동일한 환경을 재현가능(=immutable, 불변)
  • 특징: 멱등성 성립(여러번 수행해도 같은 결과 나옴)
  1. ansible - ‘이미 구축된’ 인프라를 ‘관리’하는데 특화
    ex) virt-builder를 통해 kvm 이미지를 커스터마이징 한후, 100개의 서버를 생성한후에, 이 서버들을 한꺼번에 관리
  2. terraform - ‘클라우드 인프라 구축’에 특화

앞으로 복사해서 사용할 VM 템플릿 생성

  • 2core 2GB 20GB, 미니멀, IP: 211.183.3.100/24

  • selinux , firewalld , NetworkManager 끄고 비활성화 + 레포 추가

https://eitherwho.tistory.com/29

 

10일차) 2025-01-09 (centos7 VM 초기 설정) ♨

초기 셋팅앞으로 centos7 VM을 설정하면 이렇게 3개의 초기 셋팅하기!1. 방화벽 off[root@web ~]# systemctl stop firewalld [root@web ~]# systemctl disable firewalld2. 셀리눅스 off셀리눅스가 활성화 되어있으면, 나중에

eitherwho.tistory.com

  • update + epel-release 설치
[root@cent-tem ~]# yum update -y && yum install -y epel-release
  • 설정 셧다운 Manage Clone 풀클론으로 생성

# 앞으로는 이 서버를 clone해서 사용
# m1, m2, control_node 복제

# 앤서블은 server-client 구조는 아니다. 역할군이 딱 정해져있는게 아니라, managed node들에게 ssh로 앤서블 명령만 전달할 수 있으면 어디가 됐던 control node가 될 수 있다.


ansible 노드 구성

  • m1, m2, control_node ip 지정
vi /etc/sysconfig/network-scripts/ifcfg-ens32
control_node: 211.183.3.200
m1:211.183.3.210
m2: 211.183.3.220
systemctl restart network
systemctl enable network
  • 컨트롤노드 호스트네임
[root@cent-tem ~]# hostnamectl set-hostname control_node
  • m1의 호스트네임

  • m2의 호스트네임

  • 컨트롤노드에서 m1, 2에 통신되는지 확인

  • 컨트롤 노드에 ansible 설치
[root@control_node ~]# yum install -y epel-release
[root@control_node ~]# yum install -y ansible
[root@control_node ~]# ansible --version
  • 두 대의 관리 당할 서버 추가
[root@control_node ~]# vi /etc/ansible/hosts
  • /etc/ansible/hosts: /etc/hosts에서 DNS 목록과 유사

  • 인벤토리: 서버의 목록

# 위의 인벤토리에 속한 두대의 서버(m1, m2)에 ansible 명령을 전달

# 일반 ping과는 다르지만, 통신 확인 목적은 같음

  • ssh 접속이 성립 안함

# ssh 접속이 성립 안함 → 키페어를 나눠갖거나, 암호를 통해 인증하지 않았기 때문

  • control_node = ssh client(프라이빗키)
  • m1, m2 = ssh server(퍼블릭키)

  • 암호로 인증을 하겠다는 옵션
[root@control_node ~]# ansible all -m ping -k

# -k(= --ask-pass): 암호로 인증을 하겠다는 옵션

# 연결성을 테스트하는 모듈: icmp 패킷을 보내는 프로토콜이 아니라 ping 요청에 대해 pong을 반환하는 모듈