离线 TiDB-Ansible 部署方案

准备机器

  1. 下载机一台

  2. 该机器需开放外网访问,用于下载 TiDB-Ansible、TiDB 及相关软件安装包。

  3. 推荐安装 CentOS 7.3 及以上版本 Linux 操作系统。
  4. 部署目标机器若干及部署中控机一台

  5. 系统要求及配置参考准备机器。

  6. 可以无法访问外网。

在中控机上安装系统依赖包

下载系统依赖离线安装包,上传至中控机。该离线包仅支持 CentOS 7 系统,包含 pipsshpass

# 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 是否安装成功:

# pip -V
 pip 8.1.2 from /usr/lib/python2.7/site-packages (python 2.7)

如果你的系统已安装 pip,请确认版本 >= 8.1.2,否则离线安装 ansible 及其依赖时,会有兼容问题。

在中控机上创建 tidb 用户,并生成 ssh key

参考在中控机上创建 tidb 用户,并生成 ssh key 即可。

在中控机器上离线安装 Ansible 及其依赖

以下是 CentOS 7 系统 Ansible 离线安装方式:

目前 release-2.0 及 master 版本兼容 Ansible 2.5 版本,Ansible 及相关依赖版本记录在 tidb-ansible/requirements.txt 文件中,请下载 Ansible 2.5 离线安装包上传至中控机。

下载 Ansible 2.5 离线安装包

下面以安装 Ansible 2.5 为例:

# 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 查看版本:

# ansible --version
 ansible 2.5.0

在下载机上下载 TiDB-Ansible 及 TiDB 安装包

以下为 tidb-ansible 与 TiDB 的版本对应关系,版本选择可以咨询官方。

TiDB版本 tidb-ansibletag 备注
2.0版本 v2.0.10、v2.0.11 最新2.0稳定版本,可用于生产环境。
2.1版本 v2.1.1~v2.1.6 最新2.1稳定版本,可用于生产环境(建议)。
3.0版本 v3.0.0-beta、v3.0.0-beta.1 目前是beta版本,不建议用于生产环境。
latest版本 None 包含最新特性,每日更新,不建议用于生产环境。
  1. 在下载机上安装 Ansible

请按以下方式在 CentOS 7 系统的下载机上在线安装 Ansible。安装完成后,可通过 ansible --version 查看版本,请务必确认是 Ansible 2.5.0 版本,否则会有兼容问题。

     # yum install epel-release
     # yum install ansible curl
     # ansible --version
       ansible 2.5.0
  1. 下载 tidb-ansible

使用以下命令从 Github TiDB-Ansible 项目上下载 TiDB-Ansible 相应版本,默认的文件夹名称为 tidb-ansible

注意:

部署和升级 TiDB 集群需使用对应的 tidb-ansible 版本,通过改 inventory.ini 文件中的版本来混用可能会产生一些错误。

  • 下载指定 tag 的 tidb-ansible:
            $ git clone -b $tag https://github.com/pingcap/tidb-ansible.git
  • 下载 latest 版本对应的 tidb-ansible:
            $ git clone https://github.com/pingcap/tidb-ansible.git
  1. 执行 local_prepare.yml playbook,联网下载 TiDB binary 到下载机
     cd tidb-ansible
     ansible-playbook local_prepare.yml
  1. 将执行完以上命令之后的 tidb-ansible 文件夹拷贝到中控机 /home/tidb 目录下,文件属主权限需是 tidb 用户。

在中控机上配置部署机器 ssh 互信及 sudo 规则

参考在中控机上配置部署机器 ssh 互信及 sudo 规则即可。

在部署目标机器上安装 NTP 服务

如果你的部署目标机器时间、时区设置一致,已开启 NTP 服务且在正常同步时间,此步骤可忽略,可参考如何检测 NTP 服务是否正常。

参考在部署目标机器上安装 NTP 服务即可。

在部署目标机器上配置 CPUfreq 调节器模式

参考在部署目标机器上配置 CPUfreq 调节器模式即可。

在部署目标机器上添加数据盘 ext4 文件系统挂载参数

参考在部署目标机器上添加数据盘 ext4 文件系统挂载参数即可。

分配机器资源,编辑 inventory.ini 文件

参考分配机器资源,编辑 inventory.ini 文件即可。

部署任务

  1. ansible-playbook local_prepare.yml 该 playbook 不需要再执行。
  2. Grafana Dashboard 上的 Report 按钮可用来生成 PDF 文件,此功能依赖 fontconfig 包及英文字体,如需使用该功能,请下载 font 离线安装包上传至 grafana_servers 机器上安装。该离线包仅支持 CentOS 7 系统,包含 fontconfigopen-sans-fonts
     $ tar -xzvf grafana-font-rpms.el7.tar.gz
     $ cd grafana-font-rpms.el7
     $ chmod u+x install_grafana_font_rpms.sh
     $ ./install_grafana_font_rpms.sh
  1. 参考部署任务即可。

测试集群

参考测试集群即可。

看完两件小事

如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:

  1. 关注我们的 GitHub 博客,让我们成为长期关系
  2. 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
  3. 关注公众号 「方志朋」,公众号后台回复「资源」 免费领取我精心整理的前端进阶资源教程

JS中文网是中国领先的新一代开发者社区和专业的技术媒体,一个帮助开发者成长的社区,目前已经覆盖和服务了超过 300 万开发者,你每天都可以在这里找到技术世界的头条内容。欢迎热爱技术的你一起加入交流与学习,JS中文网的使命是帮助开发者用代码改变世界

results matching ""

    No results matching ""