120.52.146.213 Control Machine 120.52.146.214 PD1_TiDB1 120.52.146.215 PD2_TiDB2 120.52.146.216 PD3 120.52.146.217 TiKV1 120.52.146.218 TiKV2 120.52.146.219 TiKV3
CentOS 7.3 (64 bit) or later with Python 2.7 installed
一、在控制節點上安裝依賴軟件html
# yum -y install epel-release git curl sshpass # yum -y install python-pip
二、建立 tidb 用戶node
# useradd tidb # passwd tidb
三、配置sudo權限python
# visudo tidb ALL=(ALL) NOPASSWD: ALL
四、切換用戶,生成SSH-KEYmysql
# su - tidb $ ssh-keygen -t rsa
五、下載 tidb ansible 項目代碼git
$ git clone -b v3.0.4 https://github.com/pingcap/tidb-ansible.git
六、安裝ansible和相關依賴github
$ cd /home/tidb/tidb-ansible $ sudo pip install -r requirements.txt $ ansible --version
七、配置SSH互信sql
$ cd /home/tidb/tidb-ansible $ vi hosts.ini [servers] 120.52.146.214 120.52.146.215 120.52.146.216 120.52.146.217 120.52.146.218 120.52.146.219 [all:vars] username = tidb ntp_server = pool.ntp.org $ ansible-playbook -i hosts.ini create_users.yml -u root -k
八、安裝NTPbootstrap
$ cd /home/tidb/tidb-ansible $ ansible-playbook -i hosts.ini deploy_ntp.yml -u tidb -b
九、掛載磁盤(這一步能夠在裝系統的時候就準備好)vim
# fdisk -l # parted -s -a optimal /dev/sdb mklabel gpt -- mkpart primary ext4 1 -1 # mkfs.ext4 /dev/sdb # lsblk -f # vim /etc/fstab UUID=c51eb23b-195c-4061-92a9-3fad812cc12f /data1 ext4 defaults,nodelalloc,noatime 0 0 # mkdir /data1 # mount -a # mount -t ext4 /dev/sdb on /data1 type ext4 (rw,noatime,nodelalloc,data=ordered)
十、根據集羣架構修改 inventory.ini架構
## TiDB Cluster Part [tidb_servers] 120.52.146.214 120.52.146.215 [tikv_servers] 120.52.146.217 120.52.146.218 120.52.146.219 [pd_servers] 120.52.146.214 120.52.146.215 120.52.146.216 [spark_master] [spark_slaves] [lightning_server] [importer_server] ## Monitoring Part # prometheus and pushgateway servers [monitoring_servers] 120.52.146.214 [grafana_servers] 120.52.146.214 # node_exporter and blackbox_exporter servers [monitored_servers] 120.52.146.214 120.52.146.215 120.52.146.216 120.52.146.217 120.52.146.218 120.52.146.219 [alertmanager_servers] 120.52.146.214
十一、下載部署包到本地
$ ansible-playbook local_prepare.yml
十二、初始化系統環境修改內核參數
$ ansible-playbook bootstrap.yml
1三、部署tidb集羣
$ ansible-playbook deploy.yml
1四、啓動集羣
$ ansible-playbook start.yml
1五、訪問集羣
$ mysql -uroot -h 120.52.146.214 -P 4000 Welcome to the MariaDB monitor. Commands end with ; or \g. Your MySQL connection id is 182 Server version: 5.7.25-TiDB-v3.0.4 MySQL Community Server (Apache License 2.0) Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MySQL [(none)]> show databases; +--------------------+ | Database | +--------------------+ | INFORMATION_SCHEMA | | PERFORMANCE_SCHEMA | | mysql | | test | +--------------------+ 4 rows in set (0.00 sec)
參考:
https://pingcap.com/docs/v3.0/how-to/deploy/orchestrated/ansible/
https://docs.ansible.com/ansible/latest/cli/ansible-playbook.html
https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/