
我正在使用兩台 CentOS 伺服器。我沒有使用任何程式碼存儲庫。在 Jenkins 中,當我單擊“新專案”時,我看不到可以輸入目標伺服器的地方。我期望有一個地方可以為給定的建置配置目標伺服器(例如,運行 bash 命令或將檔案從 Jenkins 伺服器傳輸到目標伺服器)。由於 Jenkins 在 Linux 端以 Jenkins 使用者身分執行,因此無法以 root 身分進行 SSH。我想成為 root 並在從支援 Jenkins 的 Linux 伺服器傳輸檔案後執行命令。我可以使用 Jenkins 的「新專案」建置步驟中的本機 shell 命令來完成此操作。此類命令有一個自由文字欄位。但我不知道如何互動式地回應密碼挑戰。
在哪裡配置給定部署的目標伺服器?
我可以將 root 密碼硬編碼到 Jenkins 作業嗎?如果是這樣,我該怎麼做。我不想安裝 sshpass。
除了核心 Jenkins 之外,將檔案從一台 Linux 伺服器部署到另一台 Linux 伺服器還需要哪些外掛程式?
答案1
在 Jenkins 中,您使用標籤來定義專案的建置位置。建立新項目後,您將(在作業配置中)看到一個名為「限制此項目可以運行的位置」的複選框。這裡可以使用從節點名稱(例如slave4.mycompany)或建立一個標籤,該標籤是多個從節點的容器。一旦正確填寫,該作業將始終在給定的從節點上建立。
如果您需要更多功能,請嘗試 NodeLabel 參數插件 (nodelabelparameter)。您可以從“管理 Jenkins”>“管理插件”>“可用”來安裝它。
若要確定您在建置過程中位於哪個節點,您可以在兩個建置從站上手動設定持久環境變量,例如 $SLAVENAME 返回“buildslave1”,或在腳本中使用 linux“hostname”命令來識別當前上下文,並根據該輸出決定如何繼續。