如果您在管理Windows服务器方面有一段时间了,毫无疑问您肯定有很多PowerShell脚本来执行那些常规但必要的任务,比如重置密码、收集日志数据或归档备份文件。您知道在Jenkins中使用PowerShell是一个好的选择吗?
您可能有定期运行的脚本,甚至可能设置了一个任务计划事件,以尝试自动化您的PowerShell脚本。
有一种更好的方法。
在本文中,您将学习如何在Windows上安装Jenkins并运行一个简单的PowerShell脚本。您将学习如何安装Jenkins,设置基本安全性,启用PowerShell插件,并运行一个任务来创建一个简单的文本文件,并输入参数。
本文旨在对Jenkins进行基本介绍。您将学习的配置并不一定适用于生产环境。
先决条件
本文大部分内容将是一个实例演示。如果您打算跟随操作,请确保已经满足以下几个先决条件。
运行Jenkins所需的要求非常低,任何现代计算机都可以胜任。本文中的示例都是基于运行在以下环境上的Jenkins:
- Windows 10 Enterprise v.1903
- PowerShell Core v6
雖然Jenkins可以在任何平台上運行,但我將專注於Windows 10企業版,以保持簡單。
安裝Jenkins
在確保具備先決條件後,讓我們安裝Jenkins。
安裝Jenkins非常簡單和直觀。前往 https://www.jenkins.io/download/ 下載長期支援(LTS)版本。有兩個版本可供選擇,即LTS版本和“每週”版本。 “每週”版本經常更新,可能不穩定。在本文中,我們使用LTS版本。這是最穩定的版本。
如下圖所示,有幾個選項可以選擇。選擇Windows版本開始下載。

一旦下載安裝程序,解壓縮zip文件並運行安裝程序,接受所有默認值。安裝過程很簡單。
安裝完成後,Jenkins將在瀏覽器中打開入門指南頁面。該頁面包含初次設置Jenkins所需的管理員密碼。如下所示,Jenkins告訴我要閱讀位於 C:\Program Files (x86)\Jenkins\secrets\initialAdminPassword 的文本文件。

前往所示的文件,打開它,複製顯示的密碼,並將其用作入門指南頁面上的管理員密碼。
安裝插件
第一次登錄後,Jenkins將完成最終設置,然後會詢問要安裝哪些插件。如下圖所示,有幾個選擇。
選擇安裝建議插件將根據最常見的使用場景安裝推薦的插件集。這些插件包括身份驗證提供者、GitHub互動和Java擴展的插件。選擇要安裝的插件允許您只從所有可用插件列表中安裝所需的插件。
高亮顯示安裝建議插件並點擊確定。這個過程將花費幾分鐘的時間來安裝初始插件,所以現在是喝杯咖啡的好時機。

創建管理用戶
插件安裝完成後,下一步是創建我們的第一個用戶。這個第一個用戶是Jenkins的管理員,將具有全局權限,就像Windows Server的企業管理員一樣。您可以在下面看到創建第一個管理員用戶頁面的外觀。

從這一點開始,只有輸入有效的用戶名和密碼才能訪問Jenkins界面。
設置Jenkins管理URL
最後一步是設置Jenkins服務運行的URL。該URL是管理Jenkins程序的界面,理想情況下應該設置為完全合格的域名(FQDN)。將其設置為FQDN將允許遠程訪問,就像訪問網站一樣。為了這篇文章和簡化問題,接受默認URL。

設置安全性
安裝完成後,讓我們配置身份驗證。如果尚未打開主控台,請導航至主控台。從主控台,點擊管理 Jenkins,然後點擊配置全局安全性以打開安全設定,如下所示。

在配置全局安全性頁面上,您會看到一些選項可供選擇。對於本文,我們將使用Jenkins 的內建使用者資料庫,以保持事情簡單。同時,建議取消選中「允許使用者註冊」,如下圖所示。如果選中此選項,將允許任何使用者創建帳戶並獲得對 Jenkins 的訪問權限。。
從下圖中可以看到其他身份驗證選項。
- 委派給 Servlet 容器 – 如果您已經在 Jenkins 中設定了 Docker 容器,則可以透過容器進行身份驗證。
- LDAP – 如果您已經有要用於身份驗證的 Active Directory,則可以選擇此選項。
接下來,選擇已登入的使用者可以進行任何操作選項。在此模式下,每個已登入的使用者都將對 Jenkins 擁有完全控制權。對於生產環境來說,這可能不是一個好主意,因為這允許任何使用者對設定進行更改。

