1.安装jdk
更换阿里源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo && yum makecache
安装jdk
yum install -y java-1.8.0-openjdk*
2.安装Jenkins
1.下载
https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.289.3-1.1.noarch.rpm
[root@localhost ~]# ls
anaconda-ks.cfg jenkins-2.289.3-1.1.noarch.rpm
[root@localhost ~]# rpm -ivh jenkins-2.289.3-1.1.noarch.rpm
警告:jenkins-2.289.3-1.1.noarch.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID 45f2c3d5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:jenkins-2.289.3-1.1 ################################# [100%]
2.关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
3.修改Jenkins配置
vim /etc/sysconfig/jenkins
JENKINS_USER="jenkins"
#修改如下
JENKINS_USER="root"
4.启动Jenkins
systemctl start jenkins.service
5.网页登录
ip:8080
admin 账号需要初始密码
[root@localhost ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
8cd941106207495e968cc6e896cec1c3
#这就是密码
选择 【选择插件安装】
选择 【无】->【安装】,我们先不安装插件。
创建管理员,【保存并完成】
adminadmin123
【保存并完成】
【开始使用Jenkins】
后台页面
6.插件
Jenkins->Manage Jenkins->Manage Plugins,点击Available,获取官方插件列表。
替换为国内插件地址
[root@localhost ~]# cd /var/lib/jenkins/updates
[root@localhost updates]# sed -i 's/http:\/\/updates.jenkinsci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
点击Advanced,在最下面,把Update Site改为国内插件下载地址
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
下载中文汉化插件,点击Available,搜索"Chinese",
过一会没有重启的话,需要手动刷新页面。有的插件安装后是不需要重启的。
或者还有一种手动重启方法
192.168.236.147:8888/restart
点击 【是】,等待重启完成(不过页面自动刷新也不可靠,有时候也会需要手动刷新页面)
重新输入账户密码登录
3.用户权限管理
1.安装插件 Role-based
2.全局安全配置
Jenkins->Manage Jenkins->Configure Global Security
3.授权策略修改
【应用】->【保存】
4.分配角色
Jenkins->Manage Jenkins->Manage and Assign Roles->manage-roles
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GLl7W0bS-1629432872394)(C:\Users\闫涛\AppData\Roaming\Typora\typora-user-images\image-20210810110509120.png)]
1.创建角色
Global roles 是全局角色
新建一个 baseRole的角色,并赋予Read权限。让拥有baseRole角色的人拥有基本的权限。
Item roles 是项目角色
我们新建一个 role1 的角色,通过正则通配符的形式能够访问以web开头的所有项目。
再建一个role2,够访问以erp开头的所有项目。
【应用】->【保存】
2.创建用户
Jenkins->Manage Jenkins->Manage Users->新建用户
Bob 123456Tom 123456
现在这两个新用户是没有角色以及权限的,换个新的浏览器登录后是没有菜单的。
3.分配角色
Jenkins->Manage Jenkins->Manage and Assign Roles->Assign Roles
将Tom加入到baseRole角色下,Bob也是
【应用】【保存】
这样Tom就有基本菜单可以使用了,去重新登录。
但是这个账号还是没有项目权限。
给Tom账号分配role1角色,也就是使之能访问web.*的项目
Bob分配role2角色.
【应用】【保存】
5.新建项目
web_projecterp_project
【应用】【保存】
项目列表
此时再去刷新Tom的浏览器,就能看到web_project项目了。Bob也是同理。
4.凭证管理
1.插件安装 Credentials Binding
2.凭证管理
添加凭证
账号密码类凭证
填入Gitlab账号密码
2.jenkins服务器安装git
yum install -y git
3.jenkins安装git插件
4.新建项目
web_demo_1
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GZDzXk2F-1629432872420)(C:\Users\闫涛\AppData\Roaming\Typora\typora-user-images\image-20210810115745134.png)]
复制项目的git地址
点击 Git ,粘贴地址,选择凭证
【应用】【保存】
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ubq468XV-1629432872424)(./images/61.png)]
构建
文件地址为 /var/lib/jenkins/workspace/web_demo_1
[root@localhost ~]# cd /var/lib/jenkins/workspace/web_demo_1[root@localhost web_demo_1]# lsREADME.md
5.ssh类凭证
1.Jenkins服务器生成密钥对,一路回车
[root@localhost ~]# ssh-keygen -t rsaGenerating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'.Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa.Your public key has been saved in /root/.ssh/id_rsa.pub.The key fingerprint is:SHA256:/ZWYbZ6wJf8OzJxwKh4b9U8XPvjLVO8rS0u7UuTN3p0 root@localhost.localdomainThe key's randomart image is:+---[RSA 2048]----+| || || || . = . || S . X X..|| o ^o=+|| + =+%+B|| . *o.*E=|| o .=+*B|+----[SHA256]-----+#查看公钥[root@localhost ~]# cd .ssh/[root@localhost .ssh]# lsid_rsa id_rsa.pub[root@localhost .ssh]# cat id_rsa.pubssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9BRzDi5A3x4ZnSoANfrV3lsLli1AReXkMtBOusnfNMBqzTE8OJIIPGqhehdiFOv9HaLYvmb1mXozA3hXmomDnlz1bi4zCKyyuqw306G7i0NySExRS1iah9KomuWW0LJxfrROErlWsgQFI/ayM5TDDWZzBoteL/B+VYjYOj6T5gFF1F7ZQw4Dhs3tQ8RSsdwmR8a7q9GMaSMuyb6MMvfbTRlLViycRjWaK/ksfTkyZ5nWH5X0QTdnzpav2tqlbMTDa5FGwgv6baaqhO11PRliXQdd1NNQJVJZ7H03SwZVGE7PeNWkXICTlNvGrQOdV9lKgF44Q4Qog/8UYBNsYVMAd root@localhost.localdomain
2.Gitlab添加公钥
3.Jenkins添加私钥
#查看私钥[root@localhost .ssh]# cat id_rsa-----BEGIN RSA PRIVATE KEY-----MIIEpQIBAAKCAQEAvQUcw4uQN8eGZ0qADX61d5bC5YtQEXl5DLQTrrJ3zTAas0xPDiSCDxqoXoXYhTr/R2i2L5m9Zl6MwN4V5qJg55c9W4uMwissrqsN9Ohu4tDckhMUUtYmofSqJrlltCycX60ThK5VrIEBSP2sjOUww1mcwaLXi/wflWI2Do+k+YBRdRe2UMOA4bN7UPEUrHcJkfGu6vRjGkjLsm+jDL3200ZS1YsnEY1miv5LH05MmeZ1h+V9EE3Z86Wr9rapWzEw2uRRsIL+m2mqoTtdT0ZYl0HXdTTUCVSWex9N0sGVRhOz3jVpFyAk5Tbxq0DnVfZSoBeOEOEKIP/FGATbGFTAHQIDAQABAoIBAQCtTdqpj3STL+UTH0N5HAvVsezP+YNYAj/yXckOC6O8Bbb1Xam+FcsJfi+ROrbisM0N8/vWeOcmzNnQm88IvyiKLiibnr9X5634F+2b9uB0JXuWkte3e5HAPEslZibRo3VcY5vZst3qY/2BptRl+l1TPv5yq5NlTazHklxtzVY9Ss3aOEfy+F4IcbKm4XqUSs7jXxRR8tEzSgyL7VI9+8YXUhRl+l+hIe5BKLrquYlEEI/wXWA2kGHAegi/jHVaWtFZRbs44aBGNdmLH4+e5+WhzGM4xMgMaEL/qyweu/7LkGop1+ozTQdN3/KKOc7uF3Nd2YWYhH/p+kHWgVW+3AkhAoGBAOJVR/tprjeRss1QnHowJoFWbFoxw9+4pkjIAYp3+Qh8jEEpixcGK+tUKf1Cm5F/5VmGDyVhJXTVyJeL5VW5PbLKBJs4IQ9yOkWJQ2JOz8nRkN64IPKSOPDVF2fp+e0q9Zy7HMpxD2aryrYDmTYphwscDBWqA1KByVww3cUgAY9vAoGBANXLxRY7cCX28at6BkYSFoI92N7b2x763BQwBTH+RAKsYKcPFfRR28ZjjQ12xR5uQCWDMewIP8ZaT7JjBkV1gXfG83ZDXL+mPrMJwE+I+A4Zsrj7E0OEmoq5F1sUZ/YOcSCI03tBqL5h4gX24VsuhUp+F+4d8/ASB7MH7WYQpyMzAoGAEdZgxuqsRUrhSZcZzfNvhW/3OCCF7GLUEBZbMLuFz+po71XD1XuyCGjoqkIOmqf2vlh3Zx3B4vRaS79FwrzHpQiQ1l7VFC+Pch2ARwYpECHJBhSC3Dsz658Pqivhe5SQKNsCSN4iNZhCcJfWAlPBhdmfBjIQ8vaxlOdxAvEjzlcCgYEAgk8t9EwMIgeu6053znOt5npd2g/1MZ/DTkaqk/sfZuW8D3cBcaYHJ5d73K38nXyjennJjszEWlinZNo4c1OYsvG/aODMAkAIzUVvQssALk/5gAgAiNGlBFKmaqw4ZWAOEb9z7xdpC4lLo0kDuHjVYz8RxN/a1AOZT8TQLLqPtMMCgYEAkLwdiglNg6Hv5ZvQx+V+9z5xARHQxY9IRL6j3OEJA2nphuzdFMh6aw1hcuCna8kx+z9a03/pb5LjSoLwBqAl8lI4TCeU5NBLR+OcwTvmaBjX06OLSnIsFQ7DyfwzW+H7sKJaHCldswWLvAnLaxHAd0hIEeaXYS4AlXEv8MtGYow=-----END RSA PRIVATE KEY-----
4.新建项目
web_demo_2
【应用】【保存】
[root@localhost ~]# cd /var/lib/jenkins/workspace/web_demo_2[root@localhost web_demo_2]# lsREADME.md
5.自动构建
原理就是git仓库发生变化,会通知 Jenkins 拉取代码
1.插件安装
Gitlab Hook和GitLab
2.项目编辑
我们选择 web_demo_2 项目,选择构建触发器
这个地址需要填写到gitlabhttp://192.168.236.147:8080/project/web_demo_2
3.gitlab开启webhook功能
使用 root 账号设置
【保存】
4.项目添加webhook
【Add webhook】
保存之后会有一个 Webhooks (1)
测试报错,是因为还需要Jenkins配置。
5.Jenkins配置
Manage Jenkins->Configure System
取消这个勾选 【保存】【应用】
6.gitlab测试
成功
Jenkins 构建了
7.本地测试
将项目从gitlab下载下来,修改提交,由于是master分支,所以使用root账号提交
echo "webhook" >> README.md
git add .git commit -m "web_hook"git push
也成功了