콘텐츠로 이동

DataKit 일괄 배포 모범 사례


환경 정보

이름 환경
Centos 7.6
Ansible 2.10.4
호스트 IP 10.200.14.56; 10.200.14.57; 10.200.14.63

참고: Linux 호스트만 지원

Ansible 배포

Ansible 설치

10.200.14.56 서버에 로그인하여 설치 명령어 실행

yum -y install ansible

Ansible 구성

Ansible의 hosts 파일 편집

vim /etc/ansible/hosts

호스트 목록 및 사용자/비밀번호 추가

[all]
10.200.14.56 ansible_ssh_user=root ansible_ssh_pass=xxx 
10.200.14.57 ansible_ssh_user=root ansible_ssh_pass=xxx 
10.200.14.63 ansible_ssh_user=root ansible_ssh_pass=xxx 

연결 프롬프트 비활성화

sed -i '/host_key_checking/c\host_key_checking = False' /etc/ansible/ansible.cfg

구성 확인

ansible all -m ping
10.200.14.57 | SUCCESS => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python" }, "changed": false, "ping": "pong" }
10.200.14.56 | SUCCESS => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python" }, "changed": false, "ping": "pong" }
10.200.14.63 | SUCCESS => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python" }, "changed": false, "ping": "pong" }

일괄 배포

PlayBook 구성

명령어 가져오기

[통합] 모듈을 클릭하고 오른쪽 상단의 [DataKit 설치 명령어 빠르게 가져오기]를 선택한 후, 운영 체제 및 시스템 유형에 따라 적절한 [DataKit 설치 명령어]를 선택합니다.

image.png

YAML 파일 생성

Ansible 디렉터리로 이동

cd /etc/ansible

파일 생성

vim datakit-install.yaml

다음 내용 추가 (앞서 복사한 [DataKit 설치 명령어] 사용)

- hosts: all
  remote_user: root
  tasks:
   - name: DataKit이 존재하는지 확인
     shell: ls /usr/local/datakit/conf.d
     ignore_errors: True
     register: result
   - name: DataKit 설치
     shell: [DataKit 설치 명령어]
     when: result.rc != 0

YAML 파일 실행

*** 서버가 공용 네트워크에 접근 가능해야 함 ***

ansible-playbook datakit-install.yaml
PLAY [all] ************************************************************************ ************************************************************************ ************************************************************************ *******************************************
TASK [Gathering Facts] ************************************************************************ ************************************************************************ ************************************************************************ *******************************
ok: [10.200.14.57]
ok: [10.200.14.56]
ok: [10.200.14.63]
PLAY RECAP ************************************************************************ ************************************************************************ ************************************************************************ *******************************************
10.200.14.56 : ok=2 changed=1 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0
10.200.14.57 : ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
10.200.14.63 : ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1

정보 확인

[인프라스트럭처] 모듈을 클릭하고 [호스트]에서 DataKit이 설치된 모든 호스트 목록 및 기본 정보를 확인합니다. image.png

일괄 업그레이드

YAML 파일 생성

Ansible 디렉터리로 이동

cd /etc/ansible

파일 생성

vim datakit-upgrade.yaml

다음 내용 추가

- hosts: all
  remote_user: root
  tasks:
   - name: DataKit이 존재하는지 확인
     shell: ls /usr/local/datakit/conf.d
     ignore_errors: True
     register: result
   - name: DataKit 설치
     shell: sudo -- sh -c "curl https://static.guance.com/datakit/installer-linux-amd64 -o dk-installer && chmod +x ./dk-installer && ./dk-installer -upgrade && rm -rf ./dk installer"
     when: result.rc == 0

YAML 파일 실행

ansible-playbook datakit-upgrade.yaml

정보 확인

[인프라스트럭처] 모듈을 클릭하고 빠른 필터 조건을 통해 최신 [DataKit 버전]을 선택합니다.

image.png

일괄 동기화

YAML 파일 생성

Ansible 디렉터리로 이동

cd /etc/ansible

파일 생성

vim datakit-config-upgrade.yaml

다음 내용 추가

- hosts: all
  remote_user: root
  tasks:
   - name: DataKit이 존재하는지 확인
     shell: ls /usr/local/datakit/conf.d
     ignore_errors: True
     register: result
   - name: /usr/bin/rsync가 존재하는지 확인
     shell: ls /usr/bin/rsync
     ignore_errors: True
     register: result
   - name: rsync 설치
     shell: yum -y install rsync
     when: result.rc != 0
   - name: 추가 rsync 옵션 전달하여 동기화
     synchronize:
       src: /usr/local/datakit/conf.d/
       dest: /usr/local/datakit/conf.d/
       rsync_opts:
        - "--exclude=datakit.conf"
       checksum: true
     register: res
   - debug: var=res.stdout_lines
   - debug: var=res.changed
   - name: DataKit 재시작
     shell: systemctl restart datakit
     when: res.changed == true

YAML 파일 실행

ansible-playbook datakit-config-upgrade.yaml

정보 확인

모든 호스트에 동일한 DataKit 구성(conf.d 디렉터리)이 적용됩니다. 일부 서버에서 개별 구성을 사용해야 하는 경우 DataKit 허용 목록 기능을 사용할 수 있습니다.

문서 평가

이 페이지가 도움이 되었나요?