Skip to main content
Version: 1.7.0

彈性安裝(Beta)

本節以線上安裝方式說明彈性安裝 Gemini AI Console 之詳細流程。

先決條件#

  • 切換為 root 權限
  • root 密碼需先設為 password
  • root 可藉由 ssh 登入設備
  • 設備要能夠連上網際網路,以下載安裝包

取得安裝軟體#

  • 請先確認您已從 Gemini FTP 資料夾內取得以下必要軟體
    • GMN-{$version}-${build_number}-online.iso
    • SOL-${version}-${build-number}.iso

安裝AI Console#

步驟一:申請 Gemini AI Console License#

  • 將 iso 檔掛載到一個空的目錄下,此目錄為之後 Gemini AI Console 的安裝目錄,以下將以 /mnt/gemini 作為範例
# 建立 /mnt/gemini
$ mkdir -p /mnt/gemini
# 掛載 iso 檔
$ mount -o loop ./GMN-{$version}-${build_number}-online.iso /mnt/gemini
  • 進入 /mnt/gemini 資料夾後,將 id_generate.tar 複製至本地資料夾並解壓縮
$ cp id_generate.tar /tmp
$ cd /tmp && tar xvf id_generate.tar
  • 執行解壓縮後會出現一個 dist 資料夾,進到此資料夾後會有一個 id_generate.exe 檔案. 請執行並將產生的 Hash Code 寄回 Gemini,我們將產生一組授權碼給您。Email:support@geminiopencloud.com
$ cd dist
$ ./generate.exe
0b2ef5fafe7380fc5b121f87bc15b8fa6c636b1534140d8718e2e5c8a80a3591
  • 你將會得到一組以下結構的文字檔案, 請於之後的步驟填寫進入安裝設定檔內 License Code 欄位
LICENSE geminiopencloud permanent hosts= users= enable_public= gpu= jobs= projects= mode= sig=<...sig text..>

步驟二:安裝 Installer#

  • 如果有需要安裝 preload solution,則要掛載 Preload Image iso (optional)
# 建立 /mnt/solution
$ mkdir -p /mnt/solution
# 掛載 iso 檔
$ mount -o loop ./SOL-${version}-${build-number}.iso /mnt/solution
caution

如果需要安裝 preload solution,則一定要在安裝 installer 前先掛載好,否則不會將 preload solution 安裝至機器上。

  • 執行以下指令安裝 installer
$ cd /mnt/gemini
$ apt-get install -f ./installer.deb -y

步驟三:編寫 gemini.cfg 設定檔#

  • 切換路徑至 /opt/gemini/GMN_installer/ansible,修改 gemini.cfg 安裝設定檔。並確認 /opt/gemini/GMN_installer/ansible 路徑下存在 gemini.cfg 安裝設定檔與 GI.sh
  • 可自行創建額外的安裝設定檔或使用預設的 gemini.cfg,若自行創建新安裝設定檔時,須注意內容是否符合底下範例。
    • lic : 將提供給此台機器使用的 license code 貼於此
    • offline_install:切換線上/離線安裝的變數
    • skip_check_license : 是否跳過 license 檢查

以下以預設 gemini.cfg 作為說明:

# gemini.cfg
# License Code, please copy the license code from received email
lic=LICENSE geminiopencloud permanent hosts=1 users=5 enable_public=0 gpu=8 jobs=3 projects=1 mode=Single sig=WyJmMGttYkZGN--------略---------UE13L0xnPT0iXQ==
# online/offline install
offline_install=false
# check license or not
skip_check_license=false

步驟四:編寫 Inventory 檔案#

  • 分成兩份檔案,一份是default-k8s的資訊,一份是ai-console的資訊。在 /opt/gemini/GMN_installer/ansible 路徑下,執行以下指令
