[Playbook] ansible system check playbook
·
IaC (Ansible)/Playbook
현재 OpenStack Compute system 상태 체크용으로 사용하는 플레이북입니다. 1. openstack-system-check.yml [root@hk-controller etech]#cat openstack-system-check.yml --- - name: Main Openstack System Check hosts: dell become: false tasks: - name: Add Info shell: cmd: | cat > /home/heat-admin/{{ ansible_hostname }}-compute-system-info-$(date "+%Y%m%d").txt > /home/heat-admin/{{ ansible_hostname}}-compute-system-info-$(date..
[Ansible] ansible when (조건문) 샘플
·
IaC (Ansible)/Playbook
특정 조건일 경우에만 실행하는 샘플입니다. 아래 예제의 경우 stat 모듈을 통해 특정경로의 디렉토리가 존재 여부를 확인해서 없으면 아래 task를 실행하고, 그렇지 않으면 skip하는 샘플입니다. - name: Check that the unarchive files exists stat: path: /root/linux64_offline_setupFile/ register: stat_result - name: Move unarchive directory to root directory shell: sudo mv /root/vul_script_all_210217/* /root when: stat_result.stat.exists == False
[Ansible] debug - var vs stdout vs stdout_lines 차이점
·
IaC (Ansible)/Playbook
playbook을 작성하고 debug를 사용할 때 var 그리고 stdout 그리고 stdout_lines에 따라서 보여주는 결과의 차이점을 정리하였습니다. 예제로 구성한 debug.yml 내용은 아래와 같습니다. [stack@rhosp-zzero-director hkjeon]$ cat debug.yml --- - name: debug test hosts: dell gather_facts: no tasks: - name: Check sysstat info shell: sudo cat /etc/cron.d/sysstat register: sysstat - debug: var: sysstat - name: Check sysstat info shell: sudo cat /etc/cron.d/sysstat re..
[Playbook] include task를 활용한 playbook 샘플
·
IaC (Ansible)/Playbook
include_tasks를 활용한 여러 playbook 파일을 수행하는 샘플입니다. 노드 구축 후 하나의 playbook 실행을 통해 여러 서버의 설정 변경 조치 및 보안취약점 스크립트 수행, 결과 파일을 ansible을 수행하는 서버 특정 경로로 가져오고 확인하는 플레이북을 작성해서? 사용중인 playbook입니다. 내용중 "XXX"로 표시한 것은 고객사 이름이 있어서 변경하였습니다. 환경정보 main.yml : /home/stack/hkjeon task playbook : /home/stack/hkjeon/etech 1. main.yml cat main.yml ## This Playbook only use for rhosp13 setting and xxx security patch setting. #..
[playbook] kvm에 vm 생성하는 playbook
·
IaC (Ansible)/Playbook
아래 내용은 RHEL 7.7이 설치된 호스트서버에 kvm에 vm을 생성하는 playbook입니다. qcow2파일이 있는 상태에서 vm 생성시키는 playbook입니다. # 특이사항 virt-install 명령을 통해 Linux iso를 마운트해서 vm을 생성시, VM의 OS 설치를 완료하여 재부팅하거나 혹은 수동으로 재기동 또는 서버의 전원을 Off하지 않으면 해당 play에서 멈춰있기 때문에 hk-director.qcow2파일을 만들어서 해당 파일로 VM을 생성하는 playbook 내용임을 참고해야합니다. 1. tasks/main.yml [root@hk-controller vm]#cat tasks/main.yml --- - name: create VMs hosts: kvmhost become: true..
[playbook] kvm (virt-manager) 설치 playbook
·
IaC (Ansible)/Playbook
hk-controller VM (Ansbile-Controller)에서 RHEL7.7 Host서버에 kvm (virt-manager)를 설치하는 playbook입니다. 1. main.yml playbook을 실행시키는 main.yml 파일의 내용입니다. kvm이라는 상위디렉토리에서 kvm이라는 role을 구성하여 사용한 playbook내용입니다. [root@hk-controller kvm]#cat main.yaml --- - hosts: kvmhost become: false gather_facts: false roles: - kvm [root@hk-controller kvm]#cd roles/ [root@hk-controller roles]#ls kvm vm [root@hk-controller role..
[playbook] grafana 설치 playbook
·
IaC (Ansible)/Playbook
prometheus와 grafana 연동을 위해 grafana 설치에 대한 playbook 내용입니다. 별도의 vm을 생성해서 구성하려다 prometheus VM에 grafana를 설치하도록 하였습니다. grafana 접속 및 대쉬보드 구성, prometheus 연동은 이전에 했던 것과 같이 직접 접속해서 구성하였습니다. 해당 playbook 파일은 ansible-grafana github에서 다운받을 수 있습니다. https://github.com/hkjeon/ansible-grafana.git ## 환경 정보 node_exporter : xx.xx.xx.4 (RHEL 8.4 / kvmhost) ansible-controller : xx.xx.xx.5 (RHEL 8.4) prometheus (/w gr..
[playbook] node_exporter 설치 playbook
·
IaC (Ansible)/Playbook
node_exporter를 설치하는 playbook 파일은 앞선 prometheus설치한 디렉토리에 node-exporter 라는 Role을 추가하여 작성하였습니다. 그래서 ansible-prometheus github에서 다운받을 수 있습니다. https://github.com/hkjeon/ansible-prometheus ## 환경 정보 node_exporter : xx.xx.xx.4 (RHEL 8.4 / kvmhost) ansible-controller : xx.xx.xx.5 (RHEL 8.4) prometheus : xx.xx.xx.6 (RHEL 8.4) 1. node-exporter-main.yml 생성 [root@hk-controller ansible-prometheus]#cat node-ex..
[playbook] Prometheus 설치 playbook
·
IaC (Ansible)/Playbook
이전에는 호스트에서 수동으로 설치 및 구성하여 prometheus / node_exporter / grafana 설치 가이드를 정리했습니다. 이번에는 ansible을 통해 3개 프로그램을 각 노드에 설치 및 설정할 수 있게 playbook을 작성 및 테스트해봤고, playbook 작성한 내용과 작성한 파일들을 github에 업로드하였습니다. hk-controller 라는 호스트에서 ansible을 통해 다른 노드에 prometheus 설치를 위한 작성한 yaml에 대한 내용입니다. 작성한 ansible-playbook 파일은 아래 github에서 다운받아서 사용할 수 있습니다. https://github.com/hkjeon/ansible-prometheus ## 환경 정보 ansible-controlle..
[Ansible] import vs include 차이점
·
IaC (Ansible)/Playbook
주요 차이점은 다음과 같습니다. import * (import_playbook, import_tasks 등) 문은 플레이북이 Parsing될 때 사전에 처리가된다. include * (include_playbook, incloude_tasks 등) 문은 플레이북을 실행하는 동안 발생한대로만 처리한다. 위 내용에 따라 ansible에서는 import는 static (정적), include는 dynamic (동적)이라고 합니다. task안에서 import_tasks를 사용할 수도 있으나, 보통 논리적으로 나눌때 import를 사용하고, main.yml - import_tasks: prepare_filesystem.yml - import_tasks: install_prerequisites.yml - impor..