虛擬機(jī)環(huán)境下 使用 Ansible 安裝部署 TiDB (單機(jī))

服務(wù)啟動(dòng)命令

1、執(zhí)行初始化命令

[tidb@localhost tidb-ansible-master]$ sudo ansible-playbook bootstrap.yml -k -K

[sudo] password for tidb:? 要輸入tidb用戶的密碼

SSH password:要輸入tidb用戶的密碼

SUDO password[defaults to SSH password]:要輸入tidb用戶的密碼

2、安裝服務(wù)

[tidb@localhost tidb-ansible-master]$?sudo ansible-playbook?-i?inventory.ini?deploy.yml?-k?-K

3、啟停服務(wù)

(1) 啟動(dòng)所有服務(wù)

[tidb@localhost tidb-ansible-master]$?sudo?ansible-playbook?-i?inventory.ini?start.yml?-k?-K

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

[tidb@localhost tidb-ansible-master]$?sudo?ansible-playbook?-i?inventory.ini?stop.yml

(3) 附錄

[tidb@localhost tidb-ansible-master]$?sudo?ansible-playbook?-i?inventory.ini?xxx.yml?-k?-K

-k 執(zhí)行之后需要輸入 ssh 連接用戶的密碼,如果做了中控機(jī)到所有節(jié)點(diǎn)的互信,則不需要此參數(shù)

-K 執(zhí)行之后需要輸入 sudo 所需的密碼,如果使用 root 用戶或者 sudo 無需密碼澈蝙,則不需要此參數(shù)

4、tidb登錄測(cè)試

mysql -u root -h 172.17.1.141 -P 4000

初始時(shí) tidb的mysql數(shù)據(jù)庫(kù)root用戶密碼為空

5撵幽、瀏覽器中訪問監(jiān)控臺(tái)

http://127.0.0.1:3000? ? ? ? 登錄用戶密碼 admin/admin





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

作者:PingCAP??申礫|2017-06-09 14:22

鏈接:http://www.reibang.com/p/239e2cf3a94f

來源:簡(jiǎn)書

本次部署為一臺(tái)虛擬機(jī)部署链烈,不包含其他機(jī)器厉斟,在一臺(tái)機(jī)器上進(jìn)行PD? ?KV? DB部署

一、背景知識(shí)


TiDB 作為一個(gè)分布式數(shù)據(jù)庫(kù)强衡,在多個(gè)節(jié)點(diǎn)分別配置安裝服務(wù)會(huì)相當(dāng)繁瑣擦秽,為了簡(jiǎn)化操作以及方便管理,使用自動(dòng)化工具來批量部署成為了一個(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ī)無客戶端置谦。基于以上原因亿傅,我們選用自動(dòng)化工具 Ansible 來批量的安裝配置以及部署 TiDB霉祸。

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

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

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

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

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

