目錄

簡介

必要條件

需求

採用元件

背景資訊

問題

新增、刪除或修改/ETC/HOSTS條目的過程

簡介

本檔案介紹在思科原則套件(CPS)中新增、刪除或修改/ETC/HOSTS專案的程式。

必要條件

需求

思科建議您瞭解以下主題：

- Linux

- CPS

附註：思科建議您必須具有對CPS CLI的Root訪問許可權。

採用元件

本文中的資訊係根據以下軟體和硬體版本：

- CPS 20.2

- MongoDB v3.6.17

- 整合運算系統(UCS)-B

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路運作中，請確保您瞭解任何指令可能造成的影響。

背景資訊

若要將網路流量傳送到主機，該主機的數字IP位址必須已知。IP地址傳統上寫為xxx.xxx.xxx.xxx，其中每個xxx代表IPv4網路地址的0到255之間的值。電腦需要這些地址，但人類很難記住數值。在Linux系統上，這些可讀名稱會通過解析程式庫轉換為數字IP對等項，該解析程式庫包含在作為glibc RPM軟體包一部分提供的libresolve.so檔案中。需要查詢數字IP地址以發現名稱問題的程式呼叫此庫。

主機名及其IP地址可在各種位置找到。其中一個是/ETC/HOSTS文件。

/ETC/HOSTS檔案包含本地主機和Internet網路中其他主機的IP主機名和地址。此檔案用於將名稱解析為地址（即將主機名轉換為其Internet地址）。

[root@installer ~]# cat /etc/hosts

127.0.0.1 localhost

#BEGIN_QPS_LOCAL_HOSTS

xxx.xxx.xxx.xxx lb01 dc1-lb01

xxx.xxx.xxx.xxx lb02 dc1-lb02

xxx.xxx.xxx.xxx sessionmgr01 dc1-sessionmgr01

xxx.xxx.xxx.xxx sessionmgr02 dc1-sessionmgr02

xxx.xxx.xxx.xxx qns01 dc1-qns01

xxx.xxx.xxx.xxx qns02 dc1-qns02

xxx.xxx.xxx.xxx pcrfclient01 dc1-pcrfclient01

xxx.xxx.xxx.xxx pcrfclient02 dc1-pcrfclient02

#END_QPS_LOCAL_HOSTS

#BEGIN_QPS_OTHER_HOSTS

xxx.xxx.xxx.xxx ntp-primary ntp

xxx.xxx.xxx.xxx ntp-secondary btp

xxx.xxx.xxx.xxx lbvip01 lbvip01

xxx.xxx.xxx.xxx lbvip02 lbvip02

xxx.xxx.xxx.xxx arbitervip arbitervip

#END_QPS_OTHER_HOSTS

xxx.xxx.xxx.xxx installer

[root@installer ~]#

問題

每當需要向CPS新增、刪除或更新本地主機或對等體的資訊時，必須將其主機詳細資訊新增、刪除或修改到/ETC/HOSTS中。

新增、刪除或修改/ETC/HOSTS條目的過程

1.在OpenStack中託管CPS的方法。

步驟1.備份/ETC/HOSTS和其他檔案。

從群集管理器運行以下命令：

# cp /etc/hosts /var/tmp/hosts_bkp_$(date +%Y-%m-%d)

# cp /var/qps/config/deploy/json/AdditionalHosts.js /var/tmp/AdditionalHosts.js_bkp

# cp /qsb_config/features/system/system.json /var/tmp/system.json_bkp

步驟2.驗證系統狀態。

從群集管理器運行此命令：

#curl -s http://installer:8458/api/system

Expected Output:

{"state":"deployed"}

步驟3.備份當前的其他主機配置。

從群集管理器運行此命令：

$ curl -k -X GET http://installer:8458/api/system/config/additional-hosts > /var/tmp/additional_hosts_$(date +%Y-%m-%d).yaml

步驟4.準備yaml檔案，並提供所需的附加主機詳細資訊。

從群集管理器運行此命令：

# cp /var/tmp/additional_hosts_$(date +%Y-%m-%d).yaml /var/tmp/additional_hosts_new.yaml

在additional_hosts_new.yaml中新增、刪除或修改條目。

例如：

$ vi /var/tmp/additional_hosts_new.yaml

---

- name: "ntp-primary"

ipAddress: "xxx.xxx.xxx.xxx"

alias: "ntp-primary"

- name: "ntp-secondary"

ipAddress: "xxx.xxx.xxx.xxx"

alias: "ntp-secondary"

- name: "corporate_nms_ip"

ipAddress: "xxx.xxx.xxx.xxx"

alias: "corporate_nms_ip"

- name: "corporate_syslog_ip"

ipAddress: "xxx.xxx.xxx.xxx"

alias: "corporate_syslog_ip"

步驟5.從集群管理器運行PUT API呼叫命令，以便在/ETC/HOSTS中新增所需的主機詳細資訊。

curl -i -X PUT http://installer:8458/api/system/config/additional-hosts -H "Content-Type: application/yaml" --data-binary "@additional_hosts_new.yaml"

附註：此命令必須從放置additional_hosts_new.yaml檔案的同一目錄執行。

步驟6.在glibc/ETC/HOSTS中驗證主機詳細資訊。

從兩個負載平衡器(LB)虛擬機(VM)運行此命令並驗證主機詳細資訊。

#cat /etc/hosts

步驟7.重新啟動兩個LB上的所有Qns進程。

運行此命令可重新啟動LB Qns進程。

Command Syntax:

#monit stop {Process Name}

#monit start {Process name}

Command example:

#monit stop qns-1

#monit start qns-1

2.在VMware中託管CPS的方法。

步驟1.根據需要登入到Cluster Manager，並分別在/var/qps/config/deploy/csv/Hosts.csv中新增、刪除或修改本地主機詳細資訊和/var/qps/config/deploy/csv/AdditionalHosts.csv中的對等體詳細資訊。

運行此命令可新增、刪除或修改Hosts.csv檔案中的本地主機詳細資訊。

#vi /var/qps/config/deploy/csv/Hosts.csv.

運行此命令可新增、刪除或修改AdditionalHosts.csv檔案中的對等體詳細資訊。

#vi /var/qps/config/deploy/csv/AdditionalHosts.csv.

步驟2.運行此命令以將新配置匯入到群集管理器。

#/var/qps/install/current/scripts/import/import_deploy.sh

步驟3.運行此命令以驗證Cluster Manager /ETC/HOSTS中的更改。

#cat /etc/hosts

步驟4.從群集管理器運行此命令以重建CPS包。

[root@installer ~]# /var/qps/install/current/scripts/build_all.sh

步驟5.運行此命令可下載所有Puppet指令碼、CPS軟體/ETC/HOSTS文件，並使用群集管理器中的新軟體更新每個虛擬機器。

[root@installer ~]# /var/qps/install/current/scripts/upgrade/reinit.sh

步驟6.運行此命令以驗證LB/ETC/HOSTS中的更改。

#cat /etc/hosts

步驟7.重新啟動兩個LB上的所有Qns進程。

運行此命令可重新啟動LB Qns進程。

Command Syntax:

#monit stop {Process Name}

#monit start {Process name}

Command exampls:

#monit stop qns-1

#monit start qns-1