Jenkins 簡(jiǎn)介
Jenkins?是一個(gè)開(kāi)源軟件項(xiàng)目,是基于Java開(kāi)發(fā)的一種持續(xù)集成工具躲叼,用于監(jiān)控持續(xù)重復(fù)的工作芦缰,旨在提供一個(gè)開(kāi)放易用的軟件平臺(tái),使軟件的持續(xù)集成變成可能枫慷。
Java 安裝
首先我們需要準(zhǔn)備 Java 環(huán)境让蕾,使用下面命令來(lái)安裝 Java:
yum -y install java-1.8.0-openjdk-devel
Jenkins 安裝
為了使用 Jenkins 倉(cāng)庫(kù),我們要執(zhí)行以下命令:
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
如果您以前從 Jenkins 導(dǎo)入過(guò) key流礁,那么?rpm --import?將失敗涕俗,因?yàn)槟呀?jīng)有一個(gè) key。請(qǐng)忽略神帅,繼續(xù)下面步驟。
安裝
接著我們可以使用?yum?安裝 Jenkins:
yum -y install jenkins
啟動(dòng) Jenkins
啟動(dòng)
啟動(dòng) Jenkins 并設(shè)置為開(kāi)機(jī)啟動(dòng):
systemctl start jenkins.service
chkconfig jenkins on
測(cè)試訪問(wèn)
Jenkins 默認(rèn)運(yùn)行在 8080端口萌抵。
稍等片刻找御,打開(kāi)測(cè)試訪問(wèn)。
進(jìn)入 Jenkins
管理員密碼
登入 Jenkins 需要輸入管理員密碼绍填,按照提示霎桅,我們使用以下命令查看初始密碼:
cat /var/lib/jenkins/secrets/initialAdminPassword
復(fù)制密碼,填入讨永,進(jìn)入 Jenkins滔驶。
定制 Jenkins
我們選擇默認(rèn)的?install suggested plugins?來(lái)安裝插件。
創(chuàng)建用戶(hù)
請(qǐng)?zhí)钊胂鄳?yīng)信息創(chuàng)建用戶(hù)卿闹,然后即可登入 Jenkins 的世界揭糕。
nginx反向代理配置
server {
? listen? ? ? ? ? 80;? ? ? # Listen on port 80 for IPv4 requests
? server_name? ? ci.xxx.xyz;
? #this is the jenkins web root directory (mentioned in the /etc/default/jenkins file)
? root? ? ? ? ? ? /var/run/jenkins/war/;
? access_log? ? ? /var/log/nginx/jenkins/access.log;
? error_log? ? ? /var/log/nginx/jenkins/error.log;
? ignore_invalid_headers off; #pass through headers from Jenkins which are considered invalid by Nginx server.
? location ~ "^/static/[0-9a-fA-F]{8}\/(.*)$" {
? ? #rewrite all static files into requests to the root
? ? #E.g /static/12345678/css/something.css will become /css/something.css
? ? rewrite "^/static/[0-9a-fA-F]{8}\/(.*)" /$1 last;
? }
? location /userContent {
? ? #have nginx handle all the static requests to the userContent folder files
? ? #note : This is the $JENKINS_HOME dir
root /var/lib/jenkins/;
? ? if (!-f $request_filename){
? ? ? #this file does not exist, might be a directory or a /**view** url
? ? ? rewrite (.*) /$1 last;
? break;
? ? }
sendfile on;
? }
? location @jenkins {
? ? ? sendfile off;
? ? ? proxy_pass? ? ? ? http://127.0.0.1:8080;
? ? ? proxy_redirect? ? default;
? ? ? proxy_http_version 1.1;
? ? ? proxy_set_header? Host? ? ? ? ? ? ? $host;
? ? ? proxy_set_header? X-Real-IP? ? ? ? $remote_addr;
? ? ? proxy_set_header? X-Forwarded-For? $proxy_add_x_forwarded_for;
? ? ? proxy_set_header? X-Forwarded-Proto $scheme;
? ? ? proxy_max_temp_file_size 0;
? ? ? #this is the maximum upload size
? ? ? client_max_body_size? ? ? 10m;
? ? ? client_body_buffer_size? ? 128k;
? ? ? proxy_connect_timeout? ? ? 90;
? ? ? proxy_send_timeout? ? ? ? 90;
? ? ? proxy_read_timeout? ? ? ? 90;
? ? ? proxy_request_buffering? ? off; # Required for HTTP CLI commands in Jenkins > 2.54
? }
? location / {
? ? # Optional configuration to detect and redirect iPhones
? ? if ($http_user_agent ~* '(iPhone|iPod)') {
? ? ? rewrite ^/$ /view/iphone/ redirect;
? ? }
? ? try_files $uri @jenkins;
? }
}