TiDB Ansible 部署方案 (官方推荐至少部署 3 个 TiKV, 3 个 PD,2 个 TiDB)
https://github.com/pingcap/docs-cn/blob/master/op-guide/ansible-deployment.md
#使用 Ansible 方式部署时,TiKV 及 PD 节点数据目录所在磁盘请使用 SSD 磁盘,否则无法通过检测
#数据盘请使用 ext4 文件系统,挂载 ext4 文件系统时请添加 nodelalloc 挂载参数,可参考数据盘 ext4 文件系统挂载参数。
# vi /etc/fstab /dev/sdb1 /u01 ext4 defaults,nodelalloc,noatime 0 2
以上需要使用ssd,只是官方由于性能问题,推荐这么做,实际 1核2G内存,80G的机械硬盘,在初始化的时候会抛出警告性能,测试环境可以无视
#所有服务器关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
#所有服务器机器的时间、时区设置一致,开启 NTP 服务且在正常同步时间 (centos7.2以后自带chronyd时间同步服务需要停止)
systemctl disable chronyd
systemctl stop chronyd
yum install -y ntp
systemctl enable ntpd
#ntpdate pool.ntp.org
systemctl restart ntpd
ntpstat
#中控机器上安装 Ansible 并查看对应版本,确保是 Ansible 2.4 及以上版本
yum install -y epel-release ansible curl git
ansible --version
#在中控机器上 创建 tidb 用户
useradd -u 1200 tidb
#passwd tidb
su - tidb
ssh-keygen -t rsa
#中控机器上下载 TiDB-Ansible (生产环境请下载 GA 版本部署 TiDB)
cd /home/tidb
git clone -b release-1.0 https://github.com/pingcap/tidb-ansible.git
#配置tidb 用户可以免密码 sudo 到 root 用户,可参考如何配置 ssh 互信及 sudo 免密码
cd tidb-ansible
cat > hosts.ini << EOF
[servers]
192.168.121.206
192.168.121.207
192.168.121.208
192.168.121.216
192.168.121.217
192.168.121.218
192.168.121.226
192.168.121.227
192.168.121.228
[all:vars]
username = tidb
ntp_server = pool.ntp.org
EOF
#执行以下命令,按提示输入部署目标机器 root 密码
ansible-playbook -i hosts.ini create_users.yml -k
# 验证 ssh 互信及 sudo 免密码
#[tidb@localhost tidb-ansible]$ ssh 192.168.121.*
#[tidb@localhost ~]$ sudo su -
#[root@localhost tidb]#
#######################################################################分配机器资源,编辑 inventory.ini 文件
cat > inventory.ini << EOF
## TiDB Cluster Part
[pd_servers]
192.168.121.206
192.168.121.207
192.168.121.208
#自定义客户端连接端口
[tidb_servers]
192.168.121.216 tidb_port=5919
192.168.121.217 tidb_port=5919
192.168.121.218 tidb_port=5919
[tikv_servers]
192.168.121.226 labels="host=tikv1"
192.168.121.227 labels="host=tikv2"
192.168.121.228 labels="host=tikv3"
[spark_master]
[spark_slaves]
## Monitoring Part
# prometheus and pushgateway servers
[monitoring_servers]
192.168.121.216
[grafana_servers]
192.168.121.216
# node_exporter servers
[monitored_servers]
192.168.121.206
192.168.121.207
192.168.121.208
192.168.121.216
192.168.121.217
192.168.121.218
192.168.121.226
192.168.121.227
192.168.121.228
## Binlog Part
[pump_servers:children]
tidb_servers
## Group variables
[pd_servers:vars]
# location_labels = ["zone","rack","host"]
## Global variables
[all:vars]
deploy_dir = /u01/tidata
## Connection
# ssh via normal user
ansible_user = tidb
# ssh via root:
# ansible_user = root
# ansible_become = true
# ansible_become_user = tidb
cluster_name = tidb-cluster
tidb_version = v1.0.8
# 部署方式,默认为 binary [binary, docker]
deployment_method = binary
# 进程监管方式 [systemd, supervise]
process_supervision = systemd
# timezone of deployment region
timezone = Asia/Shanghai
set_timezone = True
enable_firewalld = False
# check NTP service
enable_ntpd = True
machine_benchmark = True
# 根据 IP 修改部署目标机器主机名
set_hostname = False
## binlog trigger
enable_binlog = False
# zookeeper address of kafka cluster, example:
# zookeeper_addrs = "192.168.0.11:2181,192.168.0.12:2181,192.168.0.13:2181"
zookeeper_addrs = ""
# KV mode
deploy_without_tidb = False
# TiDB 慢查询日志记录到单独文件({{ deploy_dir }}/log/tidb_slow_query.log),默认为 False,记录到 tidb 日志
# enable_slow_query_log
EOF
#######################################################################分配机器资源,编辑 inventory.ini 文件
#执行以下命令如果所有 server 返回 tidb 表示 ssh 互信配置成功。
ansible -i inventory.ini all -m shell -a 'whoami'
#执行以下命令如果所有 server 返回 root 表示 tidb 用户 sudo 免密码配置成功。
ansible -i inventory.ini all -m shell -a 'whoami' -b
#下载 TiDB binary
ansible-playbook local_prepare.yml
#初始化系统环境,修改内核参数
ansible-playbook bootstrap.yml
#部署 TiDB 集群软件
ansible-playbook deploy.yml
#启动 TiDB 集群
ansible-playbook start.yml
TIDB集群配置
最新推荐文章于 2024-06-12 11:50:05 发布