Leo Yeh's Blog

SAS Viya (12)

教學目標

初步了解如何解決安裝 SAS Viya 3.2 時所發生「advertise address: Multiple private IPs found. Please configure one」的問題。

重點概念

確認主機名稱是否設定正確

首先在安裝之前請確認主機名稱為完整網域名稱 (FQDN),否則不僅會造成 RabbitMQ 服務無法正常啟動之外,還有可能會造成 Consul 服務設定發生不信任網域的錯誤,請注意一定要透過下述指令進行確認。

確認主機名稱為完整網域名稱

1
2
$ hostname
host1.company.com

修改主機名稱為完整網域名稱

方式一

1
2
$ hostname host1.company.com
$ hostnamectl set-hostname host1.company.com

方式二

1
2
$ vim /etc/hosts
192.168.0.1 host1.company.com host1

方式三

1
2
$ vi /etc/sysconfig/network
$ HOSTNAME=host1.company.com

確認每台機器網路卡數

接著必須先執行一次 Ansible Playbook 之後在每台機器上產生「/etc/sysconfig/sas/sas-viya-consul-default」設定檔,才能夠進行修改,此時我們先透過下述指令確認網卡數。

確認網路卡數

1
$ ifconfig

其中若是為虛擬機器時會有三種類型的網卡,分別為 ensXXX、virbr0 和 lo ,我們必須先透過下述指令停止 lo 類型的虛擬網路的網路卡。

停止虛擬網路卡

1
$ ifconfig virbr0 down

設定 Consul 服務參數

再來若我們 ensXXX 類型的網卡只有一張,則我們透過下述指令設定每台機器上 Consul 服務外部網路卡參數。

設定外部網路卡參數

1
2
$ vi /etc/sysconfig/sas/sas-viya-consul-default
CONSUL_BIND_EXTERNAL=ensXXX

但若我們 ensXXX 類型的網卡有二張,則我們會透過下令指令設定每台機器上 Consul 服務內部網路卡參數。

設定內部網路卡參數

1
2
$ vi /etc/sysconfig/sas/sas-viya-consul-default
CONSUL_ADVERTISE_INTERNAL=ensXXX

重新執行 Ansible Playbook 部署

最後我們重新執行 Ansible Playbook 部署之前請先確認 RabbitMQ 是否已經執行,若是請先刪除,否則過了 Consul 服務設定之後,還是會發生錯誤。

停止 RabbitMQ 服務

1
2
$ ps -ef | grep sasrabbitmq
$ kill -9 XXXXX

請注意若我們安裝完成之後執行下述指令,將會發現許多 SAS Viya 服務狀態為「Not Ready」請放心,該 SAS Viya 服務已經正常執行,只有「down」狀態才行非正常執行。

查看 SAS Viya 所有服務的狀態

1
$ service sas-viya-all-services status

總結 SAS Viya 目前是能夠透過設定 Consul 服務參數的方式部署至內外部雙網卡的環境中,但是請一定要確認主機名稱為完整網域名稱,否則就算 Consul 服務正常啟動,但還是會發生 RPC 連線的錯誤訊息,同時每台機器必須設定 Consul 服務參數,否則還是會發生無法連線至 8500 連接埠的錯誤訊息,所以細節設定需要特別注意。

相關資源

⬅️ Go back