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: judge datakit is exits
shell: ls /usr/local/datakit/conf.d
ignore_errors: True
register: result
- name: install 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: judge datakit is exits
shell: ls /usr/local/datakit/conf.d
ignore_errors: True
register: result
- name: install 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: judge datakit is exit
shell: ls /usr/local/datakit/conf.d
ignore_errors: True
register: result
- name: judge /usr/bin/rsync is exits
shell: ls /usr/bin/rsync
ignore_errors: True
register: result
- name: install rsync
shell: yum -y install rsync
when: result.rc != 0
- name: Synchronize passing in extra rsync options
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: reload datakit
shell: systemctl restart datakit
when: res.changed == true
执行 yaml 文件¶
验证信息¶
所有主机都会应用相同的 DataKit 配置 (conf.d 目录), 如果遇到个定制服务器配置,可以使用 DataKit 白名单功能。