DevOps之五Jenkins

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 账号需要初始密码

image-20210810105227167

[root@localhost ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
8cd941106207495e968cc6e896cec1c3
#这就是密码

选择 【选择插件安装】

image-20210810105401452

选择 【无】->【安装】,我们先不安装插件。

image-20210810105440321

创建管理员,【保存并完成】

adminadmin123

image-20210810105528913

image-20210810105608170

【保存并完成】

【开始使用Jenkins】

image-20210810105626844

后台页面

image-20210810105700978

6.插件

Jenkins->Manage Jenkins->Manage Plugins,点击Available,获取官方插件列表。

image-20210810105741755

image-20210810105804981

替换为国内插件地址

[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

image-20210810105939929

下载中文汉化插件,点击Available,搜索"Chinese",

image-20210810110019880

image-20210810110038861

过一会没有重启的话,需要手动刷新页面。有的插件安装后是不需要重启的。

或者还有一种手动重启方法

192.168.236.147:8888/restart

点击 【是】,等待重启完成(不过页面自动刷新也不可靠,有时候也会需要手动刷新页面)

重新输入账户密码登录

3.用户权限管理

1.安装插件 Role-based

image-20210810110234045

2.全局安全配置

Jenkins->Manage Jenkins->Configure Global Security

image-20210810110336359

3.授权策略修改

image-20210810110357412

【应用】->【保存】

4.分配角色

Jenkins->Manage Jenkins->Manage and Assign Roles->manage-roles

image-20210810110436626

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GLl7W0bS-1629432872394)(C:\Users\闫涛\AppData\Roaming\Typora\typora-user-images\image-20210810110509120.png)]

1.创建角色

Global roles 是全局角色

新建一个 baseRole的角色,并赋予Read权限。让拥有baseRole角色的人拥有基本的权限。

image-20210810110640582

Item roles 是项目角色

我们新建一个 role1 的角色,通过正则通配符的形式能够访问以web开头的所有项目。

再建一个role2,够访问以erp开头的所有项目。

image-20210810110916334

【应用】->【保存】

2.创建用户

Jenkins->Manage Jenkins->Manage Users->新建用户

image-20210810111015281

Bob 	123456Tom 	123456

image-20210810111049731

image-20210810111156636

现在这两个新用户是没有角色以及权限的,换个新的浏览器登录后是没有菜单的。

image-20210810111237185

3.分配角色

Jenkins->Manage Jenkins->Manage and Assign Roles->Assign Roles

image-20210810111338403

image-20210810111409279

将Tom加入到baseRole角色下,Bob也是

image-20210810111439087

【应用】【保存】

这样Tom就有基本菜单可以使用了,去重新登录。

image-20210810111805239

但是这个账号还是没有项目权限。

给Tom账号分配role1角色,也就是使之能访问web.*的项目

Bob分配role2角色.

image-20210810111924380

【应用】【保存】

5.新建项目

image-20210810112051801

web_projecterp_project

image-20210810112245989

image-20210810112255720

【应用】【保存】

项目列表

image-20210810112456845

此时再去刷新Tom的浏览器,就能看到web_project项目了。Bob也是同理。

image-20210810112646322

4.凭证管理

1.插件安装 Credentials Binding

image-20210810112810533

2.凭证管理

image-20210810112903233

添加凭证

image-20210810113927231

账号密码类凭证

填入Gitlab账号密码

image-20210810114129965

image-20210810114203336

2.jenkins服务器安装git

 yum install -y git

3.jenkins安装git插件

image-20210810114335515

4.新建项目

web_demo_1

image-20210810115555556

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GZDzXk2F-1629432872420)(C:\Users\闫涛\AppData\Roaming\Typora\typora-user-images\image-20210810115745134.png)]

复制项目的git地址

image-20210810115700375

点击 Git ,粘贴地址,选择凭证

image-20210810120058115

image-20210810120204468

【应用】【保存】

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ubq468XV-1629432872424)(./images/61.png)]

构建

image-20210810120430587

image-20210810120500213

文件地址为 /var/lib/jenkins/workspace/web_demo_1

image-20210810120522704

[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添加公钥

image-20210810120937401

image-20210810121003020

image-20210810121025020

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-----

image-20210810121531530

image-20210810121542057

4.新建项目

web_demo_2

image-20210810121829823

image-20210810121858115

image-20210810121930388

image-20210810121954773

image-20210810122026519

【应用】【保存】

image-20210810122217950

[root@localhost ~]# cd /var/lib/jenkins/workspace/web_demo_2[root@localhost web_demo_2]# lsREADME.md

5.自动构建

原理就是git仓库发生变化,会通知 Jenkins 拉取代码

1.插件安装

Gitlab Hook和GitLab

image-20210810134203888

2.项目编辑

我们选择 web_demo_2 项目,选择构建触发器

image-20210810134548045

这个地址需要填写到gitlabhttp://192.168.236.147:8080/project/web_demo_2

3.gitlab开启webhook功能

使用 root 账号设置

image-20210810134835301

【保存】

4.项目添加webhook

image-20210810135117549

image-20210810135347623

image-20210810135411316

image-20210810135535224

【Add webhook】

保存之后会有一个 Webhooks (1)

image-20210810135634147

测试报错,是因为还需要Jenkins配置。

image-20210810135728939

5.Jenkins配置

Manage Jenkins->Configure System

image-20210810140017671

取消这个勾选 【保存】【应用】

image-20210810140044462

6.gitlab测试

image-20210810140115622

成功

image-20210810140140256

Jenkins 构建了

image-20210810141559828

7.本地测试

将项目从gitlab下载下来,修改提交,由于是master分支,所以使用root账号提交

echo "webhook" >> README.md
git add .git commit -m "web_hook"git push

也成功了

image-20210810141732677

image-20210810141813826

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值