跳轉到

二、安裝

這章在講什麼:把系統實際裝進這台機器。

就像組裝一套辦公設備:先確認箱子沒被拆過(校驗)、拆箱(解壓縮)、通電開機(執行安裝)、最後照說明書把機器設定好。整個過程有一支安裝程式全程代勞,您要做的只是回答三個問題,然後看著它跑完。

什麼時候看第一章的檢查全部通過之後。整個安裝過程約 5~15 分鐘,多數時間花在載入映像檔(安裝母片)。


2.1 解開出貨包

先說結論:拆箱之前先驗一次,確認這個檔案跟原廠寄出時一模一樣。

原廠給您的出貨包是一個 .tar.gz 壓縮檔,旁邊會附一個同名的 .sha256 檔。那是校驗檔(原始檔案的指紋紀錄)——把手上這份壓縮檔重新算一次指紋,跟紀錄比對,就知道有沒有在傳遞途中損壞或被人動過手腳。

這兩步在做什麼:第 ① 步驗指紋,第 ② 步解壓縮並進到解開後的資料夾。

# ① 先驗整包沒有在傳輸途中損壞或被替換
sha256sum -c guidant-ai-1.16.0.tar.gz.sha256

# ② 解開
tar -xzf guidant-ai-1.16.0.tar.gz
cd guidant-ai-1.16.0

成功長什麼樣:第 ① 步輸出 guidant-ai-1.16.0.tar.gz: OK

失敗長什麼樣:第 ① 步輸出 FAILED這時請不要繼續安裝,直接向原廠重新索取出貨包。

版號會隨出貨版本不同,請以實際檔名為準。

解開後目錄內容見 手冊首頁「出貨包裡有什麼」


2.2 執行安裝(互動模式)

這一步在做什麼:啟動安裝程式。它會先問您三個問題,然後開始安裝。

sudo ./install.sh

成功長什麼樣:畫面出現下面三個問題。中括號裡是預設值,直接按 Enter 就是採用預設值

  使用者將用什麼網址連到這套系統?(網域或 IP)
  主機名稱或 IP [192.168.1.50]:
  資料存放目錄 [/srv/guidant-ai]:
  對外 HTTPS port [443]:

這三個問題怎麼答

問題 這是什麼 填錯會怎樣
主機名稱或 IP 使用者日後在瀏覽器網址列輸入的位址。這個值會寫進 HTTPS 憑證(電子身分證明),也會成為系統寄出的通知信裡連結的基準。有內部網域名稱就填網域,沒有就填 IP。 瀏覽器會多一層「憑證名稱不符」的警告,且通知信的連結會指向錯誤位址。
資料存放目錄 上傳的檔案、記錄檔、憑證、設定檔與備份都放這裡。請放在空間足夠的分割區。資料庫本身另外存在 Docker 的資料區,不在這個目錄下。 分割區空間不夠時日後會寫不進資料。
對外 HTTPS port 系統對外的門牌號碼。主機的 443 已被其他服務佔用時才需要改。 沿用被佔用的埠會啟動失敗。

安裝程式不會問您密碼。 所有服務之間互連用的密碼,都由安裝程式自動產生、直接寫進只有系統管理員讀得到的設定檔。這是刻意的設計:您手動輸入的密碼會留在終端機畫面與指令歷史紀錄裡,反而不安全。

您自己的管理員帳號密碼是稍後在瀏覽器裡設定的,見 第三章


2.3 安裝過程中畫面會出現什麼

安裝分八個大步驟(其中第 ④ 步分成三小段),每一步都會印出結果。以下逐步說明它在做什麼、成功長什麼樣。

① 環境檢查

這一步在做什麼:把 第一章 那些主機條件再逐項檢查一次。

成功長什麼樣:一連串 ,最後一行 ✓ 環境檢查通過

其他情形:出現 (硬體規格建議值不足)時安裝會繼續。出現 時安裝會中止——這一步不做任何變更,修正後可以安心重跑。

② 載入映像

這一步在做什麼:把系統的映像檔(安裝母片,六個檔)載進 Docker。載入前逐一比對每個檔的雜湊(sha256,檔案指紋),符合才載。

成功長什麼樣:每個檔案一行 ✓ ... 完整性符合,共六個檔。

