10.6.11.174
10.6.11.246
10.6.11.247
官方文档提示建议使用7.3以上系统
https://www.pingcap.com/docs-cn/op-guide/ansible-deployment/
自己亲自尝试了使用centos6.10安装,提示报错。的确不支持centos6.10,附上centos6.10的图。
#选择10.6.11.174作为主控节点
#登录10.6.11.174
#执行
yum -y install epel-release git curl sshpass
yum -y install python-pip
#创建 tidb 用户 并修改tidb的密码
#主控机子
useradd -m -d /home/tidb tidb
echo "1233456" | passwd --stdin tidb
#node机子
useradd tidb
echo "1233456" | passwd --stdin tidb
#配置 tidb 用户 sudo 免密码,
将 tidb ALL=(ALL) NOPASSWD: ALL 添加到文件末尾即可。
#生成 ssh key: 执行 su 命令从 root 用户切换到 tidb 用户下。
#创建 tidb 用户 ssh key, 提示 Enter passphrase 时直接回车即可。执行成功后,ssh 私钥文件为 /home/tidb/.ssh/id_rsa , ssh 公钥文件为 /home/tidb/.ssh/id_rsa.pub 。
su -tidb
ssh-keygen -t rsa
#查看安装的ansible版本
yum –y install ansible
ansible --version
sudo yum –y install git
cd /home/tidb
git clone -b release-2.0 https://github.com/pingcap/tidb-ansible.git
#在中控机上配置部署机器 ssh 互信及 sudo 规则
cat >/home/tidb/tidb-ansible/hosts.ini< [servers] 10.6.11.174 10.6.11.246 10.6.11.247 [all:vars] username = tidb ntp_server = pool.ntp.org EOF |
#执行以下命令,按提示输入部署目标机器 root 用户密码。该步骤将在部署目标机器上创建 tidb 用户,并配置 sudo 规则,配置中控机与部署目标机器之间的 ssh 互信。
ansible-playbook -i hosts.ini create_users.yml -u root -k
#执行下面命令
su tidb
cd /home/tidb/tidb-ansible/
ansible-playbook -i hosts.ini create_users.yml -u root -k
#安装ntp 跳过会报错
cd /home/tidb/tidb-ansible
ansible-playbook -i hosts.ini deploy_ntp.yml -u tidb -b
#CPUfreq 调节器模式 跳过
#在部署目标机器上添加数据盘 ext4 文件系统挂载参数 跳过
#分配机器资源,编辑 inventory.ini 文件
cat >/home/tidb/tidb-ansible/inventory.ini < ## TiDB Cluster Part [tidb_servers] 10.6.11.248
[tikv_servers] 10.6.11.249 10.6.11.252
[pd_servers] 10.6.11.248 10.6.11.249
[spark_master] 10.6.11.248
[spark_slaves] 10.6.11.249 10.6.11.252
## Monitoring Part # prometheus and pushgateway servers [monitoring_servers] 10.6.11.248
[grafana_servers] 10.6.11.248
# node_exporter and blackbox_exporter servers [monitored_servers] 10.6.11.248 10.6.11.249 10.6.11.252
[alertmanager_servers] 10.6.11.248 ## Binlog Part [pump_servers:children] tidb_servers
## Group variables [pd_servers:vars] # location_labels = ["zone","rack","host"]
## Global variables [all:vars] deploy_dir = /opt/deploy
## Connection # ssh via normal user ansible_user = tidb
# ssh via root: # ansible_user = tidb # ansible_become = true # ansible_become_user = root
cluster_name = test-cluster tidb_version = v2.0.0-rc.3
# deployment methods, [binary, docker] deployment_method = binary
# process supervision, [systemd, supervise] process_supervision = systemd
# timezone of deployment region timezone = Asia/Shanghai set_timezone = True
enable_firewalld = False # check NTP service enable_ntpd = True 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 = ""
# store slow query log into seperate file enable_slow_query_log = False
# enable TLS authentication in the TiDB cluster enable_tls = False
# KV mode deploy_without_tidb = False
# Optional. Set if you already have a alertmanager server. # Format: alertmanager_host:alertmanager_port alertmanager_target = "" EOF |
sudo whoami 返回root
#执行以下命令如果所有 server 返回 root 表示 tidb 用户 sudo 免密码配置成功。
ansible -i inventory.ini all -m shell -a 'whoami' -b
#执行 local_prepare.yml playbook,联网下载 TiDB binary 到中控机
ansible-playbook local_prepare.yml
#初始化系统环境,修改内核参数
cat >/etc/sysctl.conf< net.core.somaxconn = 32768 vm.swappiness = 0 net.ipv4.tcp_syncookies = 0 fs.file-max = 1000000 vm.overcommit_memory = 0 EOF
sysctl -p |
#3台机子都要执行
swapoff -a
chown -R tidb:root /etc/security/
chown -R tidb:root /etc/sysconfig/
#因为不是ssh硬盘达不到要求 所以这个配置需要修改 否则通不过检测
#执行
ansible-playbook bootstrap.yml
#设置ntpd 开机启动3台机子都需要执行
systemctl start ntpd
systemctl enable ntpd
#部署
ansible-playbook deploy.yml
#启动集群
ansible-playbook start.yml
#测试
yum -y install mysql
mysql -u root -h 172.16.10.1 -P 4000
#连接成功
升级更新
提一个升级的时候遇到的问题
升级tikv的时候 tikv机子上配置文件更新了 但是配置有问题了。新版本不支持旧版本的时间格式。
之前2.0.0-r3是1d 但是升级到2.1.0-r3 之后不支持1d ,错误日志会输出在tikv_stderr.log中。需要把main.yml中的1d替换成24h