jenkins 的使用 - mindpin/docs GitHub Wiki
1 准备centos 7 系统
选择 centos 7 是因为它支持 docker
2 安装 git java
yum install git java
3 安装 docker
echo '
[dockerrepo]
name=Docker Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/docker/yum/repo/centos7
enabled=1
gpgcheck=1
gpgkey=https://mirrors.tuna.tsinghua.edu.cn/docker/yum/gpg
' > /etc/yum.repos.d/docker.repo
sudo yum makecache
sudo yum install docker-engine
4 安装 jenkins
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
sudo yum install jenkins
5 启动 jenkins
systemctl start jenkins.service
6 把 jenkins 用户增加到 docker 组,使其可以有运行 docker 的权限
usermod -aG docker jenkins
7 安装插件
浏览器访问 http://host:8080
导航连进入 系统管理 -> 管理系统 -> 可选插件
安装如下几个插件:
Pipeline
CloudBees Docker Pipeline
github
重启 jenkins
8 增加用户访问权限
浏览器访问 http://host:8080
导航连进入 系统管理 -> Configure Global Security
启用安全
全选域选择 Jenkins专有用户数据库 允许用户注册
授权策略选择 登录用户可以做任何事
保存,并重启 jenkins,然后注册用户(该用户作为 admin 用户)
重新进入 系统管理 -> Configure Global Security
授权策略选择 安全矩阵,并给新注册的用户增加所有权限
安全域去掉允许注册用户注册
保存,并重启 jenkins
9 增加项目
点击左侧导航连新建,选择 Pipeline 类型,并输入项目名称
10 项目设置中
github webhook 设置方式还没有尝试,这部分待补充
11 pipeline script 举例
node ('master'){
env.WORKSPACE = pwd()
echo "${env.WORKSPACE}"
stage 'Build'
checkout([$class: 'GitSCM', branches: [name: '*/master'](/mindpin/docs/wiki/name:-'*/master'), doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [url: 'https://github.com/fushang318/jenkins_nodejs_test.git/'](/mindpin/docs/wiki/url:-'https://github.com/fushang318/jenkins_nodejs_test.git/')])
withDockerContainer(args: "--privileged -u root --volume ${env.WORKSPACE}:/code:rw,Z", image: 'ubuntu') {
sh 'echo RUN BUILD TESTS'
sh 'ls /code'
}
stage 'Unstable'
sh 'echo "Upload new docker to registry with tag: unstable"'
sh 'echo RUN INTEGRATION TESTS'
stage 'Testing'
sh 'echo "Upload new docker to registry with tag: testing"'
sh 'echo RUN UAT TESTS'
stage 'Stable'
sh 'echo "Upload new docker to registry with tag: stable"'
}
可以写在jenkins项目配置中,也可以写在项目版本库的 Jenkinsfile 文件