コンテンツにスキップ

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 インストールコマンドを取得] から、お使いの OS とシステムタイプに応じて適切な [Datakit インストールコマンド] を選択します。

image.png

YAML ファイルの作成

Ansible ディレクトリに移動します。

cd /etc/ansible

新しいファイルを作成します。

vim datakit-install.yaml

以下の内容を追加します(先ほどコピーした [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 ファイルの実行

*** サーバーがパブリックネットワークにアクセスできる必要があります ***

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: 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 ファイルの実行

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: 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 ファイルの実行

ansible-playbook datakit-config-upgrade.yaml

確認

すべてのホストに同一の DataKit 設定(conf.d ディレクトリ)が適用されます。個別のカスタムサーバー設定が必要な場合は、DataKit のホワイトリスト機能を使用できます。

フィードバック

このページは役に立ちましたか?