13518219792

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

使用Ansible安装部署TiDB

一、背景知识

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册雅安服务器托管、营销软件、网站建设、弋江网站维护、网站推广。

TiDB 作为一个分布式数据库,在多个节点分别配置安装服务会相当繁琐,为了简化操作以及方便管理,使用自动化工具来批量部署成为了一个很好的选择。

Ansible 是基于 Python 研发的自动化运维工具,糅合了众多老牌运维工具的优点实现了批量操作系统配置、批量程序的部署、批量运行命令等功能,而且使用简单,仅需在管理工作站上安装 Ansible 程序配置被管控主机的 IP 信息,被管控的主机无客户端。基于以上原因,我们选用自动化工具 Ansible 来批量的安装配置以及部署 TiDB。

下面我们来介绍如何使用 Ansible 来部署 TiDB。

二、TiDB 安装环境配置如下

操作系统使用 CentOS7.2 或者更高版本,文件系统使用 EXT4。

说明:低版本的操作系统(例如 CentOS6.6 )和 XFS 文件系统会有一些内核 Bug,会影响性能,我们不推荐使用。

我们选择使用 3 个 PD、2 个 TiDB、3 个 TiKV,这里简单说一下为什么这样部署。

三、下载 TiDB 安装包并解压

创建目录用来存放 ansible 安装包

 
 
 
 
  1. mkdir /root/workspace   

切换目录

 
 
 
 
  1. cd /root/workspace    

下载安装包

 
 
 
 
  1. wget https://github.com/pingcap/tidb-ansible/archive/master.zip     

解压压缩包到当前目录下

 
 
 
 
  1. unzip master.zip    

查看安装包结构,主要内容说明如下

 
 
 
 
  1. cd tidb-ansible-master && ls    

四、部分内容含义

五、修改配置文件

主要配置集群节点的分布情况,以及安装路径。

会在 tidb_servers 组中的机器上安装 TiDB 服务(其他类似),默认会将所有服务安装到变量 deploy_dir 路径下。

 
 
 
 
  1. #将要安装 TiDB 服务的节点
  2. [tidb_servers]
  3. 192.168.1.102
  4. 192.168.1.103
  5. #将要安装 TiKV 服务的节点
  6. [tikv_servers]
  7. 192.168.1.104
  8. 192.168.1.105
  9. 192.168.1.106
  10. #将要安装 PD 服务的节点
  11. [pd_servers]
  12. 192.168.1.101
  13. 192.168.1.102
  14. 192.168.1.103
  15. #将要安装 Promethues 服务的节点
  16. # Monitoring Part
  17. [monitoring_servers]
  18. 192.168.1.101
  19. #将要安装 Grafana 服务的节点
  20. [grafana_servers]
  21. 192.168.1.101
  22. #将要安装 Node_exporter 服务的节点
  23. [monitored_servers:children]
  24. tidb_servers
  25. tikv_servers
  26. pd_servers
  27. [all:vars]
  28. #服务安装路径,每个节点均相同,根据实际情况配置
  29. deploy_dir = /home/tidb/deploy
  30. ## Connection
  31. #方式一:使用 root 用户安装
  32. # ssh via root:
  33. # ansible_user = root
  34. # ansible_become = true
  35. # ansible_become_user = tidb
  36. #方式二:使用普通用户安装(需要有 sudo 权限)
  37. # ssh via normal user
  38. ansible_user = tidb
  39. #集群的名称,自定义即可
  40. cluster_name = test-cluster
  41. # misc
  42. enable_elk = False
  43. enable_firewalld = False
  44. enable_ntpd = False
  45. # binlog trigger
  46. #是否开启 pump,pump 生成 TiDB 的 binlog 
  47. #如果有从此 TiDB 集群同步数据的需求,可以改为 True 开启
  48. enable_binlog = False

安装过程可以分为 root 用户安装和普通用户安装两种方式。有 root 用户当然是***的,修改系统参数、创建目录等不会涉及到权限不够的问题,能够直接安装完成。 但是有些环境不会直接给 root 权限,这种场景就需要通过普通用户来安装。为了配置简便,我们建议所有节点都使用相同的普通用户;为了满足权限要求,我们还需要给这个普通用户 sudo 权限。 下面介绍两种安装方式的详细过程,安装完成之后需要手动启动服务。

1. 使用 root 用户安装

(1) 下载 Binary 包到 downloads 目录下,并解压拷贝到 resources/bin 下,之后的安装过程就是使用的 resources/bin 下的二进制程序

 
 
 
 
  1. ansible-playbook -i inventory.ini local_prepare.yml

(2) 初始化集群各个节点。会检查 inventory.ini 配置文件、Python 版本、网络状态、操作系统版本等,并修改一些内核参数,创建相应的目录。

修改配置文件如下

 
 
 
 
  1. ## Connection
  2. # ssh via root:
  3. ansible_user = root
  4. # ansible_become = true
  5. ansible_become_user = tidb
  6. # ssh via normal user
  7. # ansible_user = tidb

执行初始化命令

 
 
 
 
  1. ansible-playbook -i inventory.ini bootstrap.yml -k   #ansible-playboo命令说明请见附录

(3) 安装服务。该步骤会在服务器上安装相应的服务,并自动设置好配置文件和所需脚本。

修改配置文件如下

 
 
 
 
  1. ## Connection
  2. # ssh via root:
  3.   ansible_user = root
  4.   ansible_become = true
  5.   ansible_become_user = tidb
  6. # ssh via normal user
  7. # ansible_user = tidb

执行安装命令

 
 
 
 
  1. ansible-playbook -i inventory.ini deploy.yml -k

2. 使用普通用户安装

(1) 下载 Binary 包到中控机

 
 
 
 
  1. ansible-playbook -i inventory.ini local_prepare.yml

(2) 初始化集群各个节点。

修改配置文件如下

 
 
 
 
  1. ## Connection
  2. # ssh via root:
  3. # ansible_user = root
  4. # ansible_become = true
  5. # ansible_become_user = tidb
  6. # ssh via normal user
  7. ansible_user = tidb

执行初始化命令

 
 
 
 
  1. ansible-playbook -i inventory.ini bootstrap.yml -k -K

(3) 安装服务

 
 
 
 
  1. ansible-playbook -i inventory.ini deploy.yml -k -K

六、启停服务

(1) 启动所有服务

 
 
 
 
  1. ansible-playbook -i inventory.ini start.yml -k

(2) 停止所有服务

 
 
 
 
  1. ansible-playbook -i inventory.ini stop.yml

(3) 附录

 
 
 
 
  1. ansible-playbook -i inventory.ini xxx.yml -k -K

【本文是专栏作者“PingCAP”的原创文章,转载请联系作者本人获取授权】


分享名称:使用Ansible安装部署TiDB
文章URL:http://cdbrznjsb.com/article/dpeejoe.html

其他资讯

让你的专属顾问为你服务