ansible快速部署cassandra3叢集

程式設計師欣宸發表於2020-11-12

歡迎訪問我的GitHub

https://github.com/zq2599/blog_demos

內容:所有原創文章分類彙總及配套原始碼,涉及Java、Docker、Kubernetes、DevOPS等;

關於cassandra3叢集部署

通常情況下的cassandra3叢集部署操作如下:

  1. 安裝JDK;
  2. 設定JDK環境變數;
  3. 建立執行cassandra服務的群組和賬號;
  4. 安裝cassandra;
  5. 設定cassandra環境變數;
  6. 設定cassandra引數;
  7. 設定cassandra日誌目錄和檔案目錄;

上述操作要在每臺機器執行,手動操作較為費時,因此用ansible來完成上述所有步驟,除了省事兒,還減少了操作失誤的概覽;

關於ansible部署

  1. ansible是常用的運維工具,可以大幅度簡化整個部署過程;
  2. 接下來使用ansible完成部署工作,如果您想了解ansible,請參考《ansible2.4安裝和體驗》
  3. 部署操作如下圖所示,在一臺安裝了ansible的電腦上執行指令碼,由ansible遠端連線到三臺CentOS7.7的伺服器上,完成部署工作:

在這裡插入圖片描述

軟體版本

本次實戰的軟體版本資訊如下:

  1. ansible電腦作業系統:CentOS Linux release 7.7.1908
  2. cassandra伺服器作業系統:CentOS Linux release 7.7.1908
  3. cassandra版本:3.11.6
  4. jdk:1.8.0_191

材料準備

ansible遠端操作最重要的是提前把材料準備好,本次實戰一共需要如下7檔案(稍後有下載地址):

  1. ansible.cfg:ansible配置檔案;
  2. hosts:儲存了三臺cassansra伺服器資訊;
  3. cluster-3-nodes.yml:ansible指令碼,即playbook檔案,裡面是整個安裝部署的邏輯;
  4. vars-cluster-3-nodes.yml:ansible指令碼用到的變數配置資訊,例如JDK檔名,cassandra檔名等;
  5. cassandra.yaml:cassandra配置檔案,我從安裝包裡取出來做了些修改(幾個和目錄有關的配置,被我從註釋狀態改成了生效狀態)
  6. apache-cassandra-3.11.6-bin.tar.gz:cassandra官方安裝包;
  7. jdk-8u191-linux-x64.tar.gz:jdk8的官方安裝包;

所有材料的下載地址

  1. 從1到5的內容可以在我的GitHub下載,倉庫地址:https://github.com/zq2599/blog_demos ,在倉庫的playbooks/cassandra3目錄下,有個名為cluster-3-nodes資料夾,如下圖紅框所示,這裡面有那五個檔案:
    在這裡插入圖片描述
  2. apache-cassandra-3.11.6-bin.tar.gz:在官方下載:http://ftp.kddilabs.jp/infosystems/apache/cassandra/3.11.6/apache-cassandra-3.11.6-bin.tar.gz
  3. jdk-8u191-linux-x64.tar.gz:Oracle官網可下,也可以在csdn下載(不用積分),地址:https://download.csdn.net/download/boling_cavalry/12098987

檔案擺放位置

  1. 登入ansible電腦,在家目錄建立名為palybooks的目錄,命令是:mkdir ~/playbooks
  2. 上面的七個檔案中,1到4放入playbooks目錄;
  3. playbooks目錄下新建名為files的目錄,將5到7放進去;
  4. 最終七個檔案的擺放位置如下圖:

在這裡插入圖片描述

修改配置

  1. cassandra伺服器的IP地址、賬號、密碼等需要修改成您自己那邊的資訊,請修改hosts檔案中的相關內容,如下圖:
    在這裡插入圖片描述
  2. cassandra叢集的seed配置是其中兩臺機器的IP地址,這個資訊在vars-cluster-3-nodes.yml,請您改成自己機器的IP地址,如下圖黃框所示:
    在這裡插入圖片描述
  3. 如果您的叢集名稱、jdk版本、cassandra版本和我這裡不同,都可以在vars-cluster-3-nodes.yml中修改;
  4. 第一次ssh連線到cassandra機器時會有提示要求輸入"Yes",為了避免這種情況出現在ansible連線cassandra機器的時候,建議先手動連線一次,這樣後面就不再出現提示了,如下圖:
    在這裡插入圖片描述

準備完畢,可以開始部署了;

部署

  1. 在playbooks目錄下執行ansible-playbook cluster-3-nodes.yml
  2. 等待大約5分鐘左右,如果控制檯沒有報錯,整個安裝過程完成;
  3. 如果有報錯,請按照錯誤提示做好處理再重複執行ansible-playbook cluster-3-nodes.yml,該命令可以反覆多次執行;

啟動

  1. 部署的時候會建立名為cassandra的群組,以及名為cassandra的賬號;
  2. 以cassandra賬號分別SSH登入三臺cassandra機器,密碼是888888
  3. 登入cassandra機器後,在任意位置執行命令cassandra,即可啟動cassandra服務;
  4. 等待大約幾分鐘,服務初始化、構建叢集成功:
    在這裡插入圖片描述
  5. 在三臺機器的任意目錄下執行命令nodetool status,檢視叢集情況:
    ansible快速部署cassandra3叢集

驗證

  1. 在任意一臺cassandra機器上,cqlsh進入互動模式後,執行以下操作:
    在這裡插入圖片描述
  2. 建立一個springboot應用,訪問上面新建的student表,如下圖紅框所示,應用啟動時連線cassandra成功:
    在這裡插入圖片描述
  3. springboot應用中有個根據名稱查詢記錄的web介面,如下圖,可以查到資料庫中的記錄:
    在這裡插入圖片描述
  4. 上面的springboot應用原始碼已上傳到GitHub,倉庫地址:https://github.com/zq2599/blog_demos ,在倉庫的cassandrahelloworld目錄下,如下圖紅框所示:
    在這裡插入圖片描述
    至此,cassandra叢集從部署到驗證已經操作完成,希望能給您一些參考;

歡迎關注公眾號:程式設計師欣宸

微信搜尋「程式設計師欣宸」,我是欣宸,期待與您一同暢遊Java世界...
https://github.com/zq2599/blog_demos

相關文章