对/home/tidb/tidb-ansible/conf/tidb.yml 做如下修改:
然后执行ansible-playbook rolling_update.yml --tags=tidb
报错:
binlog是关闭的(inventory.ini):
请问该怎么解决。
对/home/tidb/tidb-ansible/conf/tidb.yml 做如下修改:
binlog是关闭的(inventory.ini):
请问该怎么解决。
---
name: check config locally
hosts: localhost
any_errors_fatal: true
tags:
name: check system environment
hosts: monitored_servers
any_errors_fatal: true
tags:
name: gather all facts, and check dest
hosts: all
any_errors_fatal: true
tags:
name: rolling update PD cluster
hosts: pd_servers
any_errors_fatal: true
serial: 1
tags:
pre_tasks:
set_fact:
pd_addr: “{{ ansible_host }}:{{ pd_client_port }}”
pd_name: “pd{{ groups.pd_servers.index(inventory_hostname) + 1 }}”
name: display PD name
debug:
var: pd_name
name: display PD address
debug:
var: pd_addr
include_tasks: “common_tasks/get_pd_leader.yml”
when: not enable_tls|default(false)
include_tasks: “common_tasks/get_pd_leader_tls.yml”
when: enable_tls|default(false)
include_tasks: “common_tasks/transfer_pd_leader.yml”
name: stop PD by supervise
shell: cd {{ deploy_dir }}/scripts && ./stop_pd.sh
when: process_supervision == ‘supervise’
name: stop PD by systemd
systemd: name=pd.service state=stopped
become: true
when: process_supervision == ‘systemd’
name: wait until the PD port is down
wait_for:
host: “{{ ansible_host }}”
port: “{{ pd_client_port }}”
state: stopped
msg: “the PD port {{ pd_client_port }} is not down”
roles:
post_tasks:
name: start PD by supervise
shell: cd {{ deploy_dir }}/scripts && ./start_pd.sh
when: process_supervision == ‘supervise’
name: start PD by systemd
systemd: name=pd.service state=started
become: true
when: process_supervision == ‘systemd’
name: wait until the PD port is up
wait_for:
host: “{{ ansible_host }}”
port: “{{ pd_client_port }}”
state: started
msg: “the PD port {{ pd_client_port }} is not up”
name: wait until the PD health page is available
uri:
url: “http://{{ ansible_host }}:{{ pd_client_port }}/health”
return_content: yes
register: pd_http_result
until: pd_http_result.status == 200 and ‘true’ in pd_http_result.content
retries: 12
delay: 5
when: not enable_tls|default(false)
name: wait until the PD health page is available when enable_tls
uri:
url: “https://{{ ansible_host }}:{{ pd_client_port }}/health”
validate_certs: no
client_cert: “{{ pd_cert_dir }}/pd-server-{{ ansible_host }}.pem”
client_key: “{{ pd_cert_dir }}/pd-server-{{ ansible_host }}-key.pem”
return_content: yes
register: pd_https_result
until: pd_https_result.status == 200 and ‘true’ in pd_https_result.content
retries: 12
delay: 5
when: enable_tls|default(false)
name: rolling update TiKV cluster
hosts: tikv_servers
any_errors_fatal: true
serial: 1
tags:
pre_tasks:
include_tasks: “common_tasks/get_pd_tikv_addr.yml”
include_tasks: “common_tasks/get_store_id.yml”
when: not enable_tls|default(false)
include_tasks: “common_tasks/get_store_id_tls.yml”
when: enable_tls|default(false)
include_tasks: “common_tasks/add_evict_leader_scheduler.yml”
name: stop TiKV by supervise
shell: cd {{ deploy_dir }}/scripts && ./stop_tikv.sh
when: process_supervision == ‘supervise’
name: stop TiKV by systemd
systemd: name=tikv-{{ tikv_port }}.service state=stopped
become: true
when: process_supervision == ‘systemd’
name: wait until the TiKV port is down
wait_for:
host: “{{ ansible_host }}”
port: “{{ tikv_port }}”
state: stopped
msg: “the TiKV port {{ tikv_port }} is not down”
command: cat {{ deploy_dir }}/status/tikv.pid
register: old_tikv_pid
ignore_errors: yes
changed_when: false
name: display old tikv pid
debug:
msg: “tikv binary or docker pid: {{ old_tikv_pid.stdout }}”
roles:
post_tasks:
name: start TiKV by supervise
shell: cd {{ deploy_dir }}/scripts && ./start_tikv.sh
when: process_supervision == ‘supervise’
name: start TiKV by systemd
systemd: name=tikv-{{ tikv_port }}.service state=started
become: true
when: process_supervision == ‘systemd’
name: wait until the TiKV port is up
wait_for:
host: “{{ ansible_host }}”
port: “{{ tikv_port }}”
state: started
msg: “the TiKV port {{ tikv_port }} is not up”
name: wait until the TiKV status page is available
uri:
url: “http://{{ ansible_host }}:{{ tikv_status_port }}/status”
return_content: yes
register: tikv_http_result
until: tikv_http_result.status == 200
retries: 12
delay: 5
when: not enable_tls|default(false) and (tikv_metric_method is defined and tikv_metric_method != “push”)
name: wait until the TiKV status page is available when enable_tls
uri:
url: “https://{{ ansible_host }}:{{ tikv_status_port }}/status”
validate_certs: no
client_cert: “{{ tikv_cert_dir }}/tikv-server-{{ ansible_host }}.pem”
client_key: “{{ tikv_cert_dir }}/tikv-server-{{ ansible_host }}-key.pem”
return_content: yes
register: tikv_https_result
until: tikv_https_result.status == 200
retries: 10
delay: 5
when: enable_tls|default(false) and (tikv_metric_method is defined and tikv_metric_method != “push”)
name: wait until TiKV process is up
wait_for_pid: |
pid_file={{ deploy_dir }}/status/tikv.pid timeout=300
thread_name_regex=‘tikv-server’ state=present
when: deployment_method == ‘binary’ and (tikv_metric_method is defined and tikv_metric_method == “push”)
command: cat {{ deploy_dir }}/status/tikv.pid
register: new_tikv_pid
ignore_errors: yes
changed_when: false
name: display new tikv pid
debug:
msg: “tikv binary or docker pid: {{ new_tikv_pid.stdout }}”
include_tasks: “common_tasks/remove_evict_leader_scheduler.yml”
name: rolling update pump cluster
hosts: pump_servers
any_errors_fatal: true
serial: 1
tags:
pre_tasks:
name: stop pump by supervise
shell: cd {{ deploy_dir }}/scripts && ./stop_{{ item }}.sh
with_items:
name: stop pump by systemd
systemd: name=pump-{{ pump_port }}.service state=stopped
become: true
when:
name: wait until the pump port is down
wait_for:
host: “{{ ansible_host }}”
port: “{{ pump_port }}”
state: stopped
msg: “the pump port {{ pump_port }} is not down”
when: enable_binlog|default(false)
roles:
post_tasks:
name: start pump by supervise
shell: cd {{ deploy_dir }}/scripts && ./start_{{ item }}.sh
when:
name: start pump by systemd
systemd: name=pump-{{ pump_port }}.service state=started
become: true
when:
name: wait until the pump port is up
wait_for:
host: “{{ ansible_host }}”
port: “{{ pump_port }}”
state: started
msg: “the pump port {{ pump_port }} is not up”
when: enable_binlog|default(false)
name: rolling update TiDB cluster
hosts: tidb_servers
any_errors_fatal: true
serial: 1
tags:
pre_tasks:
name: stop TiDB by supervise
shell: cd {{ deploy_dir }}/scripts && ./stop_tidb.sh
when: process_supervision == ‘supervise’
name: stop TiDB by systemd
systemd: name=tidb-{{ tidb_port }}.service state=stopped
become: true
when: process_supervision == ‘systemd’
name: wait until the TiDB port is down
wait_for:
host: “{{ ansible_host }}”
port: “{{ tidb_port }}”
state: stopped
msg: “the TiDB port {{ tidb_port }} is not down”
roles:
post_tasks:
name: start TiDB by supervise
shell: cd {{ deploy_dir }}/scripts && ./start_tidb.sh
when: process_supervision == ‘supervise’
name: start TiDB by systemd
systemd: name=tidb-{{ tidb_port }}.service state=started
become: true
when: process_supervision == ‘systemd’
name: wait until the TiDB port is up
wait_for:
host: “{{ ansible_host }}”
port: “{{ tidb_port }}”
state: started
msg: “the TiDB port {{ tidb_port }} is not up”
name: wait until the TiDB status page is available
uri:
url: “http://{{ ansible_host }}:{{ tidb_status_port }}/status”
return_content: yes
register: tidb_http_result
until: tidb_http_result.status == 200 and ‘TiDB’ in tidb_http_result.content
retries: 12
delay: 5
when: not enable_tls|default(false)
name: wait until the TiDB status page is available when enable_tls
uri:
url: “https://{{ ansible_host }}:{{ tidb_status_port }}/status”
validate_certs: no
client_cert: “{{ tidb_cert_dir }}/tidb-server-{{ ansible_host }}.pem”
client_key: “{{ tidb_cert_dir }}/tidb-server-{{ ansible_host }}-key.pem”
return_content: yes
register: tidb_https_result
until: tidb_https_result.status == 200 and ‘TiDB’ in tidb_http_result.content
retries: 10
delay: 5
when: enable_tls|default(false)
以上是tidb-ansible/rolling_update.yml的内容,这些文件都是同时从 git clone下来的没有做过改动,其实之前也约到监控组件yml配置文件格式错乱问题,上面的rolling_update.yml文件有啥语法问题吗,没有做过改动啊
首先确认一下你的 tidb-ansible 是否是下载 3.0.0 的版本,2.x 的版本和 3.0 的版本有些区别,3.0 版本中已经修改为 pump_cluster;
如果是做升级操作,从 2.x 升级到 3.0 版本,强烈推荐使用官方文档步骤升级。详细链接:https://pingcap.com/docs-cn/v3.0/how-to/upgrade/from-previous-version/#tidb-3-0-升级操作指南
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。