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://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
- 首先要確保你的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
- 安裝git:
[root@r ~]# yum install -y git
[root@r ~]# git --version
git version 1.8.3.1
- 查看
/etc/sysconf
目錄下是否有jenkins
文件,有就刪除:
[root@r ~]# ls /etc/sysconfig/jenkins*
/etc/sysconfig/jenkins
[root@r ~]# rm -rf /etc/sysconfig/jenkins
- 下載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
- 配置監聽端口(默認監聽的是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
- 必要的命令:
# 設置為開機自啟動
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 ##系統配置錯誤
- 拿到初始密碼,瀏覽器訪問
ip:6004
啟動吧:
[root@r ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
ee38795bb1574e9484b38f45e56b0eeb
- 可選配置,修改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服務。
- 拉取Jenkins鏡像,這的鏡像使用的是Jenkins官網推薦的鏡像:
[root@r ~]# docker pull jenkinsci/blueocean
[root@r /]# docker images | grep jenkins
jenkins/jenkins lts 7e250da768ed 3 weeks ago 619MB
- 在宿主機上創建Jenkins的持久化目錄:
[root@r /]# mkdir /docker_data/jenkins_home
- 啟動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
參數來更改時區。
- 查詢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
- 瀏覽器訪問
ip:6004
端口輸入初始密碼,進行后續的配置步驟:
- 新手就選擇
安裝推薦的插件
吧,雖然后續也可以單獨下載插件;后續的步驟按照提示就可以了。
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](