Leo Yeh's Blog

SAS Viya (10)

教學目標

安裝 SAS Viya 平台的心得分享,其中包括許多該注意的事項,以利初學者順利安裝 SAS Viya 平台。

重點概念

最近針對不同的案例環境安裝 SAS Viya 平台非常多次,遭遇了許多的問題,因此本篇的重點在於分享多次安裝的心得,以利初學者順利安裝 SAS Viya 平台,一般來說,安裝 SAS Viya 平台主要三個階段,分別為:

  1. 前置階段
  2. 安裝階段
  3. 驗證階段

前置階段 - 軟體確認

SAS Viya 主要是在 RedHat 和 Oracle Linux 作業系統透過 Ansible 2.2.1 工具進行安裝,所以我們會先透過「yum」 指令安裝 Ansible 2.2.1 ,請注意版本必須為 2.2.1,否則會安裝時發生錯誤,並且安裝下述軟體套件,分別為:

  1. glibc 2.12
  2. libpng/libpng12
  3. libXp
  4. libXmu
  5. net-tools
  6. the numactl package
  7. the X11/Xmotif (GUI) packages
  8. xterm
  9. java 1.8
  10. httpd

安裝 Ansible 2.2.1

1
2
3
4
5
6
# sudo yum erase -y ansible
# sudo yum install -y epel-release
# sudo yum install -y gcc automake openssl-devel python-devel libffi-devel python-crypto python-paramiko python-keyczar python-setuptools python-pip python-six python-pip
# sudo pip install 'ansible==2.2.1'
# ansible --version
# ansible localhost -m ping

前置階段 - 帳號確認

我們會透過下述指令針對每台機器建立 ssh 無需密碼連線,請注意若是登入使用者帳號會自動切換 root,此時要確認 Public Key 是否正確若不正確請複製正確的 Public Key 至「~/.ssh/authorized_keys」資料夾中,此外確認「/etc/ssh/sshd_config」設定檔中「PubkeyAuthentication」參數是否為「yes」,接著透過「service sshd restart」重新啟動「sshd 服務」。以及透過「useradd」和「groupadd」指令建立 sas 和 cas 使用者,並且屬於同一個 sas 群組中,請注意 sas 和 cas 使用者的 gid 必須一樣,可以透過「/etc/passwd」檔案進行檢查與修改使用者對應群組,以及透過「/etc/group」檔案進行檢查與修改群組資訊。

建立 SSH 無密碼登入

1
2
# ssh-keygen -q -t rsa -N '' -f ~/.ssh/id_rsa
# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

建立 sas 和 cas 使用者與群組

1
2
# useradd -u 10001 -g 10001 sas
# useradd -u 10002 -g 10001 cas

前置階段 - 網路確認

我們必須透過「hostname」指令確認是否為完整網域名稱,若是非完整網域名稱則要修改「/etc/hosts」設定檔,請注意順序很重要,FQDN 網域名稱要放在前面,以及透過「hostname」指令和編輯「/etc/sysconfig/network」設定檔中「HOSTNAME」參數,否則啟動 RabbitMQ 時會發生問題,接著透過「ifconfig」指令確認是否為一張網卡,若是多張網卡則要針對「/etc/sysconfig/sas/sas-viya-consul-default」進行「export CONSUL_BIND_EXTERNAL=adapter-name」的設定,否則啟動 Consul 時會發生問題,請注意該檔案僅有在安裝時會產生,若是多台機器則皆要進行設定,否則安裝時則會有連線不到 8500 連接埠的問題,別害怕安裝時 Playbook 是能夠重覆執行所以不影響。以及我們將會進行下述三件前置作業的設定事項,分別為:

  1. 設定 Linux Tuning。
  2. 設定 SELinux 。
  3. 設定 Firewall。(iptable 或 firewalld)

設定 Linux Tuning

1
2
3
4
5
6
7
8
# vim /etc/security/limits.conf
* - nofile 20480
cas - nofile 20480
@sas - nofile 20480
# vi /etc/security/limits.d/20-nproc.conf
* - nproc 65536
cas - nproc 65536
@sas - nproc 65536

設定 SELinux

1
2
# sudo setenforce 0
# sudo sed -i.bak -e 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config

設定 Firewall

1
2
3
4
5
6
7
# sudo service iptables stop
# sudo chkconfig iptables off
# sudo service ip6tables stop
# sudo chkconfig ip6tables off
# systemctl disable firewalld
# systemctl stop firewalld
# systemctl disable firewalld

前置階段 - 建立本機安裝檔

我們會解壓縮官方所提供的「SAS_Viya_playbook.tgz」安裝檔至任意資料夾,像是「/sas/install」資料夾,接著修改「sas_viya_playbook」資料夾中的「repohosts」檔案中的「lighthost」和「darkhost」參數為第一台機器的 FQDN 完整網域名稱,接著透過「ansible-playbook -i repohosts reposync.yml」指令建立本機安裝檔,請注意 Playbook 就算執行正確,請務必確認「/var/www/html/pulp/repos/yum-xxx」資料夾中是否有「repodata」資料夾,若是沒有請執行下述指令清乾淨 Yum 的 Repositories ,再重新執行下述指令,否則安裝時會出現 404 Not Found 的錯誤訊息。並且此確認本機安裝檔是否能夠透過 httpd 伺服器進行存取,若是不行可以試試將「/tmp/mirror/location」資料夾複製至「/var/www/html/pulp/repos」資料夾為實體路徑,而非連結路徑,請記得先重新命名「repos」連結路徑資料夾。若是確認無誤之後將會在「sas_viya_playbook」資料夾中找到「repo_override.txt」設定檔,請注意若是要將 Yum 的 Repositories 複製至其它機器執行離線安裝,則請複製「/var/www/html/pulp/repos」資料夾中的所有檔案和資料夾內容,以及修改「repo_override.txt」設定檔中的網址路徑即可。

