1.最近瀏覽到一個比較新的分佈式數據庫Tidb,開源看起來比較牛的樣子,一時手癢就動手試試部署node
2.參考官方 Ansible 離線方式部署 :https://pingcap.com/docs-cn/op-guide/offline-ansible-deployment/ python
3.環境:Win7+VirtualBox 虛擬機 ,網絡環境:Win7 能夠經過代理上網,6臺虛擬機統一採用 hostonly 方式,mysql
原本若是經過 能夠上網的linux 機器做爲下載機器和中控機器的話不須要這麼無法,但內網代理各類限制,一致沒搞通 linux 虛擬機上網linux
只能經過windows 下載須要的 gz 文件。git
4.先從虛擬機建立開始:github
新建虛擬機
sql
下一步下一步到選擇存儲虛擬磁盤的位置 能夠默認建立一個專用的存儲目錄 這裏存在 F:\ROSdocker
下 數據庫
選擇下載好的 CentOS7 ISO 文件 windows
安裝過程記得添加用戶 tidb 密碼 tidb 同時服用管理員權限
時區選擇:上海 這個在NTP 時間同步時會遇到
root root 密碼設置
新建tidb 用戶 密碼 tidb 靜待安裝完成
咱們用第一個 hostonly 網絡
修改網絡配置 固定第一臺中控機 IP地址爲 192.168.56.100
這個百度上有我就不在一步一步操做了
基本配置完成後測試下網絡是否能夠用 遠程工具遠程
下一步就是經過 virtualbox 的磁盤複製方式來複制虛擬機
點開
虛擬介質管理
選擇剛建立的虛擬機
複製 選擇存儲目錄 重命名便可 至少須要複製出5臺
相似如此
新建虛擬機
下一步下一步到選擇虛擬磁盤是選擇剛剛複製的vdi 文件
其餘虛擬機類同
進去每一個虛擬器設置爲不一樣的IP地址,並測試網絡是否互通
若是不通須要關閉防火牆
systemctl stop firewalld
CentOS 7 系統 Ansible 離線安裝方式:
下載 Ansible 離線安裝包 ,上傳至中控機。
參考官方文檔 下載 Ansible
http://download.pingcap.org/ansible-2.4-rpms.el7.tar.gz
經過FTP軟件 上傳 ansible 壓縮包
放在 rpm 這個文件夾下
參考官方文檔
# tar -xzvf ansible-2.4-rpms.el7.tar.gz # cd ansible-2.4-rpms.el7 # rpm -ivh PyYAML*rpm libyaml*rpm python-babel*rpm python-backports*rpm python-backports-ssl_match_hostname*rpm python-cffi*rpm python-enum34*rpm python-httplib2*rpm python-idna*rpm python-ipaddress*rpm python-jinja2*rpm python-markupsafe*rpm python-paramiko*rpm python-passlib*rpm python-ply*rpm python-pycparser*rpm python-setuptools*rpm python-six*rpm python2-cryptography*rpm python2-jmespath*rpm python2-pyasn1*rpm sshpass*rpm # rpm -ivh ansible-2.4.2.0-2.el7.noarch.rpm
解壓安裝
輸入命令提示版本信息
下載 tidb-ansible
git clone https://github.com/pingcap/tidb-ansible.git
官方說明
以上方法聯網下載,但咱們內網linux 由於代理沒法下載 因此須要手動下載文件
使用 VSCode 打開 下載的 tidb-ansible 解壓包
我一開始不知道有這個文件,是經過命令提示錯誤信息本身搜索在網上下載的,但由於最後一個 tiSpark 的 jar 包文件實在是沒搜到在哪下載,纔想到
到這個配置中搜索 tispark -*.jar 包,才找到這個文件的
我貼出來吧:
--- third_party_packages: - name: prometheus version: 2.0.0 url: "https://github.com/prometheus/prometheus/releases/download/v2.0.0/prometheus-2.0.0.linux-amd64.tar.gz" - name: alertmanager version: 0.9.1 url: "https://github.com/prometheus/alertmanager/releases/download/v0.9.1/alertmanager-0.9.1.linux-amd64.tar.gz" - name: node_exporter version: 0.15.2 url: "https://github.com/prometheus/node_exporter/releases/download/v0.15.2/node_exporter-0.15.2.linux-amd64.tar.gz" - name: blackbox_exporter version: 0.11.0 url: "https://github.com/prometheus/blackbox_exporter/releases/download/v0.11.0/blackbox_exporter-0.11.0.linux-amd64.tar.gz" - name: pushgateway version: 0.4.0 url: "https://github.com/prometheus/pushgateway/releases/download/v0.4.0/pushgateway-0.4.0.linux-amd64.tar.gz" - name: grafana version: 4.6.3 url: "https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.6.3.linux-x64.tar.gz" third_party_packages_under_gfw: - name: prometheus version: 2.0.0 url: "http://download.pingcap.org/prometheus-2.0.0.linux-amd64.tar.gz" - name: alertmanager version: 0.9.1 url: "http://download.pingcap.org/alertmanager-0.9.1.linux-amd64.tar.gz" - name: node_exporter version: 0.15.2 url: "http://download.pingcap.org/node_exporter-0.15.2.linux-amd64.tar.gz" - name: pushgateway version: 0.4.0 url: "http://download.pingcap.org/pushgateway-0.4.0.linux-amd64.tar.gz" - name: grafana version: 4.6.3 url: "http://download.pingcap.org/grafana-4.6.3.linux-x64.tar.gz" - name: blackbox_exporter version: 0.11.0 url: "https://download.pingcap.org/blackbox_exporter-0.11.0.linux-amd64.tar.gz" tispark_packages: - name: spark-2.1.1-bin-hadoop2.7.tgz version: 2.1.1 url: http://download.pingcap.org/spark-2.1.1-bin-hadoop2.7.tgz checksum: "sha256:372ac4f73221c07696793101007a4f19e31566d1f0d9bd0e5205b6fb5b45bfc2" - name: tispark-SNAPSHOT-jar-with-dependencies.jar url: http://download.pingcap.org/tispark-0.1.0-SNAPSHOT-jar-with-dependencies.jar - name: tispark-sample-data.tar.gz version: 0.1.0-beta url: http://download.pingcap.org/tispark-sample-data.tar.gz
全部的依賴項都在這個配置模板中了
咱們在 tidb-ansible 解壓文件夾下新建
將咱們下載的gz 包都放進去
新建資源文件夾:
這個下面只有一個文件夾
這些事其餘須要的文件加壓後 放在這個 文件夾下
剩下的就是配置 ini 文件了
個人配置是以下:
## TiDB Cluster Part
[tidb_servers]
192.168.56.101
[tikv_servers]
192.168.56.103
192.168.56.104
192.168.56.105
[pd_servers]
192.168.56.102
[spark_master]
[spark_slaves]
## Monitoring Part
# prometheus and pushgateway servers
[monitoring_servers]
192.168.56.100
[grafana_servers]
192.168.56.100
# node_exporter and blackbox_exporter servers
[monitored_servers]
192.168.56.101
192.168.56.102
192.168.56.103
192.168.56.104
192.168.56.105
192.168.56.100
## Binlog Part
[pump_servers:children]
tidb_servers
## Group variables
[pd_servers:vars]
# location_labels = ["zone","rack","host"]
## Global variables
[all:vars]
deploy_dir = /home/tidb/deploy
## Connection
# ssh via normal user
ansible_user = tidb
# ssh via root:
# ansible_user = root
ansible_become = true
ansible_become_user = tidb
cluster_name = test-cluster
tidb_version = v1.0.8
# 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 = False
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
# KV mode
deploy_without_tidb = False
其中
須要修改成 False ,這個折騰半天,由於鏈接不到外網的同步時間server 始終沒同步成功,但突然想起來應該不用這個也能夠的。
若是有條件的話儘可能仍是同步好。
hosts.ini 文件修改
[servers] 192.168.56.101 192.168.56.102 192.168.56.103 192.168.56.104 192.168.56.105 [all:vars] username = tidb ntp_server = 192.168.56.100
最後就是把整個文件夾上傳到 56.100 這臺中控機器
下一步經過 ansible 來安裝
中間省略了 ssh 免密登陸這個能夠參考官網說明
部署 TiDB 集羣軟件
ansible-playbook deploy.yml
啓動 TiDB 集羣
ansible-playbook start.yml
中間遇到phthon2 識別不了 屢次添加受權等方法都不行。
最後仍是修改了 start.yml 文件
原始的應該是這樣
修改後就能成功啓動了,OK
這個是監控的網頁
這個是mysql 客戶測試 注意須要你本機安裝mysql 客戶端
OK All Done.