Tidb 離線Ansible方式部署實踐

  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 文件了

參考官網 地址:https://pingcap.com/docs-cn/op-guide/ansible-deployment/#%E5%88%86%E9%85%8D%E6%9C%BA%E5%99%A8%E8%B5%84%E6%BA%90%E7%BC%96%E8%BE%91-inventoryini-%E6%96%87%E4%BB%B6

 個人配置是以下:

## 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. 

相關文章
相關標籤/搜索