본문 바로가기

Engineering

(19)
[Redhat Linux] KVM을 이용하여 가상화 환경 구축하기 KVMKernel-based Virtual Machine의 약어로, 오픈소스 가상화 기술이다. 리눅스를 하이퍼바이저로써 이용할 수 있게 해주는 솔루션이다. KVM은 리눅스 커널의 일부이기 때문에 리눅스 커널 자원을 공유하고, 이를 본인의 리소스로써 활용할 수 있다.구축 Preliminary EnviromentBIOS > Virtualization technology - onOS: Rocky 8.8하나 이상의 Routed port네트워크  위 그림과 같이 kvm에서 관리하는 vm들이 호스트 서버와 네트워크 자원을 공유하여 사용할 수 있게끔, bridge interface를 생성한다. [기존 인터페이스]$ cat /etc/sysconfig/network-scripts/ifcfg-eno1TYPE=Etherne..
[Ansible] 8. 반복문과 조건문을 이용한 제어문 구현 앤서블 플레이북에서도 loop 문과 when 문을 이용하여 반복문과 조건문을 구현할 수 있다.반복문앤서블에서는 loop 구문을 이용하여 작업을 반복하고, 반복 작업에서 추출한 변수를 item 변수에 담아 이용할 수 있다.   제어노드의 sshd와 rsyslog 서비스 상태를 체크하는 플레이북을 작성해보자. sshd와 rsyslog를 ansible.builtin.service 모듈을 이용해 각각 실행하는 플레이북 예제이다. [root@Ansible-Controller ch07]# cat check-services.yml ---- hosts: all tasks: - name: Check sshd state ansible.builtin.service: name: sshd stat..
[Ansible] 7. Ansible Facts 활용 Ansible Facts팩트는 Ansible이 관리 호스트의 자원 정보를 수집한 변수를 뜻한다. 팩트 변수에는 아래와 같은 정보들이 포함된다.호스트 이름커널 버전네트워크 인터페이스OS 버전CPU 정보메모리 정보HDD 정보이 처럼 활용성 높은 많은 정보를 수집하여 운용자는 제어 노드를 관리할 수 있다. 간단한 플레이북을 통해 팩트 변수를 살펴본다.[root@Ansible-Controller playbook]# cat print_facts.yml ---- name: ansible facts hosts: node1 gather_facts: True tasks: - name: Print Facts ansible.builtin.debug: var: ansible_facts     하지만 ..
[Ansible] 6. Ansible Vault 인벤토리 파일이나 플레이북에 passwd, api 키 값, token 값 등 텍스트로 관리되서는 안되는 데이터들이 포함될 수 있다. 앤서블은 ansible vault 기능을 제공하여 암호화를 가능케한다.암호화된 파일 만들기파일 생성 단계부터 ansible-vault create 명령어를 이용하여 암호화된 파일을 생성할 수 있다.[root@Ansible-Controller ansible]# ansible-vault create vault_ex.ymlNew Vault password: Confirm New Vault password: [root@Ansible-Controller ansible]# cat vault_ex.yml $ANSIBLE_VAULT;1.1;AES256663565336630656435..
[Ansible] 5. 변수 변수동일한 코드 구문에 입력 값에 따른 동작을 지정하고 재활용하기 위하여 playbook에서도 변수를 사용할 수 있다.변수가 선언되는 위치에 따라 그 종류가 달라지고 종류에따라 참조 우선순위가 결정된다.그룹 변수와 호스트 변수 그룹변수는 인벤토리에 정의된 호스트 그룹에서 적용시키고 사용하는 변수를 의미한다. 따라서 인벤토리에 [GROUP:vars] 형태로 선언을 해야한다. 이때 그룹변수는 해당 그룹에 한해서 참조한다. 중첩그룹도 동일하게 적용된다.호스트 변수는 그룹변수와 동일한 방식으로 선언하지만 호스트에 한하여 선언된다.만일 변수가 중복이 됐을때, 그룹변수 [web-server]web1.ex.com user=ansible1 #web1.ex.com 호스트의 변수web2.ex.com[db-server]d..