title | aliases | ||
---|---|---|---|
离线 TiDB Ansible 部署方案 |
|
-
下载机一台
- 该机器需开放外网访问,用于下载 TiDB Ansible、TiDB 及相关软件安装包。
- 推荐安装 CentOS 7.3 及以上版本 Linux 操作系统。
-
部署目标机器若干及部署中控机一台
- 系统要求及配置参考准备机器。
- 可以无法访问外网。
-
在下载机上下载系统依赖离线安装包,然后上传至中控机。该离线包仅支持 CentOS 7 系统,包含
pip
及sshpass
。 -
在中控机上安装系统依赖包:
{{< copyable "shell-root" >}}
tar -xzvf ansible-system-rpms.el7.tar.gz && cd ansible-system-rpms.el7 && chmod u+x install_ansible_system_rpms.sh && ./install_ansible_system_rpms.sh
-
安装完成后,可通过
pip -V
验证 pip 是否安装成功:{{< copyable "shell-root" >}}
pip -V
pip 8.1.2 from /usr/lib/python2.7/site-packages (python 2.7)
注意:
如果你的系统已安装 pip,请确认版本 >= 8.1.2,否则离线安装 TiDB Ansible 及其依赖时,会有兼容问题。
参考在中控机上创建 tidb 用户,并生成 ssh key 即可。
以下是 CentOS 7 系统 Ansible 离线安装方式:
建议使用 Ansible 2.4 至 2.7.11 版本,Ansible 及相关依赖版本记录在 tidb-ansible/requirements.txt
文件中。下面步骤以安装 Ansible 2.5 为例。
-
在下载机上下载 Ansible 2.5 离线安装包,然后上传至中控机。
-
离线安装 TiDB Ansible 及相关依赖:
{{< copyable "shell-root" >}}
tar -xzvf ansible-2.5.0-pip.tar.gz && cd ansible-2.5.0-pip/ && chmod u+x install_ansible.sh && ./install_ansible.sh
-
安装完成后,可通过
ansible --version
查看版本:{{< copyable "shell-root" >}}
ansible --version
ansible 2.5.0
-
在下载机上安装 TiDB Ansible:
请按以下方式在 CentOS 7 系统的下载机上在线安装 TiDB Ansible。安装完成后,可通过
ansible --version
查看版本,请务必确认是 Ansible 2.5.0 版本,否则会有兼容问题。{{< copyable "shell-root" >}}
yum install epel-release && yum install ansible curl && ansible --version
ansible 2.5.0
-
下载 tidb-ansible:
使用以下命令从 Github TiDB Ansible 项目上下载 TiDB Ansible 相应版本,默认的文件夹名称为
tidb-ansible
。{{< copyable "shell-regular" >}}
git clone https://github.com/pingcap/tidb-ansible.git
注意:
部署和升级 TiDB 集群需使用对应的 tidb-ansible 版本,通过改
inventory.ini
文件中的版本来混用可能会产生一些错误。 -
执行
local_prepare.yml
playbook,联网下载 TiDB binary 到下载机:{{< copyable "shell-regular" >}}
cd tidb-ansible && ansible-playbook local_prepare.yml
-
将执行完以上命令之后的
tidb-ansible
文件夹拷贝到中控机/home/tidb
目录下,文件属主权限需是tidb
用户。
参考在中控机上配置部署机器 SSH 互信及 sudo 规则即可。
如果你的部署目标机器时间、时区设置一致,已开启 NTP 服务且在正常同步时间,此步骤可忽略,可参考如何检测 NTP 服务是否正常。
参考在部署目标机器上安装 NTP 服务即可。
参考在部署目标机器上添加数据盘 ext4 文件系统挂载参数即可。
参考分配机器资源,编辑 inventory.ini 文件即可。
-
ansible-playbook local_prepare.yml
该 playbook 不需要再执行。 -
参考部署任务即可。
参考测试集群即可。
注意:
TiDB 默认会定期收集使用情况信息,并将这些信息分享给 PingCAP 用于改善产品。若要了解所收集的信息详情及如何禁用该行为,请参见遥测。