對(duì)于 PD 男摧。PD 本身是一個(gè)分布式系統(tǒng),由多個(gè)節(jié)點(diǎn)構(gòu)成一個(gè)整體译打,并且同時(shí)有且只有一個(gè)主節(jié)點(diǎn)對(duì)外提供服務(wù)耗拓。各個(gè)節(jié)點(diǎn)之間通過選舉算法來確定主節(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 是無狀態(tài)的齿桃,現(xiàn)有集群的 TiDB 服務(wù)壓力大的話惑惶,可以在其他節(jié)點(diǎn)直接增加 TiDB 服務(wù),無需多余的配置短纵。我們選擇使用兩個(gè) TiDB带污,可以做 HA 和負(fù)載均衡。

當(dāng)然如果只是測(cè)試集群的話香到,完全可以使用一個(gè) PD 鱼冀、一個(gè) TiDB 、三個(gè) TiKV (少于三個(gè)的話需要修改備份數(shù)量)

三悠就、在下載安裝TIDB之前千绪,中控機(jī)上部署的軟件

1.部署中控機(jī)一臺(tái):

Python 2.6 或 Python 2.7,安裝有 Ansible 2.3 版本或以上版本梗脾。

依賴 Python Jinja2 及 MarkupSafe 指定版本模塊: pip install Jinja2==2.7.2 MarkupSafe==0.11

可通過 ssh 登錄目標(biāo)機(jī)器荸型,支持密碼登錄或 ssh authorized_key 登錄。

中控機(jī)可以是部署目標(biāo)機(jī)器中的某一臺(tái)炸茧,該機(jī)器需開放外網(wǎng)訪問瑞妇,并且安裝 curl 軟件包稿静,用于下載 binary。

2辕狰、安裝ansible



2.1 安裝python2.7

一般系統(tǒng)都會(huì)自帶改备,沒有安裝的可以自行下載安裝

下載setuptools

wge thttps://pypi.python.org/packages/source/s/setuptools/setuptools-7.0.zip

解壓安裝

unzip setuptools-7.0.zip

cd setuptools-7.0/

python setup.pyinstall


2.2 下載pip

wgethttps://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz#md5=35f01da33009719497f01a4ba69d63c9

解壓安裝

tar zxf pip-9.0.1.tar.gz

cd pip-9.0.1/

python setup.pyinstall

cryptography?版本要大于1.5? 目前是2.1.4


2.3 下載ansible

yum install ansible -y


三、下載 TiDB 安裝包并解壓


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

mkdir /root/workspace? ? ? ? ? ? ? ?

#切換目錄

cd /root/workspace? ? ? ? ? ? ? ? ? ?

#下載安裝包

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

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

unzip master.zip? ? ? ? ? ? ? ? ? ? ?

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

cd tidb-ansible-master && ls?

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


五、修改配置文件

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

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


#將要安裝?TiDB?服務(wù)的節(jié)點(diǎn)

[tidb_servers]

192.168.1.102

192.168.1.103

#將要安裝?TiKV?服務(wù)的節(jié)點(diǎn)

[tikv_servers]

192.168.1.104

192.168.1.105

192.168.1.106

#將要安裝?PD?服務(wù)的節(jié)點(diǎn)

[pd_servers]

192.168.1.101

192.168.1.102

192.168.1.103

#將要安裝?Promethues?服務(wù)的節(jié)點(diǎn)

#?Monitoring?Part

[monitoring_servers]

192.168.1.101

#將要安裝?Grafana?服務(wù)的節(jié)點(diǎn)

[grafana_servers]

192.168.1.101

#將要安裝?Node_exporter?服務(wù)的節(jié)點(diǎn)

[monitored_servers:children]

tidb_servers

tikv_servers

pd_servers

[all:vars]

#服務(wù)安裝路徑灾测,每個(gè)節(jié)點(diǎn)均相同,根據(jù)實(shí)際情況配置

deploy_dir=?/home/tidb/deploy

##?Connection

#方式一:使用?root?用戶安裝

#?ssh?via?root:

#ansible_user=root

#ansible_become=true

#ansible_become_user=tidb

#方式二:使用普通用戶安裝(需要有?sudo?權(quán)限)

#?ssh?via?normal?user

ansible_user=tidb

#集群的名稱垦巴,自定義即可

cluster_name=test-cluster

#?misc

enable_elk=False

enable_firewalld=False

enable_ntpd=False

#?binlog?trigger

#是否開啟?pump媳搪,pump?生成?TiDB?的?binlog

#如果有從此?TiDB?集群同步數(shù)據(jù)的需求,可以改為?True?開啟

enable_binlog=False

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

sudo權(quán)限問題


在root用戶下#? visudo? ?

插入? tidb? ? ALL=(ALL)? ? ALL? ?一行

然后保存退出? wq!

然后給用戶賦權(quán)? ?


[root@localhost ~]# chmod 755 /usr/libexec/sudoers.so

[root@localhost ~]# ll /usr/libexec


1. 使用 root 用戶安裝

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

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)的目錄。

修改配置文件如下

##?Connection

#?ssh?via?root:

ansible_user=root

#ansible_become=true

ansible_become_user=tidb

#?ssh?via?normal?user

#ansible_user=tidb

執(zhí)行初始化命令

ansible-playbook?-i?inventory.ini?bootstrap.yml?-k???#ansible-playboo命令說明請(qǐng)見附錄

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

修改配置文件如下

##?Connection

#?ssh?via?root:

ansible_user=root

ansible_become=true

ansible_become_user=tidb

#?ssh?via?normal?user

#ansible_user=tidb

執(zhí)行安裝命令

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

2. 使用普通用戶安裝

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

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

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

修改配置文件如下

##?Connection

#?ssh?via?root:

#ansible_user=root

#ansible_become=true

#ansible_become_user=tidb

#?ssh?via?normal?user

ansible_user=tidb

執(zhí)行初始化命令

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

(3) 安裝服務(wù)

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

六儒士、啟停服務(wù)

(1) 啟動(dòng)所有服務(wù)

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

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

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

(3) 附錄