🔴 任一檔不符會直接拒絕安裝(不是警告後繼續)。這是防止出貨包在傳遞途中被替換的最後一道防線。遇到這個情形請向原廠重新索取出貨包,不要嘗試繞過。

③ 產生密碼與金鑰

這一步在做什麼:替這台機器產生八組互相獨立的憑證——資料庫管理帳號、資料庫業務帳號、Redis、登入簽章金鑰、兩支資料加密金鑰、檔案儲存兩項。

成功長什麼樣✓ 已產生 8 組獨立憑證,以及「這些值只寫入設定檔(權限 600),不會顯示在畫面上」。

每一台安裝的密碼都是不同的。出貨包裡不含任何憑證,沒有「預設密碼」,也沒有跨客戶共用的私鑰。

④ 寫入設定檔

這一步在做什麼:把上一步產生的值,寫成兩份設定檔放進資料目錄。

檔案 用途
<資料目錄>/.env 建立服務時用(資料庫帳密、版號、路徑)
<資料目錄>/guidant.env 系統執行時用(連線帳密、金鑰、功能開關)

兩者權限都是 600、擁有者 root,也就是只有系統管理員讀得到。

🔴 請把這兩個檔納入備份。 遺失就再也連不上既有的資料庫,而且既有的加密資料(Google 雲端硬碟授權、檢測工具憑證)永遠解不開。

④-2 產生 HTTPS 憑證

這一步在做什麼:為這台機器簽一張專用的自簽憑證(自己幫自己簽的身分證明,能加密連線,但瀏覽器不認得它)。

成功長什麼樣✓ 已產生自簽憑證

為什麼一定要 HTTPS:不只是「比較安全」。設定精靈裡的「複製機器碼」按鈕用的是瀏覽器的剪貼簿功能,該功能只在 HTTPS 下存在;純 HTTP 下按了不會有任何反應也不會有錯誤訊息。

④-3 產生檢測 Agent 對接金鑰

這一步在做什麼:先把「檢測 Agent」要用的金鑰備妥。檢測 Agent 是安裝在被檢測主機上、負責跑組態檢測與收送檔案的小程式;系統這一側需要一組專用金鑰才能跟它對接。安裝程式會自動備妥,您不需要做任何設定。

成功長什麼樣

✓ 已產生本機專用的 Agent 對接金鑰(CA/雲端憑證/JWT 金鑰對,有效期 10 年)
✓ 已寫入 Agent 對接設定(雲端位址:https://192.168.1.50)

金鑰共六個檔,放在 <資料目錄>/pki/agent/

🔴 這組金鑰請一併納入備份。它不在 .envguidant.env 這兩份設定檔內,是獨立的一個目錄;遺失的後果是所有已註冊的檢測 Agent 全部離線,而且必須逐台重新註冊

重跑安裝或升級時不會覆蓋既有金鑰——覆蓋等於重新簽發,已註冊的 Agent 會全部失效。

不打算使用檢測 Agent 時,這一步產生的金鑰放著不用即可,不影響任何其他功能。要接 Agent 時見 第十章 10.5

⑤ 建立資料庫

這一步在做什麼:啟動資料庫,跑一次性的初始化程序(建立資料表、權限、基礎資料)。這一步耗時較久,約 1~3 分鐘,畫面停住是正常的。

成功長什麼樣✓ 資料庫初始化完成

⑥ 設定物件儲存

這一步在做什麼:啟動內建的物件儲存(專門放檔案的服務,類似公司內部的雲端硬碟)、建立儲存空間,並把隨包附上的系統內建檔案(合規框架 PDF)灌進去。

成功長什麼樣✓ 儲存空間 guidant-ai 已備妥✓ 系統檔已灌入(N 個…)✓ 檔案儲存已指向內建物件儲存

⑦ 啟動服務

這一步在做什麼:把六個服務一一啟動,並等它們回報健康。

成功長什麼樣:六行 ✓ <服務名> 健康guidant-socketio 那行是「執行中」,它沒有健康檢查)。

⑧ 安裝完成

這一步的畫面請不要關掉,上面有兩樣接下來馬上要用的東西:

════════════════════════════════════════════════════════════
  Guidant AI 已安裝完成,接下來請用瀏覽器完成設定
