1.检查ansible版本,正常情况下,2.1 rc3需要兼容ansible 2.5以上的版本
$ ansible --version
2.检查python两个模块jinja2需要升级到2.9.6或以上版本,jmespath需要升级到0.9.0以上版本
wget https://pypi.python.org/packages/source/J/Jinja2/Jinja2-2.9.6.tar.gz
pip uninstall jinja2
tar vxf Jinja2-2.9.6.tar.gz
cd Jinja2-2.9.6
python setup.py install
3.升级
su - tidb
cd /home/tidb/
$ mv tidb-ansible tidb-ansible-bak
下载tidb最新版本2.1 rc3 (自行下载或者直接linux下载,所谓的离线升级就是在其他机器上,将这个下载好,并且执行ansible-playbook local_prepare.yml,提前将tidb binary下载到downloads目录)
https://github.com/pingcap/tidb-ansible
上传到/hone/tidb并解压
cd /home/tidb/tidb-ansible/conf
vi tikv.yml
修改 end-point-concurrency
变更为 high-concurrency
、normal-concurrency
和 low-concurrency
值推荐设置成机器物理cpu*0.8(默认应该就是这个配置)
vi tidb-ansible/inventory.ini 确认 tidb_version = v2.1-rc.3
执行下载 binary $ ansible-playbook local_prepare.yml
进行滚动升级 $ ansible-playbook rolling_update.yml
vi inventory.ini
检查文件中 process_supervision
变量:
process_supervision = systemd 如果process_supervision = systemd
,为兼容v2.0.0-rc.6
之前的版本,你需要执行migrate_monitor.yml
Playbook。如果process_supervision = supervise
,此步骤不需要执行。
$ ansible-playbook migrate_monitor.yml 滚动升级tidb 监控组件
$ ansible-playbook rolling_update_monitor.yml