ansible-playbook?-i?inventory.ini?xxx.yml?-k?-K

-k 執(zhí)行之后需要輸入 ssh 連接用戶的密碼,如果做了中控機(jī)到所有節(jié)點(diǎn)的互信檩坚,則不需要此參數(shù)

-K 執(zhí)行之后需要輸入 sudo 所需的密碼着撩,如果使用 root 用戶或者 sudo 無需密碼,則不需要此參數(shù)

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

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

【編輯推薦】

初創(chuàng)公司如何實(shí)現(xiàn)Ansible多機(jī)房自動(dòng)部署發(fā)布

黃東旭DTCC2017演講實(shí)錄:When TiDB Meets Kubernetes

三篇文章了解 TiDB 技術(shù)內(nèi)幕——說存儲(chǔ)

三篇文章了解 TiDB 技術(shù)內(nèi)幕——說計(jì)算

三篇文章了解 TiDB 技術(shù)內(nèi)幕 —— 談?wù){(diào)度

【責(zé)任編輯:IT瘋TEL:(010)68476606】

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市赂乐,隨后出現(xiàn)的幾起案子薯鳍,更是在濱河造成了極大的恐慌,老刑警劉巖挨措,帶你破解...
    沈念sama閱讀 222,627評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件挖滤,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡浅役,警方通過查閱死者的電腦和手機(jī)斩松,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來觉既,“玉大人惧盹,你說我怎么就攤上這事〉伤希” “怎么了钧椰?”我有些...
    開封第一講書人閱讀 169,346評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)符欠。 經(jīng)常有香客問我嫡霞,道長(zhǎng),這世上最難降的妖魔是什么背亥? 我笑而不...
    開封第一講書人閱讀 60,097評(píng)論 1 300
  • 正文 為了忘掉前任秒际,我火速辦了婚禮,結(jié)果婚禮上狡汉,老公的妹妹穿的比我還像新娘娄徊。我一直安慰自己,他們只是感情好盾戴,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評(píng)論 6 398
  • 文/花漫 我一把揭開白布寄锐。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪橄仆。 梳的紋絲不亂的頭發(fā)上剩膘,一...
    開封第一講書人閱讀 52,696評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音盆顾,去河邊找鬼怠褐。 笑死,一個(gè)胖子當(dāng)著我的面吹牛您宪,可吹牛的內(nèi)容都是我干的奈懒。 我是一名探鬼主播,決...
    沈念sama閱讀 41,165評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼宪巨,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼磷杏!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起捏卓,我...
    開封第一講書人閱讀 40,108評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤极祸,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后怠晴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體遥金,經(jīng)...
    沈念sama閱讀 46,646評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評(píng)論 3 342
  • 正文 我和宋清朗相戀三年龄寞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了汰规。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,861評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡物邑,死狀恐怖溜哮,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情色解,我是刑警寧澤茂嗓,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站科阎,受9級(jí)特大地震影響述吸,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜锣笨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評(píng)論 3 336
  • 文/蒙蒙 一蝌矛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧错英,春花似錦入撒、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽璃赡。三九已至,卻和暖如春献雅,著一層夾襖步出監(jiān)牢的瞬間碉考,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工挺身, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留侯谁,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,287評(píng)論 3 379
  • 正文 我出身青樓章钾,卻偏偏與公主長(zhǎng)得像良蒸,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子伍玖,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • ansible介紹ansible常用模塊使用playbooktemplates,模板條件測(cè)試和循環(huán)迭代roles剿吻,...
    哈嘍別樣閱讀 1,413評(píng)論 0 3
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理窍箍,服務(wù)發(fā)現(xiàn),斷路器丽旅,智...
    卡卡羅2017閱讀 134,716評(píng)論 18 139
  • ansible 系統(tǒng)架構(gòu) ansible簡(jiǎn)介ansible是新出現(xiàn)的自動(dòng)化運(yùn)維工具椰棘,ansible是一個(gè)配置管理和...
    運(yùn)維阿文閱讀 9,641評(píng)論 1 52
  • ###### Ansible總結(jié) ##### 運(yùn)維工作: 系統(tǒng)安裝(物理機(jī)、虛擬機(jī))-->程序包安裝榄笙、配置邪狞、服務(wù)啟...
    二郎5閱讀 2,036評(píng)論 0 4
  • Day 1原文文本 【翻譯劃線段落】 Dollars will findbuyers hard to find i...
    Sharon667閱讀 181評(píng)論 0 0