利用 jcli 管理 Jenkins

原文地址:jenkins.io/zh/blog/201…java

做爲一名開發者,我一般像下面那樣使用 Jenkins:linux

  • 查找與我當前工做相關的任務git

  • 觸發任務構建github

  • 檢查構建日誌windows

有時候,我可能須要檢查插件更新中心,安裝新的插件,或者更新一個已有的插件。再或者,但願從本地上傳一個插件。全部的這些狀況,其實都沒有必要 訪問 UI 界面甚至是瀏覽器。我更傾向於使用命令行(CLI)來完成大部分的工做。例如:我可使用 kubectl 來管理個人 Kubernets 集羣, 建立或者修改 Kubernetes 資源。所以,我開始思考,「爲何不用命令行來管理 Jenkins 呢」?瀏覽器

什麼要創造新的輪子?

首先,我幾乎都已經忘記了那個早已存在的命令行,用 Java 編寫的 Jenkins CLI。讓我先 介紹一下如何使用這個命令行。bash

訪問 Jenkins 的頁面 http://localhost:8080/jenkins/cli/。你將會看到相似於 java -jar jenkins-cli.jar -s http://localhost:8080/jenkins/ help 的命令行。所以,須要下載一個 jar 文件。咱們能夠用命令 wget http://localhost:8080/jenkins/jnlpJars/jenkins-cli.jar 來下載。curl

此時,你應該能看到,這並非一個 Linux 風格的 CLI。請思考下面的幾個點:工具

  • 用戶必需要有一個 JRE 環境。這對於非 Java 開發者來講並不方便。ui

  • 命令行使用繁瑣,須要輸入不少字符。咱們每次都須要輸入 java -jar jenkins-cli.jar -s http://localhost:8080/jenkins/ 做爲命令的前綴。

  • 沒法使用一些流行的包管理器安裝,例如:brew 或 yum

固然,Java 版本的命令行和 Jenkins 的兼容性更好。可是,我指望在使用時能夠更簡單些。 所以,我決定使用 Golang 來編寫一個新的命令行,這樣能夠運行在多個平臺上。

這就是建立 jcli 的故事。

特性

  • 易於維護的 jcli 配置文件

  • 支持管理多個 Jenkins

  • 插件管理(列表、搜索、安裝、上傳)

  • 任務管理(搜索、構建、日誌)

  • 在瀏覽器中打開 Jenkins

  • 重啓 Jenkins

  • 支持鏈接代理

如何獲取?

你能夠從 jenkins-cli 的代碼倉庫中克隆 jcli。目前,咱們支持三個主流的操做 系統平臺: MacOS、Linux、和 Windows。

MacOS

你可使用 brew 安裝 jcli。

brew tap jenkins-zh/jcli
brew install jcli
複製代碼

Linux

在 Linux 下安裝也是很是的簡單。你只須要執行下面的命令便可:

curl -L https://github.com/jenkins-zh/jenkins-cli/releases/latest/download/jcli-linux-amd64.tar.gz|tar xzv
sudo mv jcli /usr/local/bin/
複製代碼

Windows

你能夠點擊 這裏找到最新的版本。 而後,下載 tar 文件,把解壓後的 jcli 拷貝到系統目錄下。

如何開始?

使用這個很是簡單。你安裝好 jcli 後,能夠經過下面的命令生成一個配置樣本:

$ jcli config generate
current: yourServer
jenkins_servers:
- name: yourServer
  url: http://localhost:8080/jenkins
  username: admin
  token: 111e3a2f0231198855dceaff96f20540a9
  proxy: ""
  proxyAuth: ""
# Goto 'http://localhost:8080/jenkins/me/configure', then you can generate your token.
複製代碼

在大多數狀況下,你應該只須要修改三個字段,包括:urlusername 和 token。好的,我相信你已經準備好了。 而後,就能夠經過下面的命令來檢查你的 Jenkins 中是否安裝了 github 插件:

jcli plugin list --filter name=github

最後,該命令行工具還處在研發的早期階段,咱們歡迎任何形式的貢獻!

相關文章
相關標籤/搜索