在搭建了 react-ssr 以後,本身又搗鼓了一下 jenkins 與 gitlab 之間配合使用,讓咱們在 push 代碼的時候就能夠打包構建了,能夠方便咱們部署。java
Jenkins 是一個開源軟件項目,是基於Java開發的一種持續集成工具,用於監控持續重複的工做,旨在提供一個開放易用的軟件平臺。其實基於個人理解就是幫咱們構建項目和管理項目的一個工具。node
首先必須得有一個本身的服務器和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
複製代碼
由於是jenkins是基於java開發的,咱們必須得安裝一下 jdklinux
yum install -y java-1.8.0-openjdk-devel.x86_64
複製代碼
沒有安裝 yum 的自行百度哈...git
出現如下頁面證實安裝成功。web
由於咱們的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咱們都是基於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
複製代碼
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便可進入工做臺
yum install git
複製代碼
安裝必須的插件: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 的憑據中,依次點擊如下按鈕
添加憑據
點擊新建item,建立本身的一個工程
進入建立 item 頁面,描述能夠按照本身的項目來寫,在源碼管理中選擇 git
url 選擇本身 git 的地址,憑證就用剛剛建立的,出現紅色的錯誤就證實咱們的 gitlab 上沒有配置好咱們的公鑰。
來到 gitlab 上添加 sshkey 中,填寫咱們剛剛建立的 id_rsa.pub。
而後回到 jenkins 上,從新選擇憑證就能夠發現報錯消失。
在構建觸發器上咱們選擇 gitlab 觸發
構建環境咱們能夠選擇在構建先後的一些操做,但我這裏直接選擇本身執行一些shell
shell腳本主要是爲了複製 gitlab 上拉取下來的代碼,而後執行 yarn install 和 start。
最後保存。
咱們回到gitlab上,配置咱們的hooks
這裏的url咱們則填寫剛剛在配置item中的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都同樣。