일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- Firelens
- terraform
- blue-green
- 그라파나 시각화
- headless service
- 메탈LB
- 딥레이서
- Kubernetes
- 딥레이서 보상함수
- Solution Architecture
- LoadBalancer Controller
- 로드밸런서 컨트롤러
- livenessPorbe
- kubernetes 동작 원리
- jenkins
- AWS 딥레이서
- 쿠버네티스 컴포넌트
- EFS CSI Driver
- EKS 클러스터
- 깃허브 액션
- 그라파나 대시보드
- grafana on kubernetes
- Kubernets on Jenkins
- SAA 합격 후기
- github action 사용법
- 쿠버네티스
- helm
- 솔데스크
- Aurora cluster
- Prometheus install
Archives
mingming
Ansible - 설치 & 인벤토리 및 구성파일 본문
IaC(Infrastrucutre as Code)
코드형 인프라는 인프라를 시스템이 읽을 수 있는 인프라 정의 파일을 통해 인프라의 구성 관리 및 배포를 자동화 하는 것을 의미합니다.
IaC 도구 및 특징
구성 관리 도구 : Ansible , Chef, Puppet, SaltStack
구성 관리 도구는 베어메탈 시스템 , 가상 컴퓨터 및 클라우드 인스턴스 내에서 패키지 설치 , 애플리케이션 구성, 운영체제 관련 구성 및 구성 변경을 관리하는 도구입니다. 대부분의 구성 관리 도구는 가변 인프라에 초점을 맞추고 있습니다.
배포 도구 : CloudFormation , OpenStack Heat, Terraform
배포 도구는 새로운 인프라 리소스를 배포하고 이미 배포된 인프라 리소스의 생명주기를 관리하는 도구 입니다.
절차적 언어 / 선언적 언어
절차적 언어는 원하는 최종 상태에 도달하기 위해 코드가 단계별로 정의되고 실행되는 형태를 의미합니다. Asnble은 절차적 언어의 형태를 띄고 있습니다.
선언적 언어는 최종적으로 원하는 형태를 정의만 하면 필요한 절차는 내부적으로 알아서 진행되는 형태를 의미합니다.
Terraform, CloudFormation 이 대표적인 선언적 언어 입니다.
Ansible
Ansible은 애플리케이션 및 IT 인프라를 자동화 할 수 있는 도구 입니다. Ansible의 주요 목적은 간결성과 사용 용의성입니다 또한 보안과 신뢰성을 바탕으로 OpenSSH를 기본 전송 방법을 사용합니다.
Ansible은 에이전트 없이 호스트를 관리합니다. 관리 대상의 호스트에 데몬이 없기 때문에 데몬의 문제로 호스트를 관리 할 수 없는 문제가 발생하지 않습니다.
Ansible은 기존 OS 자격증명을 사용하며 필요한 경우 Kerberos, LDAP 및 중앙 집중식 인증 관리 시스템에 쉽게 연결 가능합니다.
Ansible 용어
제어노드
제어노드는 Ansible이 설치된 모든 호스트를 의미합니다. 제어노드에서 ansible 혹은 ansible-playbook 명령을 이용해 관리 노드를 제어할 수 있습니다.
관리노드
관리 노드는 Ansible로 관리하는 호스트 및 네트워크 장치를 의미합니다.
인벤토리
인벤토리는 관리 노드의 목록으로 관리 노드에 대한 호스트 이름이나 IP 주소와 같은 정보를 지정합니다. 여러 관리 노드를 그룹으로 조직화할 수 있습니다.
Task
Ansible의 작업 실행 단위입니다. 하나의 모듈이 하나의 작업이 되며, Ad-hoc 명령을 통해 단일 작업을 실행하거나, 플레이북을 작성해 작업을 실행할 수 있습니다.
Ad-hoc 명령
ansible 명령을 이용하여 단일 작업을 실행할 수 있습니다.
플레이북
플레이북은 하나 이상의플레이를 가지고 있는 YAML 파일을 의미합니다. ansible-playbook 명령을 이용해 플레이북을 실행할 수 있습니다.
역할
역할은 알려진 파일/디렉터리 구조를 기반으로 변수, 파일, 작업 등 아티팩트의 모음이다.
컬렉션
컬렉션(Collection)은 플레이북 및 역할, 모듈, 플러그인 포함하는 Ansible 콘텐츠 배포 형식입니다.
Ansbile 설치
요구사항
- python 2.6 버전 이상 설치
- RedHat , Debian, CentOS, Ubuntu, macOS, BSD 등 Unix 계열
사전 준비사항
1. 패키지 설치를 위한 저장소 확장 설치
sudo yum install -y epel-release
2. ansible 설치
sudo yum install -y ansible
3. 버전 확인
ansible --version
인벤토리 파일
Ansible은 인프라에 조내하는 여러 호스트를 관리합니다. 이런 호스트의 목록 또는 그룹을 지정한 인벤토리 파일이 필요합니다. 기본 인벤토리 파일은 /etc/ansible/hosts 이며 -i 옵션을 사용하여 다른 인벤토리 파일을 지정할 수 있습니다.
정적 인벤토리 파일
정적 인벤토리 파일은 사용자가 직접 INI 또는 YAML 형식으로 파일을 작성합니다.
INI 형식
mail.example.com
192.168.56.51
[webservers]
foo.example.com
bar.example.com
[dbservers]
one.example.com
two.example.com
three.example.com
YAML 형식
all:
hosts:
mail.example.com:
192.168.56.51:
children:
webservers:
hosts:
foo.example.com:
bar.example.com:
dbservers:
hosts:
one.example.com:
two.example.com:
three.example.com:
인벤토리 확인
ansible all --list-hosts
ansible webservers --list-hosts
ansible foo.exmple.com --list-hosts
ansible-inventory --list
ansible-inventory --host foo.example.com
ansible-inventory --graph
구성 파일
Ansible 구성 파일은 Ansible의 작동 방식을 구성하는 파일입니다. Ansible 구성 파일에는 인벤토리 파일의 위치, 관리 노드에 연결하는 방법, 연결 한 후 작동 방법 등 무수히 많 구성을 지정할 수 있습니다.
기본 Ansible 구성 파일의 위치는 /etc/ansible/ansible.cfg 이며, 변형된 INI 형식을 사용합니다.
Ansible 구성 파일 우선 순위
- ANSIBLE_CONFIG 환경 변수
- 현재 디렉터리의 ansible.cfg
- 홈 디렉터리의 ~/.ansible.cfg
- /etc/ansible/ansible.cfg
Ansible 구성 파일 설정
Ansible 구성 파일은 [section] 대괄호로 묶어진 여러 섹선이존재하며 각 섹션에는 키 = 값으로 설정됩니다.
[defaults]
inventory=./inventory
remote_user=vagrant
ask_pass=false
[privilege_escalation]
become=true
become_method=sudo
become_user=root
become_ask_pass=false
[defaults] 섹션
- inventory: 인벤토리 파일의 위치를 명시합니다.
- remote_user: SSH 인증하기 위한 사용자 (관리 노드의 사용자)
- ask_pass: SSH 인증하기 위한 패스워드 요청/입력 여부
[privilege_escalation] 섹션
- become: 권한 상승 여부 ( default false )
- become_method: 권한 상승 방법 ( default sudo )
- become_user: 권한 상승할 사용자 ( default root )
구성 파일 및 설정 확인
ansible-config view ## 현재 적용된 구성 파일의 내용 확인
ansible-config dump ## 현재 적용된 모든 구성 정보 확인
ansible-config list ## 설정 가능한 모든 설정 항목
'새싹 하이브리드 클라우드 > Ansible' 카테고리의 다른 글
Ansible - 반복문 & 조건문 (1) | 2023.11.19 |
---|---|
Ansible - 변수 (0) | 2023.11.18 |
Ansible - ad-hoc & playbook (0) | 2023.11.18 |
Ansible - 관리 노드 연결 ( SSH Key & Password ) (0) | 2023.11.11 |