天天看點

CI/CD學習筆記-jenkins安裝

本實驗按照下面的流程,在前面我們已經安裝了gitlab server,maven。

CI/CD學習筆記-jenkins安裝

現在安裝jenkins

官網給出了簡單安裝的方法,在jenkins的官網下載下傳頁面https://www.jenkins.io/download/按需選擇LTS版本,我們選擇CentOS版本

CI/CD學習筆記-jenkins安裝

然後官網給出了簡單安裝步驟

CI/CD學習筆記-jenkins安裝

安裝

[[email protected] ~]# sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

–2021-07-18 06:52:20-- https://pkg.jenkins.io/redhat-stable/jenkins.repo

Resolving pkg.jenkins.io (pkg.jenkins.io)… 151.101.206.133, 2a04:4e42:30::645

Connecting to pkg.jenkins.io (pkg.jenkins.io)|151.101.206.133|:443… connected.

HTTP request sent, awaiting response… 200 OK

Length: 85

Saving to: ‘/etc/yum.repos.d/jenkins.repo’

/etc/yum.repos.d/jenkins.repo 100%[=====================================================>] 85 --.-KB/s in 0s

2021-07-18 06:52:20 (2.72 MB/s) - ‘/etc/yum.repos.d/jenkins.repo’ saved [85/85]

[[email protected] ~]# sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

[[email protected] ~]# yum install -y jenkins

CentOS Linux 8 - AppStream 7.1 MB/s | 8.1 MB 00:01

CentOS Linux 8 - BaseOS 3.0 MB/s | 3.6 MB 00:01

CentOS Linux 8 - Extras 12 kB/s | 9.8 kB 00:00

Jenkins-stable 18 kB/s | 21 kB 00:01

Dependencies resolved.

==============================================================================================================================

Package Architecture Version Repository Size

==============================================================================================================================

Installing:

jenkins noarch 2.289.2-1.1 jenkins 71 M

Transaction Summary

==============================================================================================================================

Install 1 Package

Total download size: 71 M

Installed size: 71 M

Downloading Packages:

jenkins-2.289.2-1.1.noarch.rpm 14 MB/s | 71 MB 00:05

Total 14 MB/s | 71 MB 00:05

Running transaction check

Transaction check succeeded.

Running transaction test

Transaction test succeeded.

Running transaction

Preparing : 1/1

Running scriptlet: jenkins-2.289.2-1.1.noarch 1/1

Installing : jenkins-2.289.2-1.1.noarch 1/1

Running scriptlet: jenkins-2.289.2-1.1.noarch 1/1

Verifying : jenkins-2.289.2-1.1.noarch 1/1

Installed products updated.

Installed:

jenkins-2.289.2-1.1.noarch

Complete!

jenkins安裝包内容

[[email protected] ~]# rpm -ql jenkins

/etc/init.d/jenkins # 啟動檔案

/etc/logrotate.d/jenkins # 日志分割配置檔案

/etc/sysconfig/jenkins # jenkins主配置檔案

/usr/lib/jenkins # 存放war包目錄

/usr/lib/jenkins/jenkins.war # war 包

/usr/sbin/rcjenkins # 指令

/var/cache/jenkins # war包解壓目錄 jenkins網頁代碼目錄

/var/lib/jenkins # jenkins 工作目錄

/var/log/jenkins # 日志

主配置檔案

JENKINS_HOME="/var/lib/jenkins" # jenkins工作目錄

JENKINS_JAVA_CMD=""

JENKINS_USER=“jenkins” # jenkinx啟動使用者

JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true"

JENKINS_PORT=“8080” # 端口

JENKINS_LISTEN_ADDRESS=""

JENKINS_HTTPS_PORT=""

JENKINS_HTTPS_KEYSTORE=""

JENKINS_HTTPS_KEYSTORE_PASSWORD=""

JENKINS_HTTPS_LISTEN_ADDRESS=""

JENKINS_DEBUG_LEVEL=“5”

JENKINS_ENABLE_ACCESS_LOG=“no”

