Jenkins入门教程(三):Jenkins基础配置与系统管理
完成Jenkins安装后,我们需要进行一些基础配置来优化Jenkins的使用体验。本文将详细介绍Jenkins的系统管理和基础配置,包括完整的操作步骤和截图说明。
访问系统管理
登录Jenkins后,点击左侧菜单的"系统管理"(Manage Jenkins),可以看到所有管理选项:
- 系统配置:Jenkins全局设置
- 全局工具配置:JDK、Maven、Git等工具
- 插件管理:安装和管理插件
- 节点管理:管理构建节点
- 凭据管理:管理认证信息
- 安全配置:用户权限设置
系统配置详解
进入"系统管理" > "系统配置",这里包含Jenkins的核心设置。
1. 系统消息
可以设置显示在Jenkins首页的系统消息,支持HTML格式:
<div style="background-color: #fff3cd; padding: 10px; border-radius: 5px;">
<strong>通知:</strong> Jenkins将于周六凌晨2点进行维护升级
</div>
2. 执行器数量
执行器(Executor)决定了Master节点可以同时运行的构建数量:
# 查看CPU核心数来确定执行器数量
nproc
# 输出: 4
# 建议设置
# - 开发环境:CPU核心数
# - 生产环境:0(所有构建在Agent上执行)
3. Jenkins URL
设置Jenkins的访问URL,这对于邮件通知中的链接、Webhook回调等非常重要:
# 示例配置
Jenkins URL: https://jenkins.example.com/
# 如果使用反向代理,确保URL与实际访问地址一致
# Nginx配置示例
server {
listen 443 ssl;
server_name jenkins.example.com;
location / {
proxy_pass http://localhost:8080;
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;
}
}
4. 环境变量
配置全局环境变量,所有Job都可以使用:
# 常用全局环境变量示例
DEPLOY_ENV=staging
DOCKER_REGISTRY=registry.example.com
SLACK_CHANNEL=#devops-alerts
MAVEN_OPTS=-Xmx1024m -XX:MaxPermSize=512m
在Pipeline中使用:
pipeline {
agent any
stages {
stage('Check Env') {
steps {
sh 'echo "Deploy to: ${DEPLOY_ENV}"'
sh 'echo "Docker Registry: ${DOCKER_REGISTRY}"'
}
}
}
}
全局工具配置
进入"系统管理" > "全局工具配置",配置构建所需的工具。
JDK配置
# 方式1:指定本地安装路径
名称: JDK17
JAVA_HOME: /usr/lib/jvm/java-17-openjdk-amd64
# 方式2:自动安装
名称: JDK17-auto
勾选"自动安装"
选择版本: OpenJDK 17
# 验证JDK配置是否正确
$ /usr/lib/jvm/java-17-openjdk-amd64/bin/java -version
openjdk version "17.0.9" 2023-10-17
OpenJDK Runtime Environment (build 17.0.9+9-Ubuntu-122.04)
OpenJDK 64-Bit Server VM (build 17.0.9+9-Ubuntu-122.04, mixed mode, sharing)
Maven配置
# 安装Maven
sudo apt install maven -y
# 查看Maven路径
which mvn
# /usr/bin/mvn
mvn -version
# Apache Maven 3.6.3
# Maven home: /usr/share/maven
# Jenkins配置
名称: Maven3
MAVEN_HOME: /usr/share/maven
# 或选择自动安装
名称: Maven3-auto
勾选"自动安装"
版本: 3.8.7
Git配置
# 安装Git
sudo apt install git -y
# 查看Git路径
which git
# /usr/bin/git
git --version
# git version 2.34.1
# Jenkins配置
名称: Default
Path to Git executable: /usr/bin/git
NodeJS配置
# 需要先安装NodeJS插件
# 然后在全局工具配置中添加
名称: Node18
勾选"自动安装"
版本: NodeJS 18.19.0
# 可选:全局npm包
Global npm packages to install: yarn pnpm
凭据管理
进入"系统管理" > "凭据" > "系统" > "全局凭据",添加各种认证信息。
添加用户名密码凭据
# 用于Git仓库认证
类型: Username with password
范围: Global
用户名: your-username
密码: your-password-or-token
ID: git-credentials
描述: GitHub认证凭据
添加SSH私钥凭据
# 生成SSH密钥对
ssh-keygen -t rsa -b 4096 -f ~/.ssh/jenkins_deploy -N ''
# 将公钥添加到Git服务器
cat ~/.ssh/jenkins_deploy.pub
# 在Jenkins中添加私钥
类型: SSH Username with private key
范围: Global
ID: ssh-deploy-key
用户名: git
Private Key: 选择"Enter directly",粘贴私钥内容
# 私钥内容
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAE...
-----END OPENSSH PRIVATE KEY-----
添加Secret Text凭据
# 用于API Token等
类型: Secret text
范围: Global
Secret: your-api-token-here
ID: api-token
描述: Docker Hub API Token
在Pipeline中使用凭据
pipeline {
agent any
stages {
stage('Use Credentials') {
steps {
// 用户名密码
withCredentials([usernamePassword(
credentialsId: 'git-credentials',
usernameVariable: 'GIT_USER',
passwordVariable: 'GIT_PASS'
)]) {
sh 'git clone https://${GIT_USER}:${GIT_PASS}@github.com/user/repo.git'
}
// SSH私钥
sshagent(['ssh-deploy-key']) {
sh 'git clone git@github.com:user/repo.git'
}
// Secret text
withCredentials([string(
credentialsId: 'api-token',
variable: 'API_TOKEN'
)]) {
sh 'curl -H "Authorization: Bearer ${API_TOKEN}" https://api.example.com'
}
}
}
}
}
安全配置
进入"系统管理" > "安全配置"进行安全设置。
安全域设置
# 选项1:Jenkins专有用户数据库(推荐小团队)
安全域: Jenkins' own user database
勾选: 允许用户注册(根据需要)
# 选项2:LDAP(适合企业环境)
安全域: LDAP
Server: ldap://ldap.example.com
root DN: dc=example,dc=com
User search base: ou=users
User search filter: uid={0}
Group search base: ou=groups
授权策略
# 推荐:项目矩阵授权策略
授权策略: Project-based Matrix Authorization Strategy
# 配置示例
用户/组 Overall Job View Agent
admin 所有权限 所有权限 所有权限 所有权限
developers Read Build Read -
viewers Read Read Read -
# 或使用Role-Based Strategy(需要安装插件)
# 可以创建角色并分配给用户/组
插件管理
进入"系统管理" > "插件管理"安装和管理插件。
推荐安装的插件
# 核心插件
Pipeline # Pipeline支持
Git # Git集成
Credentials Binding # 凭据绑定
Timestamper # 构建日志时间戳
Workspace Cleanup # 工作空间清理
# Docker相关
Docker Pipeline # Docker Pipeline支持
Docker # Docker API
# 通知
Email Extension # 邮件通知增强
Slack Notification # Slack通知
DingTalk # 钉钉通知
# 代码质量
JaCoCo # 代码覆盖率
SonarQube Scanner # 代码质量分析
# UI增强
Blue Ocean # 现代化界面
Build Monitor View # 构建监控视图
# 权限管理
Role-based Authorization # 基于角色的权限
命令行安装插件
# 使用Jenkins CLI安装插件
java -jar jenkins-cli.jar -s http://localhost:8080/ -auth admin:token install-plugin docker-workflow
# 批量安装
cat plugins.txt | while read plugin; do
java -jar jenkins-cli.jar -s http://localhost:8080/ -auth admin:token install-plugin $plugin
done
# 重启Jenkins使插件生效
java -jar jenkins-cli.jar -s http://localhost:8080/ -auth admin:token safe-restart
备份配置
# 关键配置文件位置
/var/lib/jenkins/
├── config.xml # 主配置文件
├── credentials.xml # 凭据配置
├── users/ # 用户配置
├── secrets/ # 密钥文件
├── jobs/ # Job配置
│ └── my-job/
│ └── config.xml
└── plugins/ # 插件
# 备份脚本示例
#!/bin/bash
BACKUP_DIR=/backup/jenkins
DATE=$(date +%Y%m%d)
mkdir -p $BACKUP_DIR
# 备份配置
tar -czvf $BACKUP_DIR/jenkins-config-$DATE.tar.gz \
/var/lib/jenkins/config.xml \
/var/lib/jenkins/credentials.xml \
/var/lib/jenkins/users \
/var/lib/jenkins/secrets \
/var/lib/jenkins/jobs/*/config.xml
# 保留最近7天的备份
find $BACKUP_DIR -name "*.tar.gz" -mtime +7 -delete
echo "Backup completed: $BACKUP_DIR/jenkins-config-$DATE.tar.gz"
验证配置
创建一个测试Pipeline验证所有配置:
pipeline {
agent any
tools {
jdk 'JDK17'
maven 'Maven3'
}
stages {
stage('Check Tools') {
steps {
sh '''
echo "=== Java ==="
java -version
echo "\n=== Maven ==="
mvn -version
echo "\n=== Git ==="
git --version
echo "\n=== Environment ==="
env | grep -E "JAVA_HOME|MAVEN_HOME|PATH" | sort
'''
}
}
}
}
执行结果:
=== Java ===
openjdk version "17.0.9" 2023-10-17
OpenJDK Runtime Environment (build 17.0.9+9)
OpenJDK 64-Bit Server VM (build 17.0.9+9, mixed mode, sharing)
=== Maven ===
Apache Maven 3.8.7
Maven home: /var/lib/jenkins/tools/hudson.tasks.Maven_MavenInstallation/Maven3
Java version: 17.0.9, vendor: Eclipse Adoptium
=== Git ===
git version 2.34.1
=== Environment ===
JAVA_HOME=/var/lib/jenkins/tools/hudson.model.JDK/JDK17
MAVEN_HOME=/var/lib/jenkins/tools/hudson.tasks.Maven_MavenInstallation/Maven3
PATH=/var/lib/jenkins/tools/hudson.model.JDK/JDK17/bin:...
总结
本文详细介绍了Jenkins的基础配置,包括系统配置、工具配置、凭据管理、安全设置和插件管理。正确的配置是高效使用Jenkins的基础。
下一篇我们将学习如何创建第一个Jenkins Freestyle Job。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。







