Jenkins 创建一个freestyle的Job
1、執行簡單命令或腳本
job配置頁面:
由于每次構建都會生成很多構建產物,如果頻繁構建會占用很多的空間,我們可以通過這幾個選項控制構建產物的保留。一般建議選擇保留最近5-10的構建為適宜。
其他參數我們在后面再講。
保存后,我們就創建了一個簡單的freestyle job,點擊意即構建執行一下,看看結果:
通過這個小例子,我們可以總結如下幾點:
1、可以使用Jenkins在頁面執行任何需要在linux命令行的操作;
2、就是我們前面講到的,一定不要在生產環境中用root用戶啟動jenkins。
2、配置使用Gitlab
我們還是使用前面的my-freestyle Job,配置Job從Gitlab拉取frontend的代碼到jenkins。
此處的錯誤是我們現在還沒有配置jenkins連接到Gitlab,由于Jenkins只是拉取Gitlab的代碼,所以我們可以使用Gitlab的Deploy Key。
然后切換到frontend 倉庫:
我們再次打開my-freestyle Job配置頁面,
執行構建后,我們現在我們已經把代碼拉到了我們Job的工作區
3、代碼發布
上面的示例我們已經實現Gitlab拉取地Jenkins本地,下面接下上面的示例,我們實現將代碼發布到我們的服務器:
要實現無交互式的傳輸文件,執行命令,我們首先要保證Jenkins本機可以免密登錄到目標主機。
[root@node3 ~]# ssh-copy-id -i .ssh/id_rsa.pub 192.168.56.11 /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: ".ssh/id_rsa.pub" The authenticity of host '192.168.56.11 (192.168.56.11)' can't be established. ECDSA key fingerprint is SHA256:lHsG8JxgHwQ3/xdLN/q+h8JtvlWKhtIJn0Zw2t99gb8. ECDSA key fingerprint is MD5:cf:dd:3e:ba:5e:75:24:ce:d4:cf:4f:db:63:3d:8d:6e. Are you sure you want to continue connecting (yes/no)? yes /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys root@192.168.56.11's password: Number of key(s) added: 1Now try logging into the machine, with: "ssh '192.168.56.11'" and check to make sure that only the key(s) you wanted were added.[root@node3 ~]# ssh 192.168.56.11 Last login: Thu Dec 7 08:50:52 2017 from 192.168.56.1 [root@node1 ~]# exit logout Connection to 192.168.56.11 closed.我們實現將從Git拉到的代碼打包,然后發布到node1的/data/web目錄下。
編輯我們的Job,在構建處輸入如下代碼:
構建執行成功后:
我們在Jenkins的工作區my-freestyle目錄中生成web-11.tar.gz包,并且已經傳送到了node1要求的目錄下。
在這里我們作以下兩點解釋:
1、構建過程中命令執行的當前目錄為:Jenkins主目錄下workspace目錄下Jobname目錄;
2、我們可以在腳本中使用Jenkins的各種環境變量,調用方式和我們在linux中調用系統變更方式相同,我們可以使用如下方式查看Jenkins的所有環境變量:
4、參數化構建
上一節中我們介紹了如何使用Jenkins的環境變量,那么我們是不是可以在構建過程中,自定義變量,答案是肯定的,下面我們介紹Jenkins的參數化構建:
配置項目,點擊參數化構建過程:
我們看到有多好種類型的參數,我們常用的choice和string。
choice給出多個選項,構建時可以手動選擇參數,默認是第一行數據。
2. string Parameter:
string提供一個文本輸入框,使用字符串值的參數變量。
我們添加兩個參數:
然后在我們腳本中調用:
保存后,我們發現:
點擊Build with parameters:
點擊開始構建,查看構建結果如下:
還有很多其他的可用參數:Boolean Parameter提供一個布爾選擇,password Parameter參數提供一個類似密碼的輸入框,Git Parameter可以選擇需要簽出代碼的分支、標簽等。
5、Git commit觸發Jenkins 構建
本次實驗,我們新建一個freestyle Job,實現開發在本地向frontend 倉庫dev 分支push 代碼,Jenkins自動拉取dev分支的代碼,然后進行構建后將代碼發布到指定的服務器。
實現Jenkins與Gitlab的聯動需要安裝:Gitlab Authentication plugin、GitLab Plugin這兩個插件。
系統管理—系統設置
我們轉到GitLab上生成一個token:
我們復制生成的token,添加到jenkins:
選擇剛才生成的認證
3. 新建frontend Job:
我們使用復制的方式創建新的Job,
我們發現新生成的frontend-job配置與my-freestyle一樣,我們可以在此基礎做改動。
源碼管理部分:我們選擇從dev分支拉取代碼
構建觸發器部分:
此選項主要配置Gitlab如何觸發Jenkins Job構建,這里我們配置只有dev分支的push操作會觸發構建,并生成一個token,在前面我們配置了Jenkins可以訪問Gitlab,但是Gitlab并不能訪問Jenkins,此的token用于配置Gitlab訪問Jenkins(我們后面介紹)。
構建部分我們設置如下:
4. 配置Gitlab倉庫連接Jenkins
在Gitlab中選擇frontend倉庫,點擊settings下的Integrations:
URL與Secret Token的值來自剛才我們在Jenkins配置構建觸發器部分,見下圖。
完成配置后,我們進行測試,
總結
以上是生活随笔為你收集整理的Jenkins 创建一个freestyle的Job的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Jenkins 升级、迁移、备份
- 下一篇: Jenkins 创建Maven项目