# 如果需要安裝 default k8s 時,使用此檔案
$ cp inventory/default_k8s.cfg.tmpl inventory/default_k8s.cfg
# 如果需要安裝 ai console 時,使用此檔案
$ cp inventory/ai_console.cfg.tmpl inventory/ai_console.cfg
  • 依據需求,填寫好 default k8s 及 ai console 之 inventory 檔案。

    • 編寫 default_k8s.cfg 可彈性安裝一至多台機器資訊組成一套 default k8s cluster。
    [all]
    ### Default K8S Host (Managed K8S)
    default-k8s ansible_host=10.113.99.4 ip=10.113.99.4
    # default-k8s2 ansible_host=10.111.10.5 ip=10.111.10.5
    # default-k8s3 ansible_host=10.111.10.6 ip=10.111.10.6
    [all:vars]
    ## Definition of GMN deployment mode by this config.
    ansible_python_interpreter=/usr/bin/python3
    ansible_ssh_user=root
    ansible_ssh_pass=password
    ## This config allows you to become another user, different from the user that logged into the host.
    ansible_become_user=root
    ansible_become_pass=password
    ##hosts--------------------------
    [kube-master]
    default-k8s
    [kube-node]
    default-k8s
    [etcd]
    default-k8s
    [k8s-cluster:children]
    kube-master
    kube-node
    • 編寫 ai_console.cfg 可在任何機器上安裝 ai console 至指定位置。pm 代表的是需要安裝 vm 的機器,default k8s 代表的則是要控制的系統位置,ai console 則是安裝整套 ai console 的資訊,可填寫一至三台機器資訊。
      需要注意的是,如果在 pm 的部分填寫不只一台機器資訊,則填寫的 ai console 會依序安裝到各台 pm 上;如果 pm 只填上一台資訊,就算 ai console 填了三台資訊,也只會安裝第一套 vm 在實體機上。因此,如要在同一台 pm 上安裝三台 ai console,則需要事先準備好另外兩台 vm (以下列為例,需準備 k8s-2 及 k8s-3)。
    info

    pm 的功用主要是安裝 vm,如果不需要另外安裝vm,則此欄位資訊就不重要了。

    [all]
    ### Physical machine that will install kvm and ai console
    pm ansible_host=10.112.1.2 ip=10.112.1.2 ansible_ssh_user=root ansible_ssh_pass=password
    # pm2 ansible_host=10.113.99.4 ip=10.113.99.4 ansible_ssh_user=root ansible_ssh_pass=password
    ### K8S cluster which will become default platform (Default K8S)
    default-k8s1 ansible_host=10.112.1.2 ip=10.112.1.2
    default-k8s2 ansible_host=10.111.10.5 ip=10.111.10.5
    ### K8S cluster that will install ai console (System K8S)
    ai-console1 ansible_host=10.112.1.10 ip=10.112.1.10 ansible_ssh_user=root ansible_ssh_pass=p@ssw0rd netmask=255.255.0.0 gateway=10.112.0.254 dns=8.8.8.8
    ai-console2 ansible_host=10.112.1.11 ip=10.112.1.11 ansible_ssh_user=root ansible_ssh_pass=p@ssw0rd netmask=255.255.0.0 gateway=10.112.0.254 dns=8.8.8.8
    ai-console3 ansible_host=10.112.1.12 ip=10.112.1.12 ansible_ssh_user=root ansible_ssh_pass=p@ssw0rd netmask=255.255.0.0 gateway=10.112.0.254 dns=8.8.8.8
    [all:vars]
    ## Definition of GMN deployment mode by this config.
    ansible_python_interpreter=/usr/bin/python3
    ansible_ssh_user=root
    ansible_ssh_pass=password
    ## This config allows you to become another user, different from the user that logged into the host.
    ansible_become_user=root
    ansible_become_pass=password
    ##hosts--------------------------
    [pm-master]
    pm
    [pm-node]
    [pm-cluster:children]
    pm-master
    pm-node
    [kube-master]
    ai-console1
    ai-console2
    ai-console3
    [kube-node]
    ai-console1
    ai-console2
    ai-console3
    [etcd]
    ai-console1
    [k8s-cluster:children]
    kube-master
    kube-node
    [paas-cluster]
    [default-k8s]
    default-k8s1
    default-k8s2

步驟五:佈署 Default K8S (Optional)#

  • 如果需要佈署一套 default k8s,則在 /opt/gemini/GMN_installer/ansible 路徑下,執行 GI.sh 程式

    # ./GI.sh deploy default_k8s -f FILENAME --tags <TAGS> --skip-tags <TAGS>
    $ ./GI.sh deploy default_k8s -f gemini.cfg
    • 後面的 --tags 以及 --skip-tags 可在安裝時做更加彈性的運用。使用 --tags 加上 tag 後,就只會執行有加上同樣 tag 的 task;相反地,如使用 --skip-tags 則不會執行帶有同樣 tag 的 task。
      預設會執行全部的tasks。
    info

    Deploy default k8s 可使用的 tag => default-k8s, monitoring, preinstall, install, helm, prometheus, kubeshare, load_images。
    可參考對照表

    caution

    請一定要依照 --tags--skip-tags 的順序使用。可只單獨使用其中一個參數。

  • 開始執行後,可開啟額外 terminal 畫面,輸入以下指令查看安裝 Log 訊息

    • install_default_k8s.log 檔案紀錄實體機器安裝 kubernetes 系統時相關訊息
$ tail -f /var/log/install_default_k8s.log
  • 若安裝正常執行,安裝完畢後會看到以下訊息
訊息說明
Kubernetes installation finished安裝 Default K8S 完成
  • 若安裝失敗可能出現以下幾種訊息
訊息說明
k8s installation are failedDefault K8S 安裝失敗
caution

安裝完成後需重新開機

步驟六:佈署 AI Console#

  • /opt/gemini/GMN_installer/ansible 路徑下,執行 GI.sh 程式

    # ./GI.sh deploy ai_console -f FILENAME --tags <TAGS> --skip-tags <TAGS>
    $ ./GI.sh deploy ai_console -f gemini.cfg --tags "ad" --skip-tags "create-kvm"
    • 後面的 --tags 以及 --skip-tags 可在安裝時做更加彈性的運用。使用 --tags 加上 tag 後,就只會執行有加上同樣 tag 的 task;相反地,如使用 --skip-tags 則不會執行帶有同樣 tag 的 task。
      預設會執行安裝一套 SE 版 AI Console。
    info

    Deploy ai console 可使用的 tag => preload-images, se, st, ad, create-kvm, system-k8s, preinstall, install, preload, helm, mariadb, grafana, apigw, rabbitmq, redi, xportal, pass, harbor, elk。
    可參考對照表

    caution

    請一定要依照 --tags--skip-tags 的順序使用。可只單獨使用其中一個參數。

  • 開始執行後,可開啟額外 terminal 畫面,輸入以下指令查看安裝 Log 訊息

    • install_ai_console.log 檔案紀錄實體機器安裝 kubernetes 系統時相關訊息
$ tail -f /var/log/install_ai_console.log
  • 若安裝正常執行,安裝完畢後會看到以下訊息
訊息說明
GMN installation are finished安裝 AI Console 完成
  • 若安裝失敗可能出現以下幾種訊息
訊息說明
GMN installation are failedAI Console 安裝失敗

檢查與設定#

安裝檢查#

  • 根據上述設定檔內的 AI Console IP,透過瀏覽器開啟網頁,網址為
    < AI Console IP >:32666
  • 預設登入帳密如下
# System Admin
帳號:admin
密碼:password
# Project Admin
帳號:default
密碼:password
  • 透過 default 帳號開啟一個容器服務,並確認該容器有正常執行

變更 IP Address(非必要,若有需求再執行)#

  • 若您在安裝完成後,需要變更 IP Address,請更改步驟三的設定檔內容後,重新執行 GI.sh 腳本
$ ./GI.sh config -f <config file>

錯誤排查(Troubleshooting)#

  • 若遇到 AI Console 安裝失敗時,可透過以下兩道指令完整清除 AI Console
$ virsh destroy AI_CONSOLE_HOSTNAME
$ virsh undefine AI_CONSOLE_HOSTNAME
info

AI_CONSOLE_HOSTNAME 為當初安裝時在 inventory file 中設定的 AI Console hostname。

  • 若為 Kubernetes 安裝失敗,則只需 delete kubernetes 即可
$ ./GI.sh delete k8s_cluster
caution

執行 delete k8s 後,需重新開機