建立 Yum 的 Repositories

1
2
3
4
5
6
7
8
9
10
11
12
# vi /sas/install/sas_viya_playbook/repohosts
lighthost ansible_ssh_host=host1.example.com
darkhost ansible_ssh_host=host1.example.com
[mirrorhost]

lighthost
[repohost]

darkhost
[sas-all:children]

mirrorhost
Repohost
# ansible -i repohosts -m ping all
# ansible-playbook -i repohosts reposync.yml

清理 Yum 的 Repositories

1
2
3
# yum -y erase 'sas-*'
# rm -rf /etc/yum.repos.d/sas.repo
# yum clean all

測試 Yum 的 Repositories

1
2
3
4
5
# sudo yum install httpd
# service httpd status
# service httpd start
# curl -s -o /dev/null -w "%{http_code}\n" http:// nhihsasva2.intra.nhi.gov.tw/pulp/repos/
200

安裝階段 - 安裝 SAS Viya (單一機器部署)

我們僅需確認「vars.yml」設定檔中路徑設定和暫存資料夾設定是否正確,接著就能夠執行安裝指令開始在單一機器部署 SAS Viya 平台。

確認「vars.yml」設定檔

1
2
3
4
5
6
7
8
9
10
# vi vars.yml

CAS_SETTINGS:
1: JAVA_HOME=/usr/lib/jvm/jre-1.8.0
2: LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$JAVA_HOME/lib/amd64/server

CAS_CONFIGURATION:
env:
CAS_DISK_CACHE: /sas/temp

單一機器部署 SAS Viya 平台

1
# ansible-playbook -i host_local site.yml -e "@repo_override.txt"

查看安裝套件的進度

1
# rpm -qa|grep "*sas-"|wc -l

安裝階段 - 安裝 SAS Viya (多台機器部署)

我們則需確認「host」和「vars.yml」設定檔中路徑設定和暫存資料夾設定是否正確,接著就能夠執行安裝指令開始在多台機器部署 SAS Viya 平台。

確認「hosts」設定檔

1
2
3
4
5
6
7
8
9
# vi hosts
deployTarget ansible_ssh_host=host1.example.com
worker01 ansible_ssh_host=host2.example.com
worker01 ansible_ssh_host=host3.example.com

[sas-casserver-worker]
worker01
worker02

請注意 deployTarget 可以修改,但是「vars.yml」設定檔中也要一起修改,否則安裝時會出錯。

確認「vars.yml」設定檔

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# vi vars.yml

CAS_SETTINGS:
1: JAVA_HOME=/usr/lib/jvm/jre-1.8.0
2: LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:$JAVA_HOME/lib/amd64/server:$ODBCHOME/lib
3: HADOOP_HOME=/opt/cloudera/parcels/CDH/lib/hadoop
4: HADOOP_NAMENODE=host1.example.tw


CAS_CONFIGURATION:
env:
CAS_DISK_CACHE: /sas/temp
cfg:
#gcport: 0
#httpport: 8777
#port: 5570
colocation: 'hdfs'

請注意「colocation」必須設定為「’hdfs’」,否則 CAS Controller 會無法啟動。

多台機器部署 SAS Viya 平台

1
# ansible-playbook -i hosts site.yml -e "@repo_override.txt"

查看安裝套件的進度

1
# rpm -qa|grep "*sas-"|wc -l

驗證階段 - 驗證 SAS Viya 安裝是否成功

我們主要可以透過下述三個指令擇一驗證 SAS Viya 平台的所有服務是否皆已啟動完成,若是全部服務皆為「up」則代表安裝成功。

1
2
3
# sudo /etc/init.d/sas-viya-all-services status
# sudo service sas-viya-all-services status
# sudo systemctl status sas-viya-all-services

下一步我們需要透過下述指令取得「sasboot」系統帳號的密碼,請注意此帳號僅用一次,接著我們需要開啟瀏覽器輸入「http://host1.example.com/SASLogon/reset_password? code=xxxxxx 」重新設定密碼之後開始使用 SAS Viya 平台。

1
2
3
# cd /var/log/sas/viya/saslogon/default
# cat * | grep sasboot
Reset password for initial user sasboot using link: /SASLogon/reset_password? code=xxxxxx

然而安裝 SAS Viya 平台還有許多後續設定的步驟以利進行驗證,但是基本上能夠正常登入 SAS Environment Manager 網站代表安裝 SAS Viya 已經完成,至於根據案例的不同需求我們還會進行許多後續設定的步驟,以利滿足不同案例的需求,這部份之後再分享相關的安裝心得。

總結我們安裝 SAS Viya 平台時,若是前置階段做的好,則後續安裝階段與驗證階段將會非常順序,並且安裝階段是能夠重覆執行 Playbook ,不會造成任何作業系統的影響,因此初學者們不用害怕安裝 SAS Viya 平台,放心進行安裝吧。

相關資源

⬅️ Go back