════════════════════════════════════════════════════════════

  1. 開啟瀏覽器,前往:https://192.168.1.50
     (首次進入會看到憑證安全警告,這是自簽憑證的正常現象,選擇繼續前往即可)

  2. 在設定精靈第一步貼上這組一次性設定碼:

     a1b2c3d4e5f6...

  3. 依精靈指示建立管理員帳號並取得本機授權指紋。

─ 授權指紋 ───────────────────────────────────────────────
  申請授權檔時請提供這串(與設定精靈頁顯示的相同):

     9f8e7d6c...(64 個字元)

畫面關掉了也不要緊,兩樣東西都查得回來。

設定碼用過即失效。需要再看一次:

sudo cat /srv/guidant-ai/pki/setup-token

機器碼(授權指紋)隨時可重新查看:

sudo guidant fingerprint

畫面接著還會印出兩段備忘,那些是後續才會用到的資訊,當下不需要做任何事

  • 接檢測 Agent(選用):說明雲端這一側已自動備妥,無需額外設定;要接 Agent 時的步驟見 第十章 10.5
  • 維運備忘:安裝紀錄與各設定檔的位置、常用維運子命令一覽(詳見 第四章)。

接著請翻到 第三章


2.4 憑證安全警告是正常的

先說結論:第一次用瀏覽器開站台一定會跳警告,這是預期行為,不是安裝失敗。

畫面上會寫「您的連線不是私人連線」或「憑證無效」之類的字。原因是安裝程式為這台機器簽的是自簽憑證:它能提供加密連線,但不是由公開的憑證機構簽發的,所以瀏覽器不認識它、只好先警告您。

處理方式:點「進階」→「繼續前往(不安全)」即可。

換成貴單位的正式憑證(選用)

若貴單位有內部憑證機構、或已為此網域申請了公開憑證,可以換上,換完瀏覽器就不會再警告。

這三步在做什麼:① 把現在的自簽憑證另存一份備份,② 用您的正式憑證覆蓋過去並設好權限,③ 重啟網站服務讓它讀到新憑證。

# ① 備份現有的自簽憑證
sudo cp /srv/guidant-ai/certs/server.crt /srv/guidant-ai/certs/server.crt.selfsigned
sudo cp /srv/guidant-ai/certs/server.key /srv/guidant-ai/certs/server.key.selfsigned

# ② 換上正式憑證(檔名必須完全一致)
sudo cp <您的憑證檔>.crt /srv/guidant-ai/certs/server.crt
sudo cp <您的私鑰檔>.key /srv/guidant-ai/certs/server.key
sudo chmod 600 /srv/guidant-ai/certs/server.key
sudo chmod 644 /srv/guidant-ai/certs/server.crt

# ③ 重啟網站服務讓它讀新憑證
sudo guidant restart guidant-fe

這裡用 restart 是對的:憑證檔是掛進容器的,換檔之後讓服務重讀即可,不需要重建容器。(restart 只有在改過設定檔時才不夠用,見 4.3。)

成功長什麼樣:重啟後 guidant-fe 健康,而且用瀏覽器開站台不再出現警告。

注意事項:

  • 檔名與路徑不可改server.crtserver.key),系統是照這兩個固定路徑讀的。
  • 憑證檔若有中繼憑證(憑證機構之間的接力證明),請把伺服器憑證與中繼憑證依序合併在同一個 .crt 檔內,否則部分瀏覽器仍會報錯。
  • 憑證的名稱(CN/SAN)必須包含使用者實際輸入的網址,否則仍會警告。
  • 🔴 私鑰換完之後不要放回一般可讀的位置,權限務必維持 600。
  • 憑證到期前記得更換,步驟同上。系統不會提醒您憑證到期
  • 重跑安裝程式時不會覆蓋您換上的正式憑證(偵測到憑證已存在就沿用)。

2.5 非互動安裝(自動化用,一般不需要)

先說結論:一般裝一台就用 2.2 的互動模式,這節可以跳過。

要把同一份參數重複用在多台機器,或要納入自動化流程時,才改用設定檔。

這四步在做什麼:① 從範例檔複製一份自己的設定檔,② 編輯它,③ 把權限收緊成只有管理員讀得到,④ 帶著設定檔執行安裝(就不會再問問題)。

cp install.conf.example install.conf
vi install.conf          # 編輯下面幾項
chmod 600 install.conf
sudo ./install.sh --config install.conf