啟用 Jenkins 插件中的 PowerShell
完成基本安全設定後,現在是時候配置 Jenkins 插件中的 PowerShell 了。要安裝 PowerShell 插件,請導航至主控台,點擊管理 Jenkins,然後點擊管理插件,如下圖所示。

有數百個插件,所以找到PowerShell插件的最佳方式是搜索。在過濾器欄中輸入“PowerShell”,並從列表中選擇它。勾選下面的框,以啟用它。這將允許Jenkins直接將PowerShell命令和腳本直接寫入Jenkins中的文本框,並允許Jenkins調用PowerShell而無需啟動單獨的PowerShell控制台。
您可以在下面看到這可能是什麼樣子。

啟用插件後,Jenkins可以運行PowerShell作業。
在Jenkins中創建一個PowerShell作業
PowerShell在Jenkins插件的安裝完成。現在開始有趣的事情了。讓我們創建一個作業。
在Jenkins中,作業被定義為一系列要完成的任務。一個常見的情況是,當開發人員檢入代碼時,作業將開始編譯程序。類似於Windows服務器中的任務管理器。
我們要設置的作業是檢查c:\temp目錄並在該目錄中插入一個帶有自定義消息的文本文件。
Jenkins有不同類型的項目,有時稱為流水線,專注於特定目標。不同類型的項目將根據您選擇的項目類型具有不同的設置、選項和參數。您可以在Jenkins網站上了解有關項目類型及其使用時機的更多信息。Jenkins網站上可以找到更多信息。
從主儀表板中點擊新建項目。對於工作名稱,輸入創建文本文件。這是任意的,但最好將其標記為有意義的內容。
在這篇文章中,我們將使用自由風格專案。這提供了最大的靈活性來創建我們的工作。選中自由風格專案,滾動到底部,然後點擊確定。

這個工作將是一個帶參數的專案。這意味著我們可以提示用戶輸入,並將該輸入傳遞給工作。例如,假設我們有一個在 Jenkins 工作中將日誌文件複製到特定目錄的 PowerShell 工作。我們可以添加一個提示,當我們運行該工作時,詢問要包含在構建中的文件名。
從下拉列表中選中此專案是帶參數的項目。點擊添加參數下拉並選擇字符串參數。字符串參數是您要在文本文件中包含的消息的位置。

然後添加第二個選擇參數。它應該看起來像下面的截圖。

現在,工作設置應該看起來像下面的屏幕截圖。

向下滾動到 建立 部分。點擊小箭頭,選擇 Windows PowerShell。這樣 Jenkins 就知道我們正在運行一個 PowerShell 腳本。這也是我們輸入 PowerShell 腳本的地方。這個工作現在已經準備好了。點擊保存。

對於我們在 Jenkins 工作中的 PowerShell 的示例腳本,讓我們在臨時目錄中創建一個文件並添加一條簡單的消息。
這是一個簡單的腳本,如果根目錄下還沒有臨時目錄,它將創建臨時目錄並在該目錄中創建一個文本文件。
提示:首先在 VSCode 或其他編輯器中編寫腳本,然後將其粘貼到框中。
運行 Jenkins 工作中的 PowerShell
最後,您已經準備好運行第一個工作了。讓我們返回到主控制面板,您將在主控制面板中看到列出的 創建文本文件 工作。如下所示。

點擊右側的時鐘圖標,打開工作表單。

在消息框中,輸入要插入文本文件中的文本,然後點擊建立。一旦建立完成,點擊控制台輸出。控制台輸出顯示工作的狀態以及工作運行是否成功。

現在只需打開文件管理器並檢查文件。導航到臨時目錄並打開文本文件。它將與您在建立消息框中輸入的文本相同。

摘要
你現在對Jenkins中的PowerShell有了基本的了解。它是一個強大的工具,可以用來管理你的PowerShell腳本並自動化所有事情!