成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用 Ansible 安裝部署 TiDB

開(kāi)發(fā) 開(kāi)發(fā)工具
TiDB 作為一個(gè)分布式數(shù)據(jù)庫(kù),在多個(gè)節(jié)點(diǎn)分別配置安裝服務(wù)會(huì)相當(dāng)繁瑣,為了簡(jiǎn)化操作以及方便管理,我們選用自動(dòng)化工具 Ansible 來(lái)批量的安裝配置以及部署 TiDB。下面我們來(lái)介紹如何使用 Ansible 來(lái)部署 TiDB。

一、背景知識(shí)

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

Ansible 是基于 Python 研發(fā)的自動(dòng)化運(yùn)維工具,糅合了眾多老牌運(yùn)維工具的優(yōu)點(diǎn)實(shí)現(xiàn)了批量操作系統(tǒng)配置、批量程序的部署、批量運(yùn)行命令等功能,而且使用簡(jiǎn)單,僅需在管理工作站上安裝 Ansible 程序配置被管控主機(jī)的 IP 信息,被管控的主機(jī)無(wú)客戶端。基于以上原因,我們選用自動(dòng)化工具 Ansible 來(lái)批量的安裝配置以及部署 TiDB。

下面我們來(lái)介紹如何使用 Ansible 來(lái)部署 TiDB。

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

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

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

iDB 安裝環(huán)境配置

我們選擇使用 3 個(gè) PD、2 個(gè) TiDB、3 個(gè) TiKV,這里簡(jiǎn)單說(shuō)一下為什么這樣部署。

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

三、下載 TiDB 安裝包并解壓

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

  1. mkdir /root/workspace    

切換目錄

  1. cd /root/workspace     

下載安裝包

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

解壓壓縮包到當(dāng)前目錄下

  1. unzip master.zip     

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

  1. cd tidb-ansible-master && ls     

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

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

五、修改配置文件

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

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

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

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

1. 使用 root 用戶安裝

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

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

(2) 初始化集群各個(gè)節(jié)點(diǎn)。會(huì)檢查 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.  
  7. # ssh via normal user 
  8. ansible_user = tidb 

執(zhí)行初始化命令

  1. ansible-playbook -i inventory.ini bootstrap.yml -k   #ansible-playboo命令說(shuō)明請(qǐng)見(jiàn)附錄 

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

修改配置文件如下

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

執(zhí)行安裝命令

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

2. 使用普通用戶安裝

(1) 下載 Binary 包到中控機(jī)

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

(2) 初始化集群各個(gè)節(jié)點(diǎn)。

修改配置文件如下

  1. ## Connection 
  2. # ssh via root: 
  3. ansible_user = root 
  4. ansible_become = true 
  5. ansible_become_user = tidb 
  6.  
  7. # ssh via normal user 
  8. 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) 啟動(dòng)所有服務(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 連接用戶的密碼,如果做了中控機(jī)到所有節(jié)點(diǎn)的互信,則不需要此參數(shù)
  • -K 執(zhí)行之后需要輸入 sudo 所需的密碼,如果使用 root 用戶或者 sudo 無(wú)需密碼,則不需要此參數(shù)

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

戳這里,看該作者更多好文

責(zé)任編輯:趙寧寧 來(lái)源: 51CTO專(zhuān)欄
相關(guān)推薦

2020-01-02 10:44:22

運(yùn)維架構(gòu)技術(shù)

2020-10-10 20:30:05

Ansible自動(dòng)化工具系統(tǒng)運(yùn)維

2023-12-11 18:15:46

AnsibleMinikubeKubernetes

2022-06-15 10:12:04

Ansible命令Linux

2021-01-26 06:58:03

AnsibleCeph集群運(yùn)維

2022-11-21 16:57:20

2016-10-17 13:33:26

原子主機(jī)AnsibleCockpit

2021-12-21 21:00:23

Ansible樹(shù)莓派語(yǔ)音助手

2021-05-17 12:54:04

AnsiblePodman開(kāi)源

2024-11-01 10:30:05

2018-06-12 14:50:35

系統(tǒng)運(yùn)維Ansible運(yùn)行分析工具

2022-11-22 13:00:38

2019-09-08 17:04:00

DebianLinuxAnsible

2017-07-11 08:38:38

TiDB數(shù)據(jù)庫(kù)分布式

2022-05-11 07:17:29

MySQLAnsible運(yùn)維

2022-11-23 14:13:03

Ansible條件判斷

2020-01-02 19:00:05

AnsibleGitHubGitLab

2019-10-30 12:00:02

Ansible容器與云容器鏡像

2016-10-24 09:09:48

AnsibleVagrantFedora

2015-08-17 14:13:52

Ansible輕量自動(dòng)化部署工具
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: av在线播放一区二区 | 亚洲精品视频免费观看 | 欧美亚洲国产成人 | 午夜精品久久久久久久久久久久久 | 最新中文字幕第一页视频 | 欧美日韩亚洲一区 | 国产一区二区三区免费视频 | 午夜精品一区二区三区在线播放 | 在线观看免费av网 | 日本精品一区二区三区在线观看 | 情侣酒店偷拍一区二区在线播放 | 亚洲精品一区中文字幕 | 欧美寡妇偷汉性猛交 | 四虎成人在线播放 | 91国产在线视频在线 | 特黄色毛片 | 欧美日韩亚洲成人 | 国产成人免费一区二区60岁 | 一区二区三区视频免费观看 | 美日韩中文字幕 | 亚洲电影在线播放 | 国产成人小视频 | 老头搡老女人毛片视频在线看 | 免费观看一级毛片视频 | 黄色毛片网站在线观看 | 中文字幕在线观看日韩 | 亚洲精品一区二区三区 | 中文字幕综合在线 | 日产精品久久久一区二区福利 | 成人免费淫片aa视频免费 | 亚洲国产成人精品女人久久久 | 亚洲成人一区二区 | 91看片网| 一区二区三区 在线 | 亚洲永久 | 国产伦一区二区三区视频 | 久久电影一区 | 欧美男男videos| 国产 日韩 欧美 制服 另类 | 国产欧美日韩综合精品一区二区 | 久久蜜桃av一区二区天堂 |