install.conf 內常用的幾項:

GUIDANT_HOSTNAME=guidant.example.com    # 使用者連線用的網域或 IP
GUIDANT_DATA_DIR=/srv/guidant-ai        # 資料存放目錄
GUIDANT_HTTP_PORT=80                    # 對外 HTTP 埠
GUIDANT_HTTPS_PORT=443                  # 對外 HTTPS 埠
TZ=Asia/Taipei                          # 時區

⚠️ 對外埠改成非標準值之後,請直接用 https 網址進站。HTTP 的自動轉址是導向不帶埠號的 https://<主機>,非標準埠下會導錯。

自帶密碼(僅在貴單位資安政策要求時使用)

先說結論:絕大多數情況不要填,讓安裝程式自動產生就好。

只有在貴單位的資安政策要求「特權帳號密碼一律由自身的發放系統核發」時,才需要在 install.conf 填入:

DB_ADMIN_PASSWORD=<資料庫管理帳號密碼>
DB_APP_PASSWORD=<資料庫業務帳號密碼>
REDIS_PASSWORD=<Redis 密碼>

三行可以只填其中一兩行,沒填的照樣自動產生。

🔴 自帶密碼有四項字元限制,違反會在安裝時被擋下並說明原因:

密碼裡不允許 為什麼不允許
$ 會被設定檔解析器當成變數展開,密碼會少一段——安裝仍然成功、服務也全綠,但您保存的密碼與資料庫實際的密碼不一致
以引號開頭 整份設定檔解析失敗,安裝會在啟動資料庫時中止,而錯誤訊息完全不指向密碼
前後帶空白 會被靜默去掉,同第一項
含換行或 Tab 破壞設定檔結構

引號在密碼中間或結尾、空白在中間#、反引號都可以正常使用。

其他注意事項:

  • 登入簽章金鑰與兩支資料加密金鑰不開放自帶——它們不是給人登入用的憑證,是程式內部的加密材料。
  • 填了密碼之後 install.conf 就成為含明文密碼的檔案,權限務必 600,裝完請刪除或收進密碼保險庫
  • 互動安裝一律不問密碼。自帶密碼只能經 --config 提供。

2.6 安裝紀錄

結論:安裝從頭到尾的畫面輸出,都會同時存成一個檔案。

/srv/guidant-ai/log/install-<日期時間>.log
  • 純文字,不含任何密碼,可以直接以郵件附件傳給原廠。
  • 權限 600,內容含主機名稱、路徑與機器規格,請比照設定檔保管。

安裝卡在某一步、想知道進度時,另開一個終端機執行下面這行,畫面就會即時跟著跑。

sudo tail -f /srv/guidant-ai/log/install-*.log

若安裝在很前期就中止、上面的路徑還不存在,紀錄會留在畫面最後印出的 /tmp/... 路徑——該檔在主機重開機後會消失,請先複製出來


2.7 安裝失敗了怎麼辦

先說結論:安裝程式結束時會回一個退出碼,那個數字直接告訴您失敗在哪一類。

退出碼 意義 怎麼處理
0 成功
1 參數或前置狀態問題 依畫面訊息處理(訊息會給出明確的下一步)
2 環境檢查未通過 修正所有 項目後重跑。這一步不做任何變更,可安心重試
3 映像檔完整性或載入失敗 向原廠重新索取出貨包
4 建立資料庫失敗 附上安裝紀錄檔聯繫原廠
5 服務啟動或健康檢查未過 先看 sudo guidant logs <服務名>,再附紀錄檔聯繫原廠

在後段(⑤ 建庫、⑥ 儲存、⑦ 啟動)失敗、問題修好了想沿用已產生的設定重跑時,用下面這行。

這一步在做什麼:告訴安裝程式「我知道這台已經裝過,請往上面繼續,不要重來」。

sudo GUIDANT_REUSE_EXISTING_INSTALL=1 ./install.sh

這個模式會沿用已產生的密碼、金鑰與憑證,且不會重寫兩份設定檔(您手動調整過的內容會保留)。

為什麼要多這個開關:直接重跑會被「偵測到既有安裝」擋下(那道保護是為了避免覆寫別套系統)。多這一個開關,是要讓「往既有安裝上重跑」變成您當次自覺的動作,不會手滑觸發。