Skip to content
This repository has been archived by the owner on Jun 24, 2021. It is now read-only.

Commit

Permalink
update config check 2.1 (#973)
Browse files Browse the repository at this point in the history
* Add config check

* Update config check (#971)
  • Loading branch information
liubo0127 authored Sep 24, 2019
1 parent 6dc6ff5 commit 17df29d
Show file tree
Hide file tree
Showing 6 changed files with 167 additions and 0 deletions.
7 changes: 7 additions & 0 deletions deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,13 @@
roles:
- check_config_dynamic

- name: Pre-check for configuration
hosts: pd_servers[0]
tags:
- check_config
roles:
- check_config

- name: deploying node_exporter
hosts: monitored_servers
tags:
Expand Down
42 changes: 42 additions & 0 deletions roles/check_config/tasks/check_pd_config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---

- name: Load PD vars
include_vars: file={{ playbook_dir }}/roles/pd/defaults/main.yml name=pd_vars_check

- name: "Load customized config: tidb-ansible/conf/pd.yml"
include_vars: file={{ playbook_dir }}/conf/pd.yml name=pd_conf_custom_check

- name: Load default config
include_vars: file={{ playbook_dir }}/roles/pd/vars/default.yml name=pd_conf_default_check

- name: Generate dynamic config
set_fact:
pd_conf_generated_check:
replication:
location-labels: "{{ pd_vars_check.location_labels }}"
security:
cacert-path: >-
{%- if enable_tls|default(false) -%}{{ pd_cert_dir }}/ca.pem{%- else -%}{%- endif -%}
cert-path: >-
{%- if enable_tls|default(false) -%}{{ pd_cert_dir }}/pd-server-{{ pd_host }}.pem{%- else -%}{%- endif -%}
key-path: >-
{%- if enable_tls|default(false) -%}{{ pd_cert_dir }}/pd-server-{{ pd_host }}-key.pem{%- else -%}{%- endif -%}
- name: Generate final config
set_fact:
pd_conf: "{{ pd_conf_custom_check | with_default_dicts(pd_conf_generated_check, pd_conf_default_check) }}"

- name: Create configuration file
template: src={{ playbook_dir }}/roles/pd/templates/pd.toml.j2 dest={{ tidb_check_dir }}/pd.toml mode=0644 backup=yes

- name: Deploy PD binary
copy: src="{{ resources_dir }}/bin/pd-server" dest="{{ tidb_check_dir }}/" mode=0755 backup=yes

- name: Check PD config
shell: cd {{ tidb_check_dir }} && ./pd-server -config ./pd.toml -config-check
register: pd_check_result

- name: Check result
fail:
msg: "PD config error"
when: "'successful' not in pd_check_result.stdout"
43 changes: 43 additions & 0 deletions roles/check_config/tasks/check_tidb_config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
---

- name: Load TiDB default vars
include_vars: file={{ playbook_dir }}/roles/tidb/defaults/main.yml name=tidb_vars_check

- name: Load TiDB group vars
include_vars: file={{ playbook_dir }}/group_vars/tidb_servers.yml name=tidb_vars_check

- name: "Load customized config: tidb-ansible/conf/tidb.yml"
include_vars: file={{ playbook_dir }}/conf/tidb.yml name=tidb_conf_custom_check

- name: Load default config
include_vars: file={{ playbook_dir }}/roles/tidb/vars/default.yml name=tidb_conf_default_check

- name: generate dynamic config
set_fact:
tidb_conf_generated_check:
security:
cluster-ssl-ca: >-
{%- if enable_tls|default(false) -%}{{ tidb_cert_dir }}/ca.pem{%- else -%}{%- endif -%}
cluster-ssl-cert: >-
{%- if enable_tls|default(false) -%}{{ tidb_cert_dir }}/tidb-server-{{ tidb_host }}.pem{%- else -%}{%- endif -%}
cluster-ssl-key: >-
{%- if enable_tls|default(false) -%}{{ tidb_cert_dir }}/tidb-server-{{ tidb_host }}-key.pem{%- else -%}{%- endif -%}
- name: Generate final config
set_fact:
tidb_conf: "{{ tidb_conf_custom_check | with_default_dicts(tidb_conf_generated_check, tidb_conf_default_check) }}"

- name: Create configuration file
template: src={{ playbook_dir }}/roles/tidb/templates/tidb.toml.j2 dest={{ tidb_check_dir }}/tidb.toml mode=0644 backup=yes

- name: Deploy TiDB binary
copy: src="{{ resources_dir }}/bin/tidb-server" dest="{{ tidb_check_dir }}/" mode=0755 backup=yes

- name: Check TiDB config
shell: cd {{ tidb_check_dir }} && ./tidb-server -config ./tidb.toml -config-check
register: tidb_check_result

- name: Check result
fail:
msg: "TiDB config error"
when: "'successful' not in tidb_check_result.stdout"
49 changes: 49 additions & 0 deletions roles/check_config/tasks/check_tikv_config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
---

- set_fact:
tikv_log_dir: "{{ deploy_dir }}/log"

- name: Load TiKV vars
include_vars: file={{ playbook_dir }}/roles/tikv/defaults/main.yml name=tikv_vars_check

- name: "Load customized config: tidb-ansible/conf/tikv.yml"
include_vars: file={{ playbook_dir }}/conf/tikv.yml name=tikv_conf_custom_check

- name: Load default config
include_vars: file={{ playbook_dir }}/roles/tikv/vars/default.yml name=tikv_conf_default_check

- name: generate dynamic config
set_fact:
tikv_conf_generated_check:
server:
labels: "{{ tikv_vars_check.labels }}"
rocksdb:
wal-dir: "{{ tikv_vars_check.wal_dir }}"
raftstore:
raftdb-path: "{{ tikv_vars_check.raftdb_path }}"
security:
ca-path: >-
{%- if enable_tls|default(false) -%}{{ tikv_cert_dir }}/ca.pem{%- else -%}{%- endif -%}
cert-path: >-
{%- if enable_tls|default(false) -%}{{ tikv_cert_dir }}/tikv-server-{{ tikv_host }}.pem{%- else -%}{%- endif -%}
key-path: >-
{%- if enable_tls|default(false) -%}{{ tikv_cert_dir }}/tikv-server-{{ tikv_host }}-key.pem{%- else -%}{%- endif -%}
- name: Generate final config
set_fact:
tikv_conf: "{{ tikv_conf_custom_check | with_default_dicts(tikv_conf_generated_check, tikv_conf_default_check) }}"

- name: Create configuration file
template: src={{ playbook_dir }}/roles/tikv/templates/tikv.toml.j2 dest={{ tidb_check_dir }}/tikv.toml mode=0644 backup=yes

- name: Deploy TiKV binary
copy: src="{{ resources_dir }}/bin/tikv-server" dest="{{ tidb_check_dir }}/" mode=0755 backup=yes

- name: Check TiKV config
shell: cd {{ tidb_check_dir }} && ./tikv-server --pd-endpoints pd:port --config ./tikv.toml --config-check
register: tikv_check_result

- name: Check result
fail:
msg: "TiKV config error"
when: "'successful' not in tikv_check_result.stdout"
19 changes: 19 additions & 0 deletions roles/check_config/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---

- set_fact:
tidb_check_dir: "/tmp/tidb_check_config"

- name: Create temporary check directory
file: name={{ tidb_check_dir }} state=directory

- name: Check PD config
include_tasks: check_pd_config.yml

- name: Check TiKV config
include_tasks: check_tikv_config.yml

- name: Check TiDB config
include_tasks: check_tidb_config.yml

- name: Delete temporary check directory
file: name={{ tidb_check_dir }} state=absent
7 changes: 7 additions & 0 deletions rolling_update.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,13 @@
- current_version.stdout_lines[0].replace(' ','').split(':')[1] < "v2.0.1"
- tidb_version >= "v2.1.0" or tidb_version == "latest"

- name: Pre-check for configuration
hosts: pd_servers[0]
tags:
- check_config
roles:
- check_config

- hosts: pd_servers[0]
any_errors_fatal: true
serial: 1
Expand Down

0 comments on commit 17df29d

Please sign in to comment.