av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

使用Ansible安裝部署TiDB

一、背景知識

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名注冊、雅安服務(wù)器托管、營銷軟件、網(wǎng)站建設(shè)、弋江網(wǎng)站維護、網(wǎng)站推廣。

TiDB 作為一個分布式數(shù)據(jù)庫,在多個節(jié)點分別配置安裝服務(wù)會相當繁瑣,為了簡化操作以及方便管理,使用自動化工具來批量部署成為了一個很好的選擇。

Ansible 是基于 Python 研發(fā)的自動化運維工具,糅合了眾多老牌運維工具的優(yōu)點實現(xiàn)了批量操作系統(tǒng)配置、批量程序的部署、批量運行命令等功能,而且使用簡單,僅需在管理工作站上安裝 Ansible 程序配置被管控主機的 IP 信息,被管控的主機無客戶端?;谝陨显?,我們選用自動化工具 Ansible 來批量的安裝配置以及部署 TiDB。

下面我們來介紹如何使用 Ansible 來部署 TiDB。

二、TiDB 安裝環(huán)境配置如下

操作系統(tǒng)使用 CentOS7.2 或者更高版本,文件系統(tǒng)使用 EXT4。

說明:低版本的操作系統(tǒng)(例如 CentOS6.6 )和 XFS 文件系統(tǒng)會有一些內(nèi)核 Bug,會影響性能,我們不推薦使用。

我們選擇使用 3 個 PD、2 個 TiDB、3 個 TiKV,這里簡單說一下為什么這樣部署。

  • 對于 PD 。PD 本身是一個分布式系統(tǒng),由多個節(jié)點構(gòu)成一個整體,并且同時有且只有一個主節(jié)點對外提供服務(wù)。各個節(jié)點之間通過選舉算法來確定主節(jié)點,選舉算法要求節(jié)點個數(shù)是奇數(shù)個 (2n+1) ,1 個節(jié)點的風(fēng)險比較高,所以我們選擇使用 3 個節(jié)點。
  • 對于 TiKV 。TiDB 底層使用分布式存儲,我們推薦使用奇數(shù) (2n+1) 個備份,掛掉 n 個備份之后數(shù)據(jù)仍然可用。使用 1 備份或者 2 備份的話,有一個節(jié)點掛掉就會造成一部分數(shù)據(jù)不可用,所以我們選擇使用 3 個節(jié)點、設(shè)置 3 個備份 (默認值)。
  • 對于TiDB 。我們的 TiDB 是無狀態(tài)的,現(xiàn)有集群的 TiDB 服務(wù)壓力大的話,可以在其他節(jié)點直接增加 TiDB 服務(wù),無需多余的配置。我們選擇使用兩個 TiDB,可以做 HA 和負載均衡。
  • 當然如果只是測試集群的話,完全可以使用一個 PD 、一個 TiDB 、三個 TiKV (少于三個的話需要修改備份數(shù)量)

三、下載 TiDB 安裝包并解壓

創(chuàng)建目錄用來存放 ansible 安裝包

 
 
 
 
  1. mkdir /root/workspace   

切換目錄

 
 
 
 
  1. cd /root/workspace    

下載安裝包

 
 
 
 
  1. wget https://github.com/pingcap/tidb-ansible/archive/master.zip     

解壓壓縮包到當前目錄下

 
 
 
 
  1. unzip master.zip    

查看安裝包結(jié)構(gòu),主要內(nèi)容說明如下

 
 
 
 
  1. cd tidb-ansible-master && ls    

四、部分內(nèi)容含義

  • ansible.cfg: ansible 配置文件
  • inventoty.ini: 組和主機的相關(guān)配置
  • conf: TiDB 相關(guān)配置模版
  • group_vars: 相關(guān)變量配置
  • scripts: grafana 監(jiān)控 json 模版
  • local_prepare.yml: 用來下載相關(guān)安裝包
  • bootstrap.yml: 初始化集群各個節(jié)點
  • deploy.yml: 在各個節(jié)點安裝 TiDB 相應(yīng)服務(wù)
  • roles: ansible tasks 的集合
  • start.yml: 啟動所有服務(wù)
  • stop.yml: 停止所有服務(wù)
  • unsafe_cleanup_data.yml: 清除數(shù)據(jù)
  • unsafe_cleanup.yml: 銷毀集群

五、修改配置文件

主要配置集群節(jié)點的分布情況,以及安裝路徑。

會在 tidb_servers 組中的機器上安裝 TiDB 服務(wù)(其他類似),默認會將所有服務(wù)安裝到變量 deploy_dir 路徑下。

 
 
 
 
  1. #將要安裝 TiDB 服務(wù)的節(jié)點
  2. [tidb_servers]
  3. 192.168.1.102
  4. 192.168.1.103
  5. #將要安裝 TiKV 服務(wù)的節(jié)點
  6. [tikv_servers]
  7. 192.168.1.104
  8. 192.168.1.105
  9. 192.168.1.106
  10. #將要安裝 PD 服務(wù)的節(jié)點
  11. [pd_servers]
  12. 192.168.1.101
  13. 192.168.1.102
  14. 192.168.1.103
  15. #將要安裝 Promethues 服務(wù)的節(jié)點
  16. # Monitoring Part
  17. [monitoring_servers]
  18. 192.168.1.101
  19. #將要安裝 Grafana 服務(wù)的節(jié)點
  20. [grafana_servers]
  21. 192.168.1.101
  22. #將要安裝 Node_exporter 服務(wù)的節(jié)點
  23. [monitored_servers:children]
  24. tidb_servers
  25. tikv_servers
  26. pd_servers
  27. [all:vars]
  28. #服務(wù)安裝路徑,每個節(jié)點均相同,根據(jù)實際情況配置
  29. deploy_dir = /home/tidb/deploy
  30. ## Connection
  31. #方式一:使用 root 用戶安裝
  32. # ssh via root:
  33. # ansible_user = root
  34. # ansible_become = true
  35. # ansible_become_user = tidb
  36. #方式二:使用普通用戶安裝(需要有 sudo 權(quán)限)
  37. # ssh via normal user
  38. ansible_user = tidb
  39. #集群的名稱,自定義即可
  40. cluster_name = test-cluster
  41. # misc
  42. enable_elk = False
  43. enable_firewalld = False
  44. enable_ntpd = False
  45. # binlog trigger
  46. #是否開啟 pump,pump 生成 TiDB 的 binlog 
  47. #如果有從此 TiDB 集群同步數(shù)據(jù)的需求,可以改為 True 開啟
  48. enable_binlog = False

安裝過程可以分為 root 用戶安裝和普通用戶安裝兩種方式。有 root 用戶當然是***的,修改系統(tǒng)參數(shù)、創(chuàng)建目錄等不會涉及到權(quán)限不夠的問題,能夠直接安裝完成。 但是有些環(huán)境不會直接給 root 權(quán)限,這種場景就需要通過普通用戶來安裝。為了配置簡便,我們建議所有節(jié)點都使用相同的普通用戶;為了滿足權(quán)限要求,我們還需要給這個普通用戶 sudo 權(quán)限。 下面介紹兩種安裝方式的詳細過程,安裝完成之后需要手動啟動服務(wù)。

1. 使用 root 用戶安裝

(1) 下載 Binary 包到 downloads 目錄下,并解壓拷貝到 resources/bin 下,之后的安裝過程就是使用的 resources/bin 下的二進制程序

 
 
 
 
  1. ansible-playbook -i inventory.ini local_prepare.yml

(2) 初始化集群各個節(jié)點。會檢查 inventory.ini 配置文件、Python 版本、網(wǎng)絡(luò)狀態(tài)、操作系統(tǒng)版本等,并修改一些內(nèi)核參數(shù),創(chuàng)建相應(yīng)的目錄。

修改配置文件如下

 
 
 
 
  1. ## Connection
  2. # ssh via root:
  3. ansible_user = root
  4. # ansible_become = true
  5. ansible_become_user = tidb
  6. # ssh via normal user
  7. # ansible_user = tidb

執(zhí)行初始化命令

 
 
 
 
  1. ansible-playbook -i inventory.ini bootstrap.yml -k   #ansible-playboo命令說明請見附錄

(3) 安裝服務(wù)。該步驟會在服務(wù)器上安裝相應(yīng)的服務(wù),并自動設(shè)置好配置文件和所需腳本。

修改配置文件如下

 
 
 
 
  1. ## Connection
  2. # ssh via root:
  3.   ansible_user = root
  4.   ansible_become = true
  5.   ansible_become_user = tidb
  6. # ssh via normal user
  7. # ansible_user = tidb

執(zhí)行安裝命令

 
 
 
 
  1. ansible-playbook -i inventory.ini deploy.yml -k

2. 使用普通用戶安裝

(1) 下載 Binary 包到中控機

 
 
 
 
  1. ansible-playbook -i inventory.ini local_prepare.yml

(2) 初始化集群各個節(jié)點。

修改配置文件如下

 
 
 
 
  1. ## Connection
  2. # ssh via root:
  3. # ansible_user = root
  4. # ansible_become = true
  5. # ansible_become_user = tidb
  6. # ssh via normal user
  7. ansible_user = tidb

執(zhí)行初始化命令

 
 
 
 
  1. ansible-playbook -i inventory.ini bootstrap.yml -k -K

(3) 安裝服務(wù)

 
 
 
 
  1. ansible-playbook -i inventory.ini deploy.yml -k -K

六、啟停服務(wù)

(1) 啟動所有服務(wù)

 
 
 
 
  1. ansible-playbook -i inventory.ini start.yml -k

(2) 停止所有服務(wù)

 
 
 
 
  1. ansible-playbook -i inventory.ini stop.yml

(3) 附錄

 
 
 
 
  1. ansible-playbook -i inventory.ini xxx.yml -k -K
  • -k 執(zhí)行之后需要輸入 ssh 連接用戶的密碼,如果做了中控機到所有節(jié)點的互信,則不需要此參數(shù)
  • -K 執(zhí)行之后需要輸入 sudo 所需的密碼,如果使用 root 用戶或者 sudo 無需密碼,則不需要此參數(shù)

【本文是專欄作者“PingCAP”的原創(chuàng)文章,轉(zhuǎn)載請聯(lián)系作者本人獲取授權(quán)】


文章標題:使用Ansible安裝部署TiDB
本文路徑:http://uogjgqi.cn/article/dpeejoe.html
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流