日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Jenkins 创建一个freestyle的Job

發(fā)布時間:2024/5/7 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Jenkins 创建一个freestyle的Job 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、執(zhí)行簡單命令或腳本



job配置頁面:

由于每次構(gòu)建都會生成很多構(gòu)建產(chǎn)物,如果頻繁構(gòu)建會占用很多的空間,我們可以通過這幾個選項(xiàng)控制構(gòu)建產(chǎn)物的保留。一般建議選擇保留最近5-10的構(gòu)建為適宜。

其他參數(shù)我們在后面再講。


保存后,我們就創(chuàng)建了一個簡單的freestyle job,點(diǎn)擊意即構(gòu)建執(zhí)行一下,看看結(jié)果:




通過這個小例子,我們可以總結(jié)如下幾點(diǎn):

1、可以使用Jenkins在頁面執(zhí)行任何需要在linux命令行的操作;

2、就是我們前面講到的,一定不要在生產(chǎn)環(huán)境中用root用戶啟動jenkins。

2、配置使用Gitlab

我們還是使用前面的my-freestyle Job,配置Job從Gitlab拉取frontend的代碼到j(luò)enkins。



此處的錯誤是我們現(xiàn)在還沒有配置jenkins連接到Gitlab,由于Jenkins只是拉取Gitlab的代碼,所以我們可以使用Gitlab的Deploy Key。

  • 在Jenkins本地生成SSH Key:
  • [root@node3 ~]# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:R4I1NWcI//trqY6fvAdZZB0v8GMFkkBbwcDH/CAxtkA root@node3 The key's randomart image is: +---[RSA 2048]----+ | .E=XOBo.+o| | o =+OB+o.o| | . . =o == .| | o . .oo | | S . .o | | . o. | | .. . | | o o+ | | .oB=o. | +----[SHA256]-----+
  • 配置Gitlab Deploy Key




    然后切換到frontend 倉庫:



  • 安裝git并本地測試
  • [root@node3 ~]# yum install git –y [root@node3 ~]# git clone git@192.168.56.12:web-site/frontend.git Cloning into 'frontend'... The authenticity of host '192.168.56.12 (192.168.56.12)' can't be established. ECDSA key fingerprint is SHA256:SjPoetHYvGBI08VxTdzYOys+QpjR5vLNbU9Obs2Lx9Q. ECDSA key fingerprint is MD5:39:3e:52:a1:45:9b:3e:23:72:e6:0d:0e:76:00:17:55. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.56.12' (ECDSA) to the list of known hosts. remote: Counting objects: 34, done. remote: Compressing objects: 100% (23/23), done. remote: Total 34 (delta 6), reused 18 (delta 0) Receiving objects: 100% (34/34), done. Resolving deltas: 100% (6/6), done.

    我們再次打開my-freestyle Job配置頁面,

    執(zhí)行構(gòu)建后,我們現(xiàn)在我們已經(jīng)把代碼拉到了我們Job的工作區(qū)

    3、代碼發(fā)布

    上面的示例我們已經(jīng)實(shí)現(xiàn)Gitlab拉取地Jenkins本地,下面接下上面的示例,我們實(shí)現(xiàn)將代碼發(fā)布到我們的服務(wù)器:

  • 配置免密登錄
  • 要實(shí)現(xiàn)無交互式的傳輸文件,執(zhí)行命令,我們首先要保證Jenkins本機(jī)可以免密登錄到目標(biāo)主機(jī)。

    [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.
  • 編寫發(fā)布腳本
  • 我們實(shí)現(xiàn)將從Git拉到的代碼打包,然后發(fā)布到node1的/data/web目錄下。

    編輯我們的Job,在構(gòu)建處輸入如下代碼:

    構(gòu)建執(zhí)行成功后:



    我們在Jenkins的工作區(qū)my-freestyle目錄中生成web-11.tar.gz包,并且已經(jīng)傳送到了node1要求的目錄下。

    在這里我們作以下兩點(diǎn)解釋:

    1、構(gòu)建過程中命令執(zhí)行的當(dāng)前目錄為:Jenkins主目錄下workspace目錄下Jobname目錄;

    2、我們可以在腳本中使用Jenkins的各種環(huán)境變量,調(diào)用方式和我們在linux中調(diào)用系統(tǒng)變更方式相同,我們可以使用如下方式查看Jenkins的所有環(huán)境變量:

    4、參數(shù)化構(gòu)建

    上一節(jié)中我們介紹了如何使用Jenkins的環(huán)境變量,那么我們是不是可以在構(gòu)建過程中,自定義變量,答案是肯定的,下面我們介紹Jenkins的參數(shù)化構(gòu)建:

    配置項(xiàng)目,點(diǎn)擊參數(shù)化構(gòu)建過程:

    我們看到有多好種類型的參數(shù),我們常用的choice和string。

  • choice Parameter
  • choice給出多個選項(xiàng),構(gòu)建時可以手動選擇參數(shù),默認(rèn)是第一行數(shù)據(jù)。


    2. string Parameter:

    string提供一個文本輸入框,使用字符串值的參數(shù)變量。

    我們添加兩個參數(shù):

    然后在我們腳本中調(diào)用:

    保存后,我們發(fā)現(xiàn):

    點(diǎn)擊Build with parameters:

    點(diǎn)擊開始構(gòu)建,查看構(gòu)建結(jié)果如下:

    還有很多其他的可用參數(shù):Boolean Parameter提供一個布爾選擇,password Parameter參數(shù)提供一個類似密碼的輸入框,Git Parameter可以選擇需要簽出代碼的分支、標(biāo)簽等。

    5、Git commit觸發(fā)Jenkins 構(gòu)建

    本次實(shí)驗(yàn),我們新建一個freestyle Job,實(shí)現(xiàn)開發(fā)在本地向frontend 倉庫dev 分支push 代碼,Jenkins自動拉取dev分支的代碼,然后進(jìn)行構(gòu)建后將代碼發(fā)布到指定的服務(wù)器。

  • 安裝插件
  • 實(shí)現(xiàn)Jenkins與Gitlab的聯(lián)動需要安裝:Gitlab Authentication plugin、GitLab Plugin這兩個插件。

  • 配置Jenkins連接Gitlab
  • 系統(tǒng)管理—系統(tǒng)設(shè)置


    我們轉(zhuǎn)到GitLab上生成一個token:




    我們復(fù)制生成的token,添加到j(luò)enkins:

    選擇剛才生成的認(rèn)證

    3. 新建frontend Job:

    我們使用復(fù)制的方式創(chuàng)建新的Job,


    我們發(fā)現(xiàn)新生成的frontend-job配置與my-freestyle一樣,我們可以在此基礎(chǔ)做改動。

    源碼管理部分:我們選擇從dev分支拉取代碼

    構(gòu)建觸發(fā)器部分:


    此選項(xiàng)主要配置Gitlab如何觸發(fā)Jenkins Job構(gòu)建,這里我們配置只有dev分支的push操作會觸發(fā)構(gòu)建,并生成一個token,在前面我們配置了Jenkins可以訪問Gitlab,但是Gitlab并不能訪問Jenkins,此的token用于配置Gitlab訪問Jenkins(我們后面介紹)。

    構(gòu)建部分我們設(shè)置如下:

    4. 配置Gitlab倉庫連接Jenkins

    在Gitlab中選擇frontend倉庫,點(diǎn)擊settings下的Integrations:


    URL與Secret Token的值來自剛才我們在Jenkins配置構(gòu)建觸發(fā)器部分,見下圖。


    完成配置后,我們進(jìn)行測試,

    [root@node1 frontend]# git checkout dev Already on 'dev' Your branch is up-to-date with 'origin/dev'. [root@node1 frontend]# git branch1-index2-news * devmaster [root@node1 frontend]# vim index.html [root@node1 frontend]# git add . [root@node1 frontend]# git commit -m "modify index.html" [dev 17365f9] modify index.html1 file changed, 1 insertion(+) [root@node1 frontend]# git push origin dev Counting objects: 3, done. Delta compression using up to 2 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 291 bytes | 0 bytes/s, done. Total 3 (delta 1), reused 0 (delta 0) remote: remote: To create a merge request for dev, visit: remote: http://192.168.56.12/web-site/frontend/merge_requests/new?merge_request%5Bsource_branch%5D=dev remote: To 192.168.56.12:web-site/frontend.gita33914c..17365f9 dev -> dev



    總結(jié)

    以上是生活随笔為你收集整理的Jenkins 创建一个freestyle的Job的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。