DevOps

·DevOps/Ansible
ansible로 다양한 명령어를 통해 node들을 제어할 수 있습니다. 예를 들어 web이라는 node들에게 test.txt를 삭제하게 명령하려면 아래와 같습니다. ansible web -m shell -a "rm /home/test.txt" -b 여기서 -m 은 모듈을, -a 는 명령어를, -b는 root 권한을 의미합니다. 해석하자면 web이라는 node들에게 shell 명령어와 sudo권한으로 rm /home/test.txt를 수행하라는 의미입니다. 기본적으로 ansible의 node들, host들은 /etc/ansible/hosts 파일에 담겨져 있습니다. main PC와 node PC간 SSH 통신이 가능하면 위의 명령어를 수행할 수 있습니다. 다음은 이런식으로도 변형이 가능합니다. ansibl..
·DevOps/Grafana
준비물은 Grafana의 기본적인 설정과 시각화 할 수 있는 데이터 소스입니다. 현재 Grafana를 통해 Alert를 설정하고 있습니다.개인 프로젝트이기에 엄청 심화된 내용은 다루지 않으니 처음 하시는 분들이 참고하시기에 좋을 것 같습니다. 먼저 Grafana의 Alert 메뉴입니다.1. Alert rules - 임계값이나 여러 표현식을 사용하여 알람을 설정하는 메뉴입니다.2. Contact points - Alert message의 템플릿을 만들거나 Alert를 어떠한 플랫폼(gmail, slack 등)으로 전송할지 정하는 메뉴입니다.3. Notification policies - Label을 체계적으로 정리하여 그룹화 시켜 확인할 수 있는 메뉴입니다.4. Silences - 특정 시간에 Alert를..
·DevOps/Ansible
먼저 준비물은 다음과 같습니다. ansible이 설치된 서버와 다른 pc와 연결된 상태여야 합니다. 연결이 됐는지 확인하려면 ansible hosts에 다른 pc IP를 입력한 후 ansible all -m ping 을 통해 연결이 됐는지 확인할 수 있습니다. 연결 방법에 대해서는 개개인의 설정이 다르기에 알맞은 정보를 찾아서 연결하셔야 됩니다. ping을 통해 연결이 된 것을 확인하면 다음과 같이 ansible playbook을 작성합니다. node-exporter.yml --- - hosts: exporter gather_facts: no tasks: - name: Create node-exproter dir # exporter가 설치 될 디렉토리를 만들어 줍니다. file: path: /home/d..
·DevOps/Ansible
준비물은 Docker가 설치된 node pc가 필요하며, 해당 node pc와는 연결이 되어있는 상태여야 합니다. node pc에 Docker와 Docker-compose를 설치하는 방법은 아래와 같습니다. https://cleaning-toolbox.tistory.com/90 Ansible playbook으로 Docker를 설치시켜보자 준비물은 이렇습니다. Ansible의 hosts파일에 연결될 node pc의 IP를 작성하고, 해당 node pc를 ansible ping을 통해 연결이 된 후에 아래의 playbook을 실행시킬 수 있습니다. 위의 준비물은 다른 게시글에도 cleaning-toolbox.tistory.com docker-compose.yml version: "3" services: no..
·DevOps/Grafana
현재 Grafana는 V8.4.4를 사용하고 있고 제가 원하는 바는 이렇습니다. 아래와 같은 Grafana의 대시보드가 있으면파랑색 박스는 그 전날과 비슷한 시간에  똑같이 CPU의 사용률이 올랐기에 Alert를 발생하지 않고빨간색 박스는 그 전날과 다르게 CPU의 사용률이 측정되었기에 Alert를 발생시킵니다. 이것을 응용한다면 어제가 아닌 지난 주의 값을 비교할 수 있고 반복적인 작업이 있다면 그 부분을 제외하고 Alert를 발생할 수 있는 것입니다.  위와 같이 설정하고 싶다면 Grafana의 Alert Rule의 쿼리 부분을 계산해야합니다.먼저 새로운 Alert Rule을 만든 다음 핵심적인 부분은 2개의 빨간색 박스입니다.먼저 전날과 비교하려면 총 2개의 Query와 3개의 Expression이..
·DevOps/Ansible
준비물은 이렇습니다. Ansible의 hosts파일에 연결될 node pc의 IP를 작성하고, 해당 node pc를 ansible ping을 통해 연결이 된 후에 아래의 playbook을 실행시킬 수 있습니다. 위의 준비물은 다른 게시글에도 많기에 저는 playbook내용을 준비했습니다. 핵심인 playbook의 내용입니다. --- - hosts: exporter gather_facts: no tasks: - name: Create main dir # 없어도 되는 부분입니다. file: path: /home/daou_docker/exporters state: directory - name: Install packages # docker-compose를 위해 wegt을 설치해줍니다. vars: ansibl..
·DevOps/Ansible
ansible을 사용하던 중 playbook의 작성요령을 숙지하고 있어야 된다는 생각이 들었습니다. 그렇기에 따로 공부하면서 계속해서 작성해보도록 하겠습니다. --- - name: install nginx # playbook의 이름을 정합니다. hosts: all # 어떤 그룹에 실행할지 선정합니다. become: yes # 대상 호스트에 root 사용자로 작업을 수행합니다. connection: local # 대상 호스트가 ssh대신 local 연결을 합니다. gather-facts: no # facts를 수집하지 않음으로써 성능을 향상시킵니다. tasks: # 수행할 업무들입니다. - name: install epel-release # 업무에 대한 이름을 정합니다. yum: # yum과 관련된 모듈을..
·DevOps/Docker
개인 프로젝트를 진행하면서 docker의 쓰임새를 알게 되었고 다른 블로그의 글들을 보면서 필요한 코드들만 뽑아서 쓰는게 아닌 이해하면서 쓰고 싶었기에 문법 정리에 대한 글을 작성해보려고 합니다. FROM app FROM app:test # app이라는 Container image를 base로 사용합니다. # 태그가 없으면 latest를 사용합니다. RUN pip install -r requirements.txt RUN echo "Hello world" > /tmp/hello RUN apt-get install -y niginx RUN git clone https://github.com/test # RUN 형식이며 셸 스크립트 구문을 사용할 수 있습니다. # FROM의 이미지에 포함된 /bin/sh 실행..
지나가는 지식들을 모아두기
'DevOps' 카테고리의 글 목록