ansible安装部署TiDB集群
TiDB 是 PingCAP 公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP)的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生的分布式数据库、兼容 MySQL 5.7 协议和 MySQL 生态等重要特性。
一、准备工作
1. 四台服务器(开通外网)
117.50.96.236centos 7.3 64位
117.50.96.235centos 7.3 64位
117.50.96.234centos 7.3 64位
117.50.96.233centos 7.3 64位
2、修改个机器主机名(永久修改)
hostnamectl set-hostname centos701
3. 选取主控机, 并做些简单的配置
我选了 117.50.96.236 作为主控机器
ssh 到主控机
ssh root@117.50.96.236
添加用户
useradd -m -d /home/tidb tidb
赋予权限,并免密
visudo
// 在文件尾部添加如下一行
tidb all=(all) nopasswd: all
切换到 tidb 用户
su - tidb
创建 ssh 密钥
ssh-keygen -t rsa
安装 tidb 依赖工具
安装 git
sudo yum install git -y
安装 ansible
sudo yum install ansible -y
克隆 tidb-ansible
git clone -b v3.0.0 https://github.com/pingcap/tidb-ansible.git tidb-ansible-v3.0.0
进入克隆后的文件夹中
cd tidb-ansible-v3.0.0/
二、通过 tidb-ansible 为所有服务器添加用户和密钥
编辑 hosts.ini 文件
vim hosts.ini
[server] #下放所有服务器的内网 ip
117.50.96.236
117.50.96.235
117.50.96.234
117.50.96.233
[all:vars] #下放你希望为 tidb 服务创建的用户名(这个用户等下会在所有机器中被创建)
username = tidb
ntp_server = pool.ntp.org
使用 tidb-ansible 在刚才配的所有机器中创建用户
ansible-playbook -i hosts.ini create_users.yml -u root -k
注意:交互部分输入 root 密码
配置 tidb 拓扑结构(分配服务器资源)
编辑 inventory.ini 文件
vim inventory.ini
配置拓扑结构为:1个 tidb,3个 pd,3个tikv,1个 主控机
[tidb_servers] 放一个 ip,声明这个服务器是 tidb 工人
[tikv_servers] 放三个 ip,声明这个三个服务器是 tikv 工人
[pd_servers] 放三个 ip,声明这三个服务器是 pd 工人
[monitoring_servers] 放一个 ip,声明这个服务器是监控(jiangong)
[grafana_servers] 同上
[monitored_servers] 放所有 ip,声明这些服务器需要被监控
[alertmanager_servers] 和监控机保持一致
[all:vars] 这个要放各个服务器挂载的磁盘路径
其他配置可以先不动,也可以根据自己需求来。
三、启动 tidb 集群
预处理配置信息(按照拓扑结构分配资源)
ansible -i inventory.ini all -m shell -a "whoami"
ansible -i inventory.ini all -m shell -a "whoami" -b
ansible-playbook local_prepare.yml
此步骤如果出现 Ansible run Faild,ansible version is too low等等错误,可能是由于没有安装pip,安装命令如下:
1、没有python-pip包就执行命令
yum -y install epel-release
2、执行成功之后,再次执行
yum install python-pip
3、对安装好的pip进行升级
pip install --upgrade pip
4、安装requirements.txt依赖(需要再tidb目录下执行此命令)
pip install -r requirements.txt
接下来就要启动 tidb 集群了,如果服务器的配置达不到 tidb 要求,集群是无法启动的。不过,我们可以取消 tidb 的强制验证策略(仅限测试,生产环境请不要这样做)
修改 vim bootstrap.yml 取消系统检查
vim bootstrap.yml
注释以下内容
#- name: check system# hosts: all
# any_errors_fatal: true
# roles:
#- check_system_static
#- { role: check_system_optional, when: not dev_mode|default(false) }
#- name: tikv_servers machine benchmark
# hosts: tikv_servers
# gather_facts: false
# roles:
#- { role: machine_benchmark, when: not dev_mode|default(false) }
// 想要深入看下具体的系统要求和性能要求可以查看这两个文件
// roles/check_system_optional/defaults/main.yml
// roles/machine_benchmark/defaults/main.yml
###运行以下命令取消检测
ansible-playbook bootstrap.yml --extra-vars "dev_mode=True"
启动 tidb 集群
ansible-playbook bootstrap.yml
ansible-playbook deploy.yml
ansible-playbook start.yml
测试
查看主控机的端口状态(如果有如下这些端口,且上述步骤没有红色报错,说明启动成功了) netstat -tnpl
在浏览器中访问 117.50.96.236:3000(主控机 ip【[grafana_servers]下得IP】加3000端口), 可以看到监控界面(初始用户和密码:admin/admin)
启动集群
此操作会按顺序启动整个TiDB集群所有组件 (包括PD、TiDB、TiKV等组件可监控组件)。
ansible-playbook start.yml
关闭集群
此操作会按顺序关闭整个TiDB集群所有组件 (包括PD、TiDB、TiKV等组件可监控组件)。
ansible-playbook stop.yml
清除集群数据
此操作会关闭TiDB、Pump、TiKV、PD服务,并清空Pump、TiKV、PD数据目录。
ansible-playbook unsafe_cleanup_data.yml
销毁集群
此操作会关闭集群,并清空部署目录,若部署目录为挂载点,会报错,可忽略。
ansible-playbook unsafe_cleanup.yml
本文转载自:http://www.toyou.plus/web/wzjs/54.html,更多信息请访问此网站查看
原文链接:https://www.cnblogs.com/lengmao/archive/2020/07/17/13331421.html
以上是 ansible安装部署TiDB集群 的全部内容, 来源链接: utcz.com/z/518425.html