安装Jenkins LTS
环境说明:
- 已安装Java环境,版本在8.0以上
- 如果是对接
kubernetes需要设置https协议
添加用户并设置sudo免密
useradd jenkins
echo 123456 | passwd jenkins --stdin
echo 'jenkins ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers.d/jenkins
su - jenkins
下载war包
curl -L https://get.jenkins.io/war-stable/2.319.3/jenkins.war -o jenkins-2.319.3.war
创建目录
sudo mkdir -p /opt/jenkins/{data,war,logs,webroot,pid}
sudo chown -R jenkins.jenkins /opt/jenkins/
拷贝war包
cp jenkins-2.319.3.war /opt/jenkins/war
HTTP
启动服务
cd /opt/jenkins
nohup java -Djava.awt.headless=true \
-DJENKINS_HOME=/opt/jenkins/data \
-jar /opt/jenkins/war/jenkins-2.319.3.war \
--webroot=/opt/jenkins/webroot \
--logfile=/opt/jenkins/logs/jenkins.log \
--httpPort=8081 --debug=5 \
--handlerCountMax=100 --handlerCountMaxIdle=20 \
--prefix=/jenkins > /dev/null & echo $! > pid/jenkins.pid
参数说明
--prefix:设置子路径
--httpPort:设置http协议端口,当设置为-1时,表示使用http协议
--debug:日志级别
-DJENKINS_HOME:Jenkins主目录
-jar:jar包位置
--logfile:日志存放路径
--webroot:war包解压文件
HTTPS
创建证书
# 建立一个openssl目录
mkdir -p ~/openssl && cd ~/openssl
# 生成CA私钥文件
openssl genrsa -out ca.key 2048
# 使用CA**生成CA x509证书文件。定义证书的有效性。
openssl req -x509 -new -nodes -sha512 -days 3650 -subj "/C=CN/ST=Guangdong/O=ecloud/CN=ecloud.com" -key ca.key -out ca.crt
# 创建服务器私钥
openssl genrsa -out server.key 2048
# 使用私钥生成CSR
openssl req -new -subj "/C=CN/ST=Guangdong/O=ecloud/CN=ecloud.com" -key server.key -out server.csr
# 使用ca.key,ca.crt和server.csr生成服务器SSL证书
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 3650
# 将SSL转换为PKCS12格式
openssl pkcs12 -export -out jenkins.p12 \
-passout 'pass:123456' -inkey server.key \
-in server.crt -certfile ca.crt -name jenkins.ecloud.com
# 将PKCS12转换为JKS格式
keytool -importkeystore -srckeystore jenkins.p12 \
-srcstorepass '123456' -srcstoretype PKCS12 \
-srcalias jenkins.ecloud.com -deststoretype JKS \
-destkeystore jenkins.jks -deststorepass '123456' \
-destalias jenkins.ecloud.com
启动服务
cd /opt/jenkins
/opt/jdk1.8.0_201/bin/java -Djava.awt.headless=true \
-DJENKINS_HOME=/opt/jenkins/data \
-jar /opt/jenkins/war/jenkins-2.319.3.war \
--webroot=/opt/jenkins/webroot \
--logfile=/opt/jenkins/logs/jenkins.log \
--httpPort=-1 --httpsPort=8443 \
--httpsKeyStore=/home/jenkins/openssl/jenkins.jks --httpsKeyStorePassword=123456 --debug=5 \
--handlerCountMax=100 --handlerCountMaxIdle=20 \
--prefix=/jenkins > /dev/null & echo $! > pid/jenkins.pid
参数说明
--httpPort:设置http协议端口,当设置为-1时,表示使用http协议
-httpsPort:设置https协议端口
--httpsKeyStore:SSL KeyStore 文件的位置
--httpsKeyStorePassword:SSL KeyStore 文件的密码
关闭服务
cat /opt/jenkins/pid/jenkins.pid | xargs -I {} kill {}
官方文档:https://www.jenkins.io/