Jenkins 與gitlab之間的初級搭建

前言


在搭建了 react-ssr 以後,本身又搗鼓了一下 jenkins 與 gitlab 之間配合使用,讓咱們在 push 代碼的時候就能夠打包構建了,能夠方便咱們部署。java

Jenkins


Jenkins 是一個開源軟件項目,是基於Java開發的一種持續集成工具,用於監控持續重複的工做,旨在提供一個開放易用的軟件平臺。其實基於個人理解就是幫咱們構建項目和管理項目的一個工具。node

Jenkins安裝


首先必須得有一個本身的服務器和linux實例,而文章中主要使用的服務器系統是:react

Linux version 3.10.0-514.26.2.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Tue Jul 4 15:04:05 UTC 2017
複製代碼

安裝jdk

由於是jenkins是基於java開發的,咱們必須得安裝一下 jdklinux

yum install -y java-1.8.0-openjdk-devel.x86_64
複製代碼

沒有安裝 yum 的自行百度哈...git

出現如下頁面證實安裝成功。web

安裝成功

安裝node

由於咱們的web項目是是基於 node 開發的,因此 node 也是必須安裝的。shell

咱們能夠安裝在/home/www中npm

cd /home/
mkdir www
cd www
wget https://nodejs.org/dist/v10.16.0/node-v10.16.0-linux-x64.tar.xz
tar xvf node-v10.16.0-linux-x64.tar.xz #解壓
mv node-v10.16.0-linux-x64 node-v10.16.0 #改短名
複製代碼

創建軟鏈接centos

ln -s /home/www/node-v10.16.0/bin/node /usr/local/bin/node

ln -s /home/www/node-v10.16.0/bin/node /usr/bin/node

ln -s /home/www/node-v10.16.0/bin/npm /usr/local/bin/npm

ln -s /home/www/node-v10.16.0/bin/npm /usr/bin/npm
複製代碼

創建成功瀏覽器

創建成功

至此,咱們的node就安裝成功了。

安裝yarn包管理和pm2

yarn和pm2咱們都是基於node上安裝的,yarn是一個包的管理工具,而pm2則是管理咱們node進程的。

安裝pm2

npm install pm2 -g

ln -s /home/www/node-v10.16.0/bin/pm2 /usr/local/bin/pm2

ln -s /home/www/node-v10.16.0/bin/pm2 /usr/bin/pm2

pm2 -v
複製代碼

安裝yarn

npm install yarn -g

ln -s /home/www/node-v10.16.0/bin/yarn /usr/local/bin/yarn

ln -s /home/www/node-v10.16.0/bin/yarn /usr/bin/yarn

yarn -v
複製代碼

安裝jenkins

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

yum install jenkins

service jenkins start
複製代碼

安裝成功

安裝成功

打開瀏覽器輸入 ip:8080 便可打開jenkins工做臺。

工做臺

而後輸入提示命令後獲取密碼, 輸入密碼後繼續。

推薦插件

選擇安裝推薦的插件,等待一段安裝時間後便可進入建立用戶。

建立用戶

建立成功後而且綁定ip便可進入工做臺

工做臺

安裝git

yum install git
複製代碼

Jenkins配置


安裝插件

安裝必須的插件:Gitlab Hook、Build Authorization Token Root、Publish Over SSH、Gitlab Authentication、Gitlab、Git Parameter

安裝插件

添加憑據

安裝成功後咱們能夠建立一個密鑰用做和gitlab通訊,在服務器上咱們輸入

sudo -u jenkins ssh-keygen -t rsa
複製代碼

以jenkins用戶的身份來建立密鑰,獲得:

密鑰

而後咱們把 id_rsa 的內容輸入到 jenkins 的憑據中,依次點擊如下按鈕

jenkins的憑據

添加憑據

jenkins的憑據

建立item

點擊新建item,建立本身的一個工程

新建item

進入建立 item 頁面,描述能夠按照本身的項目來寫,在源碼管理中選擇 git

源碼管理

url 選擇本身 git 的地址,憑證就用剛剛建立的,出現紅色的錯誤就證實咱們的 gitlab 上沒有配置好咱們的公鑰。

gitlab

來到 gitlab 上添加 sshkey 中,填寫咱們剛剛建立的 id_rsa.pub。

而後回到 jenkins 上,從新選擇憑證就能夠發現報錯消失。

在構建觸發器上咱們選擇 gitlab 觸發

gitlab 觸發

構建環境咱們能夠選擇在構建先後的一些操做,但我這裏直接選擇本身執行一些shell

執行一些shell

shell腳本主要是爲了複製 gitlab 上拉取下來的代碼,而後執行 yarn install 和 start。

最後保存。

gitlab配置hooks

咱們回到gitlab上,配置咱們的hooks

hooks

這裏的url咱們則填寫剛剛在配置item中的url

hooks url

添加完成後咱們test一下,發現會出現如下錯誤。

錯誤

這時候咱們須要把 jenkins 配置中把 git 配置下的 Enable authentication for '/project' end-point 去掉,再次嘗試test。

成功

在 jenkins 工做臺中也出現了構建的進程。

構建的進程

查看進程的控制檯輸出,出現如下問題:

權限問題

這時候在Jenkins宿主服務器上運行以下命令 $ sudo visudo 在文件的末尾加上一行 jenkins ALL=(ALL) NOPASSWD: ALL 保存文件,從新構建。

構建成功

至此,構建成功。

總結


其實也並非很難,但一開始在用戶權限裏面踩了不少坑,由於我一開始在root目錄下安裝的jenkins,因此咱們的jenkins用戶就一直讀取不了配置文件,後來通過幾個大佬的指導下,決定在var目錄下安裝jenkins,在home下安裝咱們的node,這樣咱們的Jenkins用戶就能夠訪問咱們的node了,同理yarn,pm2都同樣。

相關文章
相關標籤/搜索