cibadmin (8)

Name

cibadmin - 提供對叢集組態的直接存取

概要

可讓您查詢、修改、取代和刪除整個或部分組態。

cibadmin (--query|-Q) -[Vrwlsmfbp] [-i xml-object-id|-o
  xml-object-type] [-t t-flag-whatever] [-h hostname]
cibadmin (--create|-C) -[Vrwlsmfbp] [-X xml-string]
  [-x xml- filename] [-t t-flag-whatever] [-h hostname]
cibadmin (--replace-R)  -[Vrwlsmfbp]  [-i xml-object-id|
  -o xml-object-type]  [-X  xml-string] [-x xml-filename] [-t
  t-flag- whatever] [-h hostname]
cibadmin (--update|-U) -[Vrwlsmfbp]  [-i xml-object-id|
  -o xml-object-type]  [-X  xml-string] [-x xml-filename] [-t
  t-flag- whatever] [-h hostname]
cibadmin (--modify|-M) -[Vrwlsmfbp]  [-i xml-object-id|
           -o xml-object-type]  [-X  xml-string] [-x xml-filename] [-t
           t-flag- whatever] [-h hostname]
cibadmin (--delete|-D) -[Vrwlsmfbp]  [-i xml-object-id|
           -o xml-object-type] [-t t-flag-whatever] [-h hostname]
cibadmin (--delete_alt|-d) -[Vrwlsmfbp] -o
           xml-object-type [-X xml-string|-x xml-filename]
           [-t t-flag-whatever]  [-h hostname]
cibadmin --erase (-E)
cibadmin --bump (-B)
cibadmin --ismaster (-m)
cibadmin --master (-w)
cibadmin --slave (-r)
cibadmin --sync (-S)
cibadmin --help (-?)

描述

cibadmin 指令為低階管理指令,用於操作 Heartbeat CIB。它可用於傾印整個或部分 CIB、修改整個或部分 CIB、刪除整個 CIB,或執行其他 CIB 管理作業。

cibadmin 對 CIB 的 XML 樹狀結構執行操作時,通常並不瞭解所執行的更新或查詢的意義。這表示對瞭解 XML 樹狀結構中各元素意義的使用者而言,那些習以為常的捷徑無法與 cibadmin 搭配使用。該指令要求完全不使用模糊語意,且只能處理輸入與輸出的有效 XML 子樹狀結構 (標籤與元素)。

附註: 使用者應一律優先選擇使用 cibadmin,而不是手動編輯 cib.xml 檔案 — 特別是在叢集為使用中狀態時更應如此。叢集會盡力偵測並防止這種做法,以免資料遺失或損毀。

選項

--obj_type 物件類型-o 物件類型

指定要對其執行操作的物件類型。有效值包括 nodesresourcesconstraintscrm_statusstatus

--verbose-V

開啟除錯模式。另外的 -V 選項可增加輸出的詳細度。

--help-?

cibadmin 獲得說明訊息。

--xpath PATHSPEC-A PATHSPEC

提供有效的 XPath 以取代 obj_type。

指令

--bump-B

增加 CIB 中 epoch 的版本計數器。此值通常在選舉新領袖時由叢集自動增加。若要讓較舊的組態過時 (例如儲存在非使用中叢集節點上的組態),則手動增加此值會很有用。

--create-C

使用引數的 XML 內容建立新的 CIB。

--delete-D

刪除與提供的準則相符的第一個物件,例如,<op id="rsc1_op1" name="monitor"/>。標籤名稱及所有屬性皆必須相符才能刪除元素

--erase-E

去除整個 CIB 的內容。

--ismaster-m

列印一則訊息,指出 CIB 軟體的本地例項是否為主例項。如果本地例項為主例項,則結束時會傳回代碼 0,否則會傳回代碼 35。

--modify-M

在 CIB 的 XML 樹狀結構中找到物件並將其更新。

--query-Q

查詢 CIB 的一部分。

--replace-R

以遞迴方式取代 CIB 中的 XML 物件。

--sync-S

強制將所有節點與指定主機上的 CIB 重新同步 (若使用 -h 選項),或強制將所有節點與 DC 重新同步 (若未使用 -h 選項)。

XML 資料

--xml-text 字串-X 字串

指定應對其執行 crmadmin 的 XML 標籤或片段。它必須是完整的標籤或 XML 片段。

--xml-file 檔名-x 檔名

指定應對其執行 crmadmin 的檔案中的 XML。它必須是完整的標籤或 XML 片段。

--xml_pipe-p

指定應對其執行 cibadmin 的 XML 來自於標準輸入。它必須是完整的標籤或 XML 片段。

進階選項

--host 主機名稱-h 主機名稱

將指令傳送至指定主機。僅適用於 querysync 指令。

--local-l

讓指令在本地生效 (極少使用,為進階選項)。

--no-bcast-b

不廣播指令,即使已變更 CIB 亦如此。

重要: 使用此選項時請謹慎,以免導致叢集分歧。

--sync-call-s

等待呼叫完成後再返回。

範例

若要取得傳遞至 stdout 的整個使用中 CIB 的副本 (包括狀態區段等),請發出以下指令:

cibadmin -Q

若要將 IPaddr2 資源新增至 resources 區段,請先建立含有下列內容的 foo 檔案:

   <primitive id="R_10.10.10.101" class="ocf" type="IPaddr2"
    provider="heartbeat">
    <instance_attributes id="RA_R_10.10.10.101">
     <attributes>
      <nvpair id="R_ip_P_ip" name="ip" value="10.10.10.101"/>
      <nvpair id="R_ip_P_nic" name="nic" value="eth0"/>
     </attributes>
    </instance_attributes>
   </primitive>

然後發出以下指令:

cibadmin --obj_type resources -U -x foo

若要變更先前新增之 IPaddr2 資源的 IP 位址,請發出以下指令:

cibadmin -M -X '<nvpair id="R_ip_P_ip" name="ip" value="10.10.10.102"/>'

附註: 此操作不會將資源名稱變更為與新的 IP 位址相符。若要如此,請刪除資源,然後使用新的 ID 標籤重新新增資源。

若要停止 (停用) 先前新增的 IP 位址資源而不將其移除,請建立含有下列內容的檔案 bar

<primitive id="R_10.10.10.101">
 <instance_attributes id="RA_R_10.10.10.101">
  <attributes>
   <nvpair id="stop_R_10.10.10.101" name="target-role" value="Stopped"/>
  </attributes>
 </instance_attributes>
</primitive>

然後發出以下指令:

cibadmin --obj_type resources -U -x bar

若要重新啟動上一步所停止的 IP 位址資源,請發出以下指令:

cibadmin -D -X '<nvpair id="stop_R_10.10.10.101">'

若要從 CIB 徹底移除 IP 位址資源,請發出以下指令:

cibadmin -D -X '<primitive id="R_10.10.10.101"/>'

若要用手動編輯的新 CIB 版本取代 CIB,請使用以下指令:

cibadmin -R -x $HOME/cib.xml

檔案

/var/lib/heartbeat/crm/cib.xml — 磁碟上的 CIB (不含 status 區段)。

並請參閱

crm_resource (8)crmadmin (8)、lrmadmin(8)、heartbeat(8)

原著者

cibadmin 由 Andrew Beekhof 撰寫。

本手冊頁最初由 Alan Robertson 撰寫。

警告

請避免在本地磁碟上自動維護的 CIB 複本上工作。叢集中的任何內容一變更,系統就會更新 CIB。因此,使用 CIB 的過時備份傳播您的組態變更可能會導致叢集不一致。