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 서버에 로그인하여 설치 명령어 실행
Ansible 구성¶
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
연결 프롬프트 비활성화¶
구성 확인¶
| 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 설치 명령어]를 선택합니다.
YAML 파일 생성¶
Ansible 디렉터리로 이동
파일 생성
다음 내용 추가 (앞서 복사한 [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 파일 실행¶
*** 서버가 공용 네트워크에 접근 가능해야 함 ***
| 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이 설치된 모든 호스트 목록 및 기본 정보를 확인합니다.

일괄 업그레이드¶
YAML 파일 생성¶
Ansible 디렉터리로 이동
파일 생성
다음 내용 추가
- 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 파일 실행¶
정보 확인¶
[인프라스트럭처] 모듈을 클릭하고 빠른 필터 조건을 통해 최신 [DataKit 버전]을 선택합니다.
일괄 동기화¶
YAML 파일 생성¶
Ansible 디렉터리로 이동
파일 생성
다음 내용 추가
- 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 파일 실행¶
정보 확인¶
모든 호스트에 동일한 DataKit 구성(conf.d 디렉터리)이 적용됩니다. 일부 서버에서 개별 구성을 사용해야 하는 경우 DataKit 허용 목록 기능을 사용할 수 있습니다.

