温馨提示×

如何通过脚本配置CentOS Jenkins

小樊
51
2025-10-05 05:34:40
栏目: 智能运维

通过脚本配置CentOS Jenkins的完整流程

一、前置准备:系统环境配置

在配置Jenkins前,需确保CentOS系统满足基础要求:更新系统包、安装Java(Jenkins依赖Java 8+)、安装Git(用于代码托管库交互)。可通过以下脚本自动化完成:

# 更新系统包
sudo yum update -y
# 安装Java 1.8
sudo yum install -y java-1.8.0-openjdk-devel
# 验证Java安装
java -version
# 安装Git
sudo yum install -y git

二、Jenkins安装与启动脚本

使用官方YUM仓库安装Jenkins,并通过systemd配置开机自启。创建jenkins_install.sh脚本:

# 添加Jenkins YUM仓库
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
sudo yum install -y jenkins
# 启动Jenkins服务并设置开机自启
sudo systemctl start jenkins
sudo systemctl enable jenkins
# 开放防火墙端口(若启用防火墙)
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload

运行脚本后,Jenkins服务将自动启动,可通过http://<服务器IP>:8080访问Web界面。

三、Jenkins初始配置自动化

首次访问Jenkins需解锁管理员账号并完成初始设置。可通过以下命令获取初始密码:

# 获取管理员初始密码
sudo cat /var/lib/jenkins/secrets/initialAdminPassword

为简化后续配置,可使用Jenkins CLI或API自动化安装推荐插件、创建管理员账号。以下是通过curl调用API创建管理员账号的示例(需替换<密码><管理员名>):

# 创建管理员账号(需先获取API Token)
ADMIN_PASSWORD="your_admin_password"
ADMIN_USER="admin"
curl -X POST -u admin:$(sudo cat /var/lib/jenkins/secrets/initialAdminPassword) \
-d "username=$ADMIN_USER&password=$ADMIN_PASSWORD&fullname=Administrator&email=admin@example.com" \
http://localhost:8080/securityRealm/createAccountByAdmin

四、通过脚本创建Jenkins Job

1. Freestyle Project脚本配置

Freestyle项目适用于简单构建流程(如编译、打包)。以下是一个Shell脚本示例(用于Java项目编译):

# 创建Freestyle项目并配置构建步骤
JOB_NAME="java-build-job"
BUILD_SCRIPT="""
#!/bin/bash
# 拉取代码
git clone https://github.com/your-repo/java-project.git
cd java-project
# 编译项目
mvn clean install
"""
# 使用Jenkins CLI创建Job(需安装jenkins-cli.jar)
java -jar jenkins-cli.jar -s http://localhost:8080/ create-job $JOB_NAME < job_config.xml

job_config.xml需包含构建步骤(如Execute shell),可通过Jenkins Web界面导出模板修改。

2. Pipeline脚本配置

Pipeline适用于复杂流水线(如多阶段构建、部署)。以下是一个简单的Jenkinsfile示例(用于Node.js项目):

pipeline {
    agent any
    stages {
        stage('Checkout') {
            steps {
                git 'https://github.com/your-repo/nodejs-project.git'
            }
        }
        stage('Install Dependencies') {
            steps {
                sh 'npm install'
            }
        }
        stage('Build') {
            steps {
                sh 'npm run build'
            }
        }
        stage('Deploy') {
            steps {
                sh 'cp -rf ./dist/* /var/www/html/'
            }
        }
    }
    post {
        always {
            echo 'Cleaning up...'
        }
    }
}

将Jenkinsfile提交到代码仓库,然后在Jenkins中创建Pipeline项目,选择“Pipeline script from SCM”,指定仓库地址和Jenkinsfile路径即可。

五、常用运维脚本:Jenkins服务控制

为方便管理Jenkins服务,可创建jenkins_control.sh脚本:

#!/bin/bash
JENKINS_SERVICE="jenkins"

case "$1" in
    start)
        sudo systemctl start $JENKINS_SERVICE
        echo "Jenkins started."
        ;;
    stop)
        sudo systemctl stop $JENKINS_SERVICE
        echo "Jenkins stopped."
        ;;
    restart)
        sudo systemctl restart $JENKINS_SERVICE
        echo "Jenkins restarted."
        ;;
    status)
        if sudo systemctl is-active --quiet $JENKINS_SERVICE; then
            echo "Jenkins is running."
        else
            echo "Jenkins is stopped."
        fi
        ;;
    *)
        echo "Usage: $0 {start|stop|restart|status}"
        exit 1
        ;;
esac
exit 0

赋予执行权限后,可通过./jenkins_control.sh start等命令管理服务。

注意事项

  • 权限问题:确保Jenkins用户(默认jenkins)有权限访问项目目录和执行脚本。
  • 安全配置:建议配置HTTPS(通过Nginx反向隧道)、限制管理员权限、定期更新Jenkins及插件。
  • 日志查看:构建日志可通过Jenkins Web界面查看,系统日志位于/var/log/jenkins/jenkins.log

通过以上脚本,可实现CentOS上Jenkins的自动化安装、配置与管理,提升DevOps效率。

0