Ansible
IaC 도구란?
- Infrastructure as a Code 의 약자로 IT 인프라스트럭처를 코드를 통해 정의하고 관리하는 개념을 뜻한다
- 수동으로 인프라를 구축하고 관리하는 대신 코드를 사용하여 인프라를 정의하고 프로비저닝( 필요한 하드우에어, 소프트웨어, 및 기타 리소스를 할당하고 설정하여 시스템을 사용할 수 있도록 하는 작업) 하는 것이다
- IaC를 사용하면 시스템 및 인프라스터럭처의 설정, 배포 및 관리를 자동화 할 수 있다
- Ansible, Terraform, Chef, Puppet과 같은 다양한 오픈 소스 도구들도 IaC 구현에 사용된다
Ansible
- Ansible은 IaC도구 중에서 대표적이고 널리 사용되는 도구이다
- Ansible은 Red Hat 에서 개발한 오픈 소스 도구로 서버 설정 관리, 배포, 작업 자동화를 위한 강력한 툴로 알려져있다
실습 - Ansible 설치 및 KVM을 활용한 실습
- Centos7 버전에 KVM(libvirtd)를 설치하여 ansible을 활용한 실습을 해보겠다
[기본 환경 설정 및 KVM 설치하기]
- 방화벽 및 SElinux 중지
[root@localhost ~]# systemctl disable firewalld --now
[root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
- 네트워크 매니저 중지(network 서비스로 네트워크 관리 -> cli 관리)
[root@localhost ~]# systemctl disable NetworkManager --now
- 기본적으로 필요한 패키지 설치
[root@localhost ~]# yum -y install curl git wget vim && echo "alias vi='vim'" >> ~/.bashrc && yum -y install epel-release && yum -y install ansible && ansible --version && echo
[root@localhost ~]# yum -y update
- runlevel 3 으로 전환 뒤, 재부팅
[root@localhost ~]# systemctl set-default multi-user.target && reboot
- kvm 관련 패키지들 설치 및 설정
[root@localhost ~]# yum -y install libvirt qemu-kvm virt-install virt-manager libguestfs-tools
[root@localhost ~]# vi /etc/libvirt/qemu.conf
root 검색하여
user = "root"
group = "root"
의 가장 앞에 있는 “#” 를 제거하여 kvm 실행은 root 또는 root 그룹사용자들만 가능하도록 한다
[root@localhost ~]# systemctl restart libvirtd
[root@localhost ~]# systemctl enable libvirtd
- VM에서 사용될 가상머신 이미지 생성하기
[root@localhost ~]# yum -y install libguestfs-xfs
[root@localhost ~]# cd
[root@localhost ~]# mkdir simpleansible ; cd simpleansible
[root@localhost simpleansible]# virt-builder centos-7.5 --format qcow2 --size 10G -o centos01.qcow2 --root-password password:test123 # VM을 위한 볼륨 생성
[root@localhost simpleansible]# cp centos01.qcow2 centos02.qcow2
[root@localhost simpleansible]# cp centos01.qcow2 centos03.qcow2
[root@localhost simpleansible]# ls
centos01.qcow2 centos02.qcow2 centos03.qcow2
[root@localhost simpleansible]#
- 인스턴스 설치
[root@localhost simpleansible]# virt-install --name centos01 --ram 1024 --vcpus 1 --disk path=/root/simpleansible/centos01.qcow2 --graphics none --console pty --serial pty --import &
[root@localhost simpleansible]# virt-install --name centos02 --ram 1024 --vcpus 1 --disk path=/root/simpleansible/centos02.qcow2 --graphics none --console pty --serial pty --import &
[root@localhost simpleansible]# virt-install --name centos03 --ram 1024 --vcpus 1 --disk path=/root/simpleansible/centos03.qcow2 --graphics none --console pty --serial pty --import &
[root@localhost simpleansible]# virsh list --all #VM 목록 확인하기
Id Name State
4 centos01 running
5 centos02 running
6 centos03 running
- 가상머신 autostart 셋팅 해두기
[root@localhost simpleansible]# virsh autostart centos01
Domain centos01 marked as autostarted
[root@localhost simpleansible]# virsh autostart centos02
Domain centos02 marked as autostarted
[root@localhost simpleansible]# virsh autostart centos03
Domain centos03 marked as autostarted
- VM IP 주소 확인하기
[root@localhost simpleansible]# virsh domifaddr centos01
Name MAC address Protocol Address
vnet0 52:54:00:b8:1c:f7 ipv4 192.168.122.81/24
[root@localhost simpleansible]# virsh domifaddr centos02
Name MAC address Protocol Address
vnet1 52:54:00:84:55:21 ipv4 192.168.122.217/24
[root@localhost simpleansible]# virsh domifaddr centos03
Name MAC address Protocol Address
vnet2 52:54:00:fd:c7:76 ipv4 192.168.122.51/24
'클라우드' 카테고리의 다른 글
Beats - 정의, filebeat, metricbeat (0) | 2024.02.28 |
---|---|
Logstash - 정의 , 플러그인의 종류 (0) | 2024.02.28 |
Auto Scaling 및 모니터링을 통한 Docker 컨테이너 관리 시스템 구축하기 (1) | 2024.02.13 |
Elasticsearch 집계, Query DSL (0) | 2024.01.31 |
Elasticsearch의 내부구조, 관련용어 , mapping 타입 (0) | 2024.01.31 |