centos 7 安裝配置TIDB集群

2021-08-14 14:07:49 字數 4147 閱讀 7957

安裝參考文件 

如何檢測-ntp-服務是否正常

相關準備工作

systemctl stop firewalld.service 

systemctl disable firewalld.service

[root@tidb1 tidb-ansible]# cat /etc/hosts 

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.137.161tidb1

192.168.137.162tidb2

192.168.137.163tidb3

192.168.137.164tidb4

192.168.137.165tidb5

192.168.137.166tidb6

配置 ssh  

ssh-keygen  -t rsa 

ssh-copy-id -i [email protected]

ssh-copy-id -i [email protected]

ssh-copy-id -i [email protected]

ssh-copy-id -i [email protected]

ssh-copy-id -i [email protected]

ssh-copy-id -i [email protected]

ssh localhost 

ssh tidb1

ssh tidb2

ssh tidb3

ssh tidb4

ssh tidb5

ssh tidb6

scp -rp /etc/hosts tidb2:/etc/

scp -rp /etc/hosts tidb3:/etc/

scp -rp /etc/hosts tidb4:/etc/

scp -rp /etc/hosts tidb5:/etc/

scp -rp /etc/hosts tidb6:/etc/

[root@tidb1 ~]# yum install -y ansible 

***************====  下面 進入真正的 實施部署階段了=== 

tidb ansible 部署方案

概述ansible 是一款自動化運維工具,tidb-ansible 是 pingcap 基於 ansible playbook 功能編寫的集群部署工具。使用 tidb-ansible 可以快速部署乙個完整的 tidb 集群(包括 pd、tidb、tikv 和集群監控模組)。

本部署工具可以通過配置檔案設定集群拓撲,一鍵完成以下各項運維工作:

初始化作業系統,包括建立部署使用者、設定 hostname 等

部署元件

滾動公升級,滾動公升級時支援模組存活檢測

資料清理

環境清理

配置監控模組

準備機器

部署中控機一台:

python 2.6 或 python 2.7,安裝有 ansible 2.3 版本或以上版本。

依賴 python jinja2 及 markupsafe 指定版本模組: pip install jinja2==2.7.2 markupsafe==0.11

可通過 ssh 登入目標機器,支援密碼登入或 ssh authorized_key 登入。

如使用 docker 方式部署,依賴詳見如何使用 docker 方式部署 tidb,預設為 binary 部署方式。

部署目標機器若干

建議4台及以上,tikv 至少3例項,且與 tidb、pd 模組不位於同一主機,詳見部署建議。

linux 作業系統,x86_64 架構(amd64),核心版本建議 3.10 以上,推薦 centos 7.3 及以上版本, 檔案系統推薦 ext4(部分核心版本 xfs 檔案系統有 bug, 本工具檢查到 xfs 檔案系統有 bug 會退出)。

機器之間網路互通,防火牆、iptables 等可以在部署驗證時關閉,後期開啟。

機器的時間、時區設定正確(要求機器時間同步),有 ntp 服務可以同步正確時間, ubuntu 系統需單獨安裝 ntpstat 軟體包,詳見如何檢測 ntp 服務是否正常。

若使用普通使用者作為 ansible ssh 遠端連線使用者,該使用者需要有 sudo 到 root 許可權,或直接使用 root 使用者遠端連線。

python 2.6 或 python 2.7。

如使用 docker 方式部署,依賴詳見如何使用 docker 方式部署 tidb,預設為 binary 部署方式。

在中控機器上安裝配置 ansible

按照 官方手冊 安裝 ansible,推薦使用 ansible 2.3 及以上版本。 安裝完成後,可通過 ansible --version 檢視版本。

git clone -b release-1.0

git clone -b release-2.0  -- 最新版本

git clone

ansible-playbook bootstrap.yml 

如果ansible 使用root使用者遠端連線需要密碼,使用 -k 引數 ,執行playbook ,同理: 

ansible-playbook bootstrap.yml -k 

ansible-playbook bootstrap.yml 

如果是非ssd 測試的話 ,最好將如下的內容注釋掉 

# name: machine benchmark

#  hosts: tikv_servers

#  gather_facts: false

#  roles:

#    -

部署 tidb 集群軟體

ansible-playbook deploy.yml -k

啟動tidb 集群 

ansible-playbook start.yml -k

測試集群

測試連線 tidb 集群,推薦在 tidb 前配置負載均衡來對外統一提供 sql 介面。

使用 mysql 客戶端連線測試,tcp 4000 埠是 tidb 服務預設埠。

[root@tidb1 ~]# netstat -anp | grep 4000 

tcp6       0      0 :::4000                 :::*                    listen      39591/bin/tidb-serv 

tcp6       0      0 192.168.137.161:4000    192.168.137.1:14022     established 39591/bin/tidb-serv 

tcp6       0      0 192.168.137.161:4000    192.168.137.1:14018     established 39591/bin/tidb-serv 

msql -u root -h 192.168.137.161 -p 4000

[root@tidb1 ~]# mysql -h 127.0.0.1 -uroot -p 4000 -d mysql

bash: mysql: command not found.

rpm -ivh mysql57-community-release-el7-11.noarch.rpm 

yum install -y mysql-community-client.x86_64 

測試 [root@tidb1 ~]# mysql -h 127.0.0.1 -uroot -p 4000 

mysql -h 192.168.137.161 -uroot -p 4000 

mysql -h 192.168.137.161 -uroot -p 4000 -d mysql 

=== 監控 == 

密碼:admin/admn

==== 運維

ansible-playbook stop.yml  關閉資料庫 

=== 銷毀集群 

ansible-playbook stop.yml  停用集群

ansible-playbook unsafe_cleanup.yml  銷毀集群 

CentOS 7 安裝 配置

本例為 minimal iso 版本 centos 與 rhel 是同源,所以,在 centos 文件不足時,可以參考 rhel 的文件。本例子環境為 windows 可以使用 fedora liveusb creator 或者 ultraiso 等工具來把系統寫入 u盤,而後通過u盤啟動來安裝系統...

CentOS7 安裝配置 vsftpd

yum install y vsftpdvi etc vsftpd vsftpd.confanonymous enable no anonymous enable yes chroot local user yes 去掉前面的注釋 chroot list enable yes chroot list...

CentOS 7 安裝配置FTP

安裝vsftpd yum install y vsftpd編輯ftp配置檔案 vi etc vsftpd vsftpd.conf anonymous enable no anonymous enable yes chroot local user yes 去掉前面的注釋 chroot list en...