JENKINS_HANDLER_MAX=“100” # 最大連接配接,根據伺服器能力可以修改

JENKINS_HANDLER_IDLE=“20”

JENKINS_ARGS=""

Java依賴

[[email protected] ~]# systemctl status jenkins.service

● jenkins.service - LSB: Jenkins Automation Server

Loaded: loaded (/etc/rc.d/init.d/jenkins; generated)

Active: inactive (dead)

Docs: man:systemd-sysv-generator(8)

[[email protected] ~]# systemctl start jenkins.service

Job for jenkins.service failed because the control process exited with error code.

See “systemctl status jenkins.service” and “journalctl -xe” for details.

發現無法啟動jenkins,這是因為java沒有安裝

[[email protected] ~]# java -version

bash: java: command not found…

[[email protected] ~]# yum install -y java

Last metadata expiration check: 0:04:48 ago on Sun 18 Jul 2021 06:52:50 AM PDT.

Dependencies resolved.

==============================================================================================================================

Package Architecture Version Repository Size

==============================================================================================================================

Installing:

java-1.8.0-openjdk x86_64 1:1.8.0.292.b10-1.el8_4 appstream 335 k

Installing dependencies:

copy-jdk-configs noarch 3.7-4.el8 appstream 27 k

java-1.8.0-openjdk-headless x86_64 1:1.8.0.292.b10-1.el8_4 appstream 34 M

javapackages-filesystem noarch 5.3.0-1.module_el8.0.0+11+5b8c10bd appstream 30 k

lksctp-tools x86_64 1.0.18-3.el8 baseos 100 k

ttmkfdir x86_64 3.0.9-54.el8 appstream 62 k

tzdata-java noarch 2021a-1.el8 appstream 192 k

xorg-x11-fonts-Type1 noarch 7.5-19.el8 appstream 522 k

Enabling module streams:

javapackages-runtime 201801

Transaction Summary

==============================================================================================================================

Install 8 Packages

Total download size: 35 M

Installed size: 119 M

Downloading Packages:

(1/8): copy-jdk-configs-3.7-4.el8.noarch.rpm 171 kB/s | 27 kB 00:00

(2/8): javapackages-filesystem-5.3.0-1.module_el8.0.0+11+5b8c10bd.noarch.rpm 303 kB/s | 30 kB 00:00

(3/8): java-1.8.0-openjdk-1.8.0.292.b10-1.el8_4.x86_64.rpm 1.0 MB/s | 335 kB 00:00

(4/8): ttmkfdir-3.0.9-54.el8.x86_64.rpm 589 kB/s | 62 kB 00:00

(5/8): tzdata-java-2021a-1.el8.noarch.rpm 3.3 MB/s | 192 kB 00:00

(6/8): xorg-x11-fonts-Type1-7.5-19.el8.noarch.rpm 3.1 MB/s | 522 kB 00:00

(7/8): lksctp-tools-1.0.18-3.el8.x86_64.rpm 205 kB/s | 100 kB 00:00

(8/8): java-1.8.0-openjdk-headless-1.8.0.292.b10-1.el8_4.x86_64.rpm 25 MB/s | 34 MB 00:01

Installed:

copy-jdk-configs-3.7-4.el8.noarch

java-1.8.0-openjdk-1:1.8.0.292.b10-1.el8_4.x86_64

java-1.8.0-openjdk-headless-1:1.8.0.292.b10-1.el8_4.x86_64

javapackages-filesystem-5.3.0-1.module_el8.0.0+11+5b8c10bd.noarch

lksctp-tools-1.0.18-3.el8.x86_64

ttmkfdir-3.0.9-54.el8.x86_64

tzdata-java-2021a-1.el8.noarch

xorg-x11-fonts-Type1-7.5-19.el8.noarch

Complete!

檢視java

[[email protected] ~]# java -version

openjdk version “1.8.0_292”

OpenJDK Runtime Environment (build 1.8.0_292-b10)

OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)

[[email protected] ~]# ll /usr/bin/java

lrwxrwxrwx. 1 root root 22 Jul 18 06:57 /usr/bin/java -> /etc/alternatives/java

啟動jenkins

[[email protected] ~]# systemctl start jenkins.service

[[email protected] ~]# systemctl status jenkins.service

● jenkins.service - LSB: Jenkins Automation Server

Loaded: loaded (/etc/rc.d/init.d/jenkins; generated)

Active: active (running) since Sun 2021-07-18 07:02:26 PDT; 12s ago

Docs: man:systemd-sysv-generator(8)

Process: 33481 ExecStart=/etc/rc.d/init.d/jenkins start (code=exited, status=0/SUCCESS)

Tasks: 42 (limit: 23360)

Memory: 389.7M

CGroup: /system.slice/jenkins.service

└─33504 /etc/alternatives/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/>

Jul 18 07:02:24 jenkins systemd[1]: Starting LSB: Jenkins Automation Server…

Jul 18 07:02:24 jenkins runuser[33488]: pam_unix(runuser:session): session opened for user jenkins by (uid=0)

Jul 18 07:02:26 jenkins runuser[33488]: pam_unix(runuser:session): session closed for user jenkins

Jul 18 07:02:26 jenkins jenkins[33481]: Starting Jenkins [ OK ]

Jul 18 07:02:26 jenkins systemd[1]: Started LSB: Jenkins Automation Server.

檢視jenkins程序

[[email protected] ~]# ps -ef|grep jenkins

jenkins 33504 1 99 07:02 ? 00:00:44 /etc/alternatives/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --daemon --httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20

root 33588 3469 0 07:03 pts/0 00:00:00 grep --color=auto jenkins

檢視8080端口

[[email protected] ~]# lsof -i:8080

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

java 33504 jenkins 25u IPv6 92503 0t0 TCP *:webcache (LISTEN)

在用戶端打開jenkins

CI/CD學習筆記-jenkins安裝

[[email protected] ~]# cat /var/lib/jenkins/secrets/initialAdminPassword

7ccfb6ff70374891a83cc0d127568a08

jenkins配置

檢視到預設密碼後,進入到geting started

CI/CD學習筆記-jenkins安裝

選擇推薦的插件

CI/CD學習筆記-jenkins安裝

如果在國内,這個過程很慢,也容易出現離線提示。

解決方法:

1、修改 /var/lib/jenkins/updates/default.json

jenkins 在下載下傳插件之前會先檢查網絡連接配接,其會讀取這個檔案中的網址。預設是通路谷歌,肯定監測失敗,是以将圖下的google改為www.bing.com即可,更改完重新開機服務。

CI/CD學習筆記-jenkins安裝

2、 修改/var/lib/jenkins/hudson.model.UpdateCenter.xml

該檔案為jenkins下載下傳插件的源位址,改位址預設jenkins預設為:https://updates.jenkins.io/update-center.json,就是因為https的問題,此處我們将其改為http即可,之後重新開機jenkins服務即可。

當然,也可以選擇使用其他國内備用源位址:

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

http://mirror.esuni.jp/jenkins/updates/update-center.json

在修複完之後,我們發現離線問題已經解決。

建立一個管理者賬戶後,确認結束

CI/CD學習筆記-jenkins安裝
CI/CD學習筆記-jenkins安裝

配置全局變量

System Configuration–> Global Tool Configuration

CI/CD學習筆記-jenkins安裝
CI/CD學習筆記-jenkins安裝

JDK home查找

[[email protected] local]# which java

/usr/bin/java

[[email protected] local]# ll /usr/bin/java

lrwxrwxrwx. 1 root root 22 Jul 18 06:57 /usr/bin/java -> /etc/alternatives/java

[[email protected] local]# ll /etc/alternatives/java

lrwxrwxrwx. 1 root root 73 Jul 18 06:57 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el8_4.x86_64/jre/bin/java

JDK home:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el8_4.x86_64

Path to Git executable

[[email protected] local]# which git

/usr/bin/git