ubuntu 下搭建 Jenkins 並配置部署環境

轉載:https://www.cnblogs.com/shuoer/p/9471839.html

 

前言:因爲要搭建Jenkins,試了很多辦法都不行,後來找到這篇博客裝好了,分享下,不過我有個疑問,爲什麼要裝tomcat?

環境說明

兩臺主機

  • 本地服務器 192.168.1.17 jenkins服務器及dev環境
  • 阿里雲 :112.74.184.170 代碼倉庫及上線環境

思路:
我想實現用本地的jenkins服務器控制dev環境和線上release環境
由於手頭服務器有限,所以jenkins服務器和dev環境在同一臺服務器上
release環境和代碼倉庫在同一臺服務器上

ubuntu 安裝 JDK

ubuntu的安裝我們採取最簡單的方式安裝 直接用apt-get的方式

//添加java的ppa
sudo add-apt-repository ppa:webupd8team/java
//更新軟件源
sudo apt-get update
//安裝java8
sudo apt-get install oracle-java8-installer

安裝器會提示你同意 oracle 的服務條款,選擇 ok
然後選擇yes 即可

ubuntu 安裝tomcat8

通過apt安裝 tomcat8

sudo apt-get install tomcat8 tomcat8-docs tomcat8-examples tomcat8-admin -y

安裝完成後的配置文件放置在/var/lib/

#啓動
service tomcat8 start
#狀態
service tomcat8 status
#停止
service tomcat8 stop

配置管理員的權限

sudo vim /var/lib/tomcat8/conf/tomcat-users.xml
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="root" password="123456" roles="manager-gui,admin-gui"/>

重啓服務測試

service tomcat8 restart

安裝Jenkins

參考官網 https://pkg.jenkins.io/debian-stable/

這裏我們使用Jenkins的官方提供的軟件倉庫,要使用官方的軟件倉庫之前必須將軟件倉庫的祕鑰添加到本地

#添加官方軟件倉庫的祕鑰到本地的apt祕鑰中
$ wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -

將官方提供的軟件倉庫地址加入到本地的apt軟件源中,本地用於存放軟件源的文件在/etc/apt/sources.list

#將地址添加進本地的軟件源列表
$ deb https://pkg.jenkins.io/debian-stable binary/

更新我們本地的軟件源緩存,然後直接安裝jenkins

$ sudo apt-get update
$ sudo apt-get install jenkins

啓動jenkis

sudo /etc/init.d/jenkins [start|restart|stop]

安裝jenkins

打開我們的瀏覽器輸入jenkins的服務器地址,在這裏我的是192.168.1.17
http://192.168.1.17:8080
但是呢有時候這個端口就會被萬惡的tomcat佔用我們不得不修改jenkins的端口(此時如果你打開的是jenkins此步驟可以省略)
修改jenkins端口

$ sudo vim /etc/default/jenkins

#修改如下內容
HTTP_PORT=8085

#重啓jenkins服務
$ sudo /etc/init.d/jenkins restart

首次進入jenkins如要輸入密碼,密碼位置:/var/lib/jenkins/secrets/initialAdminPassword

插件安裝

點擊“Install suggested plugins”,即安裝推薦的插件:

開始安裝插件,安裝插件比較慢,要多等一會兒

額...***會快很多哦!!!

創建管理員賬戶

創建任務


由於我不需要什麼後臺的編譯只需要編譯node,所以我直接選擇了利用shell腳本去構建,所以我甚至都不需要配置git,全部shell就可以了

填入我們需要執行的shell腳本(本人小白一個shell寫的太爛,大家不要介意,原諒我吧!)

保存之後,點擊立即構建,你會發現死活都編譯不過去,各種失敗!接下來我們逐個擊破它!

沒有權限的問題

在Ubuntu下,當執行apt-get install方式安裝Jenkins的時候,會自動創建jenkins用戶,這是一個沒有用戶目錄的賬號。
可想而知jenkins用戶肯定是沒有什麼權限的,所以我們要想辦法讓jenkins用shuoer賬戶運行

將shuoer用戶添加到jenkins用戶組中,讓shuoer用戶擁有管理jenkins的權限

$ sudo gpasswd -a shuoer jenkins


現在root可以管理jenkins了,我們需要配置jenkins的配置文件讓jenkins用shuoer身份運行,配置文件在/etc/default/jenkins

JENKINS_USER=shuoer
JENKINS_GROUP=shuoer

ok,重啓jenkins

$ sudo /etc/init.d/jenkins restart


由於jenkins的工作目錄在/var/lib/jenkins我們查看下它的所屬用戶和所屬組

這裏顯然是不對的,由於我們把jenkins的默認運行用戶改成了shuoer,接着改

$ sudo chown -R shuoer:shuoer /var/lib/jenkins


再重啓jenkins

$ sudo /etc/init.d/jenkins restart

ok,沒毛病了,開始構建

構建遠程服務器

以上都是構建本地,也可以認爲是dev環境,假如需要構建test環境怎麼辦?(假設test服務器在阿里雲)
可以藉助ssh的強大功能,ssh不僅能登陸遠程主機,還可以在不登陸遠程主機的情況下讓遠程主機執行命令,藉助這個特性我們可以做很多的事情!比如自動化!等等!
ssh 遠程主機用戶名@主機地址 "需要執行的命令"(前提是必須要做到免密登陸哦)
舉個例子:

#這樣就可以在不登陸的情況下把遠程主機的磁盤使用情況給我們輸出出來
ssh [email protected] "df -h" 

執行多行命令呢?

ssh [email protected] "pwd; df -h; /home/shuoer/shell.sh"

讓遠程主機執行本地的shell腳本呢?

#前提是你本地得有這個shell.sh腳本
ssh [email protected] < shell.sh 

ok,我們新建一個構建遠程服務器的任務

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章