Jenkins - 各平台環境搭建


before

來自官網的安裝教程:https://www.jenkins.io/zh/doc/book/installing/
這里演示了在Linux和Windows平台的環境搭建,至於Mac.....再說吧

由於Jenkins基於Java開發,所以,Jenkins的運行依賴Java JRE(java runtime environment)環境。所以,我們要想使用Jenkins,必須:

  • 機器要求
    • 256MB內存,建議大於512MB
    • 10GB的硬盤空間(用於Jenkins和docker鏡像)
  • 需要安裝
    • Java 8及以上版本。
    • Docker

Java JDK的安裝

各平台安裝Java JDK:https://www.cnblogs.com/Neeo/articles/11954283.html

Jenkins下載地址

官網:https://jenkins.io/zh/

官網下載鏈接:https://jenkins.io/zh/download/

相關軟件百度雲地址

鏈接:https://pan.baidu.com/s/1KVGiuH5-diz8OK11C--CFA 提取碼:0ek2

linux環境:Tomcat部署Jenkins

虛擬機centos7.3 + Tomcat 8.5.55 + Jenkins

安裝過程如下,簡單來說就是下載Tomcat解壓並且重命名,然后下載war包,之后啟動Tomcat服務。

[root@C ~]# cd /opt/
[root@C opt]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.55/bin/apache-tomcat-8.5.55.tar.gz
[root@C opt]# tar -zxvf apache-tomcat-8.5.55.tar.gz  && rm -rf apache-tomcat-8.5.55.tar.gz
[root@C opt]# mv apache-tomcat-8.5.55/ tomcat8
[root@C opt]# cd tomcat8/webapps/
[root@C webapps]# pwd
/opt/tomcat8/webapps
[root@C webapps]# wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
[root@C webapps]# ls
docs  examples  host-manager  jenkins.war  manager  ROOT
[root@C webapps]# ../bin/startup.sh 
Using CATALINA_BASE:   /opt/tomcat8
Using CATALINA_HOME:   /opt/tomcat8
Using CATALINA_TMPDIR: /opt/tomcat8/temp
Using JRE_HOME:        /usr/local/jdk1.8.0_171/jre
Using CLASSPATH:       /opt/tomcat8/bin/bootstrap.jar:/opt/tomcat8/bin/tomcat-juli.jar
Tomcat started.

然后獲取初密碼瀏覽器訪問即可:http://ip:8080/jenkins/:

[root@C webapps]# cat /root/.jenkins/secrets/initialAdminPassword 
8ce68dfc32fa4385be5f5b0a1a536a47

修改update鏈接:

[root@r ~]# cat /root/.jenkins/hudson.model.UpdateCenter.xml
<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>https://updates.jenkins.io/update-center.json</url>
  </site>
</sites>[root@r ~]# vim /var/lib/jenkins/hudson.model.UpdateCenter.xml 

修改為:

[root@r ~]# cat /root/.jenkins/hudson.model.UpdateCenter.xml 
<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
  </site>

配置Tomcat開啟啟動,編輯vim /usr/lib/systemd/system/tomcat.service文件:

[Unit]
Description=Apache Tomcat
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/opt/tomcat8/tomcat.pid
Environment=JAVA_HOME=/usr/local/jdk1.8.0_171
Environment=CATALINA_HOME=/opt/tomcat8

ExecStart=/opt/tomcat8/bin/daemon.sh start
ExecStop=/opt/tomcat8/bin/daemon.sh stop
User=tomcat
Group=tomcat
PrivateTmp=true
[Install]
WantedBy=multi-user.target

重新加載配置:

systemctl daemon-reload

常用命令:

systemctl status tomcat.service
systemctl stop tomcat.service
systemctl start tomcat.service
systemctl restart tomcat.service
systemctl enable tomcat.service

參考:centos7下配置Tomcat開機啟動(service方式和daemon方式)

for centos

  1. 首先要確保你的Java環境已經配置完畢:
[root@r ~]# java -version
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)
[root@r ~]# ls /usr/bin/java*
/usr/bin/java
  1. 安裝git:
[root@r ~]# yum install -y git
[root@r ~]# git --version
git version 1.8.3.1
  1. 查看/etc/sysconf目錄下是否有jenkins文件,有就刪除:
[root@r ~]# ls /etc/sysconfig/jenkins*
/etc/sysconfig/jenkins
[root@r ~]# rm -rf /etc/sysconfig/jenkins
  1. 下載rpm包,參見:http://pkg.jenkins-ci.org/redhat-stable/,但從這里下載非常慢,我們選擇從國內的鏡像源下載,然后安裝:https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/
# 官網鏡像
[root@r ~]# wget http://pkg.jenkins-ci.org/redhat-stable/jenkins-2.222.3-1.1.noarch.rpm
# 清華源鏡像
[root@r ~]# wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.222.3-1.1.noarch.rpm

# 使用rpm安裝
[root@r ~]# sudo rpm -ivh jenkins-2.222.3-1.1.noarch.rpm
  1. 配置監聽端口(默認監聽的是8080端口,可以修改一個其他端口),以及給目錄權限(避免其他不必要的麻煩):
# 修改端口和 root 權限
[root@r ~]# vim /etc/sysconfig/jenkins
# JENKINS_PORT="8080"
JENKINS_PORT="6004"

# 給目錄權限
[root@r ~]# chown -R jenkins:jenkins /var/lib/jenkins
[root@r ~]# chown -R jenkins:jenkins /var/cache/jenkins
[root@r ~]# chown -R jenkins:jenkins /var/log/jenkins
[root@r ~]# chown -R jenkins:jenkins /var/lib/jenkins

  1. 必要的命令:
# 設置為開機自啟動
sudo systemctl enable jenkins
# 啟動Jenkins服務
sudo systemctl start jenkins
# 重啟Jenkins服務
sudo systemctl restart jenkins
# 檢查Jenkins服務狀態
sudo systemctl status jenkins
# Jenkins的服務狀態有以下幾種:
- loaded ##系統服務已經初始化完成,加載過配置
- active(running) ##正有一個或多個程序正在系統中執行, vsftpd就是這種模式
- atcive(exited) ##僅執行一次就正常結束的服務, 目前並沒有任何程序在系統中執行
- atcive(waiting)##正在執行當中,不過還在等待其他的事件才能繼續處理
- inactive #服務關閉
- enbaled ##服務開機啟動
- disabled ##服務開機不自啟
- static ##服務開機啟動項不可被管理
- failed ##系統配置錯誤
  1. 拿到初始密碼,瀏覽器訪問ip:6004啟動吧:
[root@r ~]# cat /var/lib/jenkins/secrets/initialAdminPassword 
ee38795bb1574e9484b38f45e56b0eeb

  1. 可選配置,修改update鏈接:
[root@r ~]# cat /var/lib/jenkins/hudson.model.UpdateCenter.xml 
<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>https://updates.jenkins.io/update-center.json</url>
  </site>
</sites>[root@r ~]# vim /var/lib/jenkins/hudson.model.UpdateCenter.xml 

修改為:

[root@r ~]# cat /var/lib/jenkins/hudson.model.UpdateCenter.xml 
<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
  </site>

然后sudo systemctl restart jenkins重啟,在瀏覽器訪問。
后續的配置就是下載插件和創建管理員用戶以及配置基本的URL了,這里就不在表述了,可以下拉本篇博客,后續的部分有說明。
參考:CentOS 7 安裝 Jenkins | CentOS7安裝Jenkins | Linux centos7安裝Jenkins,提示:stat: cannot stat ‘/var/cache/jenkins’: No such file or directory |

for docker

centos7.7

常用的兩個鏡像是:

docker pull jenkins/jenkins:latest
docker pull jenkinsci/blueocean:latest

這里以jenkins/jenkins:latest為例。

首先你的服務器提前安裝好了docker服務。

  1. 拉取Jenkins鏡像,這的鏡像使用的是Jenkins官網推薦的鏡像:
[root@r ~]# docker pull jenkinsci/blueocean
[root@r /]# docker images | grep jenkins
jenkins/jenkins        lts                 7e250da768ed        3 weeks ago         619MB
  1. 在宿主機上創建Jenkins的持久化目錄:
[root@r /]# mkdir /docker_data/jenkins_home
  1. 啟動Jenkins容器:
docker run \
  -u root \
  --name myjenkins \
  --restart=always \
  -d \
  -p 6004:8080 \
  -p 50000:50000 \
  --env JAVA_OPTS="-Xmx1024m" \
  -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai \
  -v /etc/localtime:/etc/localtime \
  -v /docker_data/jenkins_home:/var/jenkins_home \
  -v /var/run/docker.sock:/var/run/docker.sock \
  jenkins/jenkins:latest

各參數的意義:

  • -u root,默認的,Jenkins鏡像內部使用的用戶是jenkons,但是我們啟動容器時的賬號是root,導致沒有權限操作內部目錄,所以,需要在啟動的時候,讓Jenkins的內部用戶是root。
  • --name myjenkins,給jenkins給容器起一個別名叫做myjenkins
  • --restart=always,表示將容器跟隨docker服務重啟而重啟。
  • -d,后台運行鏡像。
  • -p 6004:8080,將鏡像的8080端口映射到宿主機的6004端口。
  • -p 50000:50000,將鏡像的50000端口映射到服務器的50000端口,50000 端口允許訪問遠程 Java (JIRA) API。
  • --env JAVA_OPTS="-Xmx1024m",配置JVM最大使用內存。
  • -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai,控制jenkins的時區為亞洲上海。
  • -v /etc/localtime:/etc/localtime,讓容器使用和服務器同樣的時間設置。
  • -v /docker_data/jenkins_data/:/var/jenkins_home,掛在卷,持久化存儲。
  • -v /var/run/docker.sock:/var/run/docker.sock,(可選 /var/run/docker.sock 表示Docker守護程序通過其監聽的基於Unix的套接字。 該映射允許 jenkinsci/blueocean 容器與Docker守護進程通信, 如果 jenkinsci/blueocean 容器需要實例化其他Docker容器,則該守護進程是必需的。 如果運行聲明式管道,其語法包含agent部分用 docker。
  • jenkins/jenkins:latest,該容器來自於哪個鏡像,這里是鏡像名稱。

PS:有個疑惑,剛開始,為了jenkins的時區問題,我使用-v /etc/localtime:/etc/localtime來同步容器和宿主機的時區,但是貌似並沒有解決問題,后來,就有了-e JAVA_OPTS=-Duser.timezone=Asia/Shanghai參數來更改時區。

  1. 查詢log日志,獲取初始密碼,下面截取初始密碼部分部分日志:
[root@r jenkins_home]# docker logs myjenkins
Running from: /usr/share/jenkins/jenkins.war
webroot: EnvVars.masterEnvVars.get("JENKINS_HOME")
2020-04-18 11:06:32.620+0000 [id=1]	INFO	org.eclipse.jetty.util.log.Log#initialized: Logging initialized @400ms to 
2020-04-18 11:06:41.502+0000 [id=27]	INFO	jenkins.install.SetupWizard#init: 
*************************************************************
*************************************************************
*************************************************************

Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:

06e2d1bb8d984dc99d2f569c976a18ef

This may also be found at: /var/jenkins_home/secrets/initialAdminPassword

*************************************************************
*************************************************************
*************************************************************

2020-04-18 11:06:53.259+0000 [id=42]	INFO	hudson.model.AsyncPeriodicWork#lambda$doRun$0: Finished Download metadata. 13,224 ms
  1. 瀏覽器訪問ip:6004端口輸入初始密碼,進行后續的配置步驟:
  2. 新手就選擇安裝推薦的插件吧,雖然后續也可以單獨下載插件;后續的步驟按照提示就可以了。

for Tomcat

來看Tomcat中如何安裝Jenkins。

win10 + jenkins

參考:https://blog.csdn.net/qq_38318622/article/details/79419492

for windows

下載

  • 下載到本地是一個msi文件,點擊它。

  • 選擇安裝目錄,繼續點擊下一步。

  • 點擊安裝。

  • 安裝完成。

入門

當安裝完成,會自動的打開瀏覽器,進入解鎖Jenkins頁面。按照提示,去本地找密碼,然后粘貼到輸入框中,點擊繼續。

選擇推薦的插件下載即可。

在漫長的等待過程中,可能會發生各種意外, 但請記住一點:如果發生意外,請間歇性的刷新瀏覽器,很可能就......好了.....好不了,喝杯咖啡考慮一下人生回來....繼續刷新.....,我反正兩次插件安裝失敗,我都是刷新解決的........

如果遇到有的插件安裝失敗,就點擊重試....

創建管理員用戶

配置實例

根據需要配置ip地址,如果你的是遠程服務器的,就配個公網的ip或者綁定域名也行;本地的話,就直接localhost吧。

訪問主頁:

現在,Jenkins算是安裝成功。

for Mac

--待填充

More

如果遇到docker下載特別慢的情況。怎么辦。

vmware中的centos7

  • 編輯docker配置文件
[root@bogon ~]# vi /lib/systemd/system/docker.service 
  • ExecStart值更改為阿里雲。
# ExecStart=/usr/bin/dockerd
ExecStart=/usr/bin/dockerd --registry-mirror=https://u1qbyfsc.mir
ror.aliyuncs.com

這樣的話,docker再去拉去鏡像就會快很多。

放開防火牆端口號

vmware中的centos7

如果是虛擬機或者遠程服務器,有可能造成防火牆沒有放開端口號,導致我們遠程連接Jenkins失敗,來看解決辦法。

firewall-cmd --list-ports   # 查看一下當前開放的端口

# 如果該命令提示
[root@bogon ~]# firewall-cmd --list-ports
FirewallD is not running

# 那么啟動它
[root@bogon ~]# systemctl start firewalld   # 啟動
[root@bogon ~]# firewall-cmd --list-ports   # 然后重新執行

終端啟動Jenkins

在Windows平台下,Jenkins並沒有創建什么快捷方式。而是需要通過命令行來啟動。

注意,終端必須是管理員權限的

net start jenkins   # 開啟服務
net stop jenkins    # 停止服務

然后瀏覽器訪問:

http://localhost:8080

修改端口

環境是:Windows
可能8080這個端口容易被占用,所以我們去jenkins安裝目錄下找到一個叫jenkins.xml的文件,修改你想要的端口即可。

在安裝插件時報錯:無法連接到Jenkins

環境是:阿里雲centos7

這個問題很奇妙!我的環境是阿里雲服務器,檢查了Jenkins是否開啟,是否可以ping通網絡等等,都沒啥問題。

最后的解決辦法是刷新瀏覽器!不能行就多試幾次!!我也不知道為啥突然好了.....

在安裝插件時出現:No such plugin: cloudbees-folder

環境是:Windows

這個問題也很奇妙!但此時我的環境是win10企業版,檢查了Jenkins是否開啟,是否可以ping通網絡等等,都沒啥問題。

最后的解決辦法是刷新瀏覽器!不能行就多試幾次!!我也不知道為啥突然好了.....貌似我還改了一下端口(然后重啟了Jenkins),但這並沒有啥影響吧。


see also:[docker:CentOS安裝 docker和默認安裝目錄](https://blog.csdn.net/weixin_38750084/article/details/90317730) | [如何進入、退出docker的container]( ) | [Centos7上安裝docker](https://www.cnblogs.com/yufeng218/p/8370670.html)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM