重庆忠县网站建设公司电话,腾讯云网站模板,做平台的网站有哪些功能,怎样进入谷歌网站Jenkins部署 文章目录 Jenkins部署资源列表基础环境一、部署Gilab1.1、安装Gitlab1.2、修改配置文件1.3、加载配置文件1.4、访问Gitlab1.5、修改root登录密码1.6、创建demo测试项目1.7、上传代码1.8、验证上传的代码 二、部署Jenkins所需软件2.1、部署JDK2.2、部署Tomcat2.3、部…Jenkins部署 文章目录 Jenkins部署资源列表基础环境一、部署Gilab1.1、安装Gitlab1.2、修改配置文件1.3、加载配置文件1.4、访问Gitlab1.5、修改root登录密码1.6、创建demo测试项目1.7、上传代码1.8、验证上传的代码 二、部署Jenkins所需软件2.1、部署JDK2.2、部署Tomcat2.3、部署Jenkins2.4、设置Jenkins插件更新源 三、Jenkins初始化3.1、登录Jenkins页面3.2、选择插件安装方式3.3、创建管理员用户3.4、Jsenkins插件管理3.5、安装插件3.6、软件包安装插件 四、Jenkins角色与权限管理4.1、全局安全配置4.2、角色4.2.1、角色种类4.2.2、设置角色4.2.3、添加角色4.2.4、创建用户4.2.4.1、添加用户4.2.4.2、绑定角色 4.2.5、创建项目测试权限4.2.5.1、创建项目4.2.5.2、测试权限 五、凭证管理5.1、凭据的种类5.2、添加用户密码类型的凭据5.2.1、添加凭据5.2.2、添加凭据参数5.2.3、使用凭据5.2.3.1、创建test01项目5.2.3.2、配置源码管理5.2.3.3、发布项目 5.3、添加SSH类型的凭据5.3.1、Jenkins主机生成密钥对5.3.2、将公钥存放到gitlab5.3.3、Jenkins添加SSH凭据5.3.4、添加凭据参数5.3.5、测试凭据5.3.5.1、创建test02项目5.3.5.2、配置源码管理5.3.5.3、发布项目 资源列表
操作系统主机名配置IPCentOS 7.9jenkins2C4G192.168.93.101CentOS 7.9gitlab2C4G192.168.93.102
基础环境
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld关闭内核安全机制
setenforce 0
sed -i s/.*SELINUX.*/SELINUXdisabled/g /etc/selinux/config修改主机名
hostnamectl set-hostname jenkins
hostnamectl set-hostname gitlab一、部署Gilab
1.1、安装Gitlab
注意 本案例没有修改端口直接使用了80端口注意不要有冲突。如果不修改在克隆项目的时候给出的仓库链接使用的是gitlab.example.com在局域网中使用起来不方便还要修改成gitlab的ip地址。修改后就直接是gitlab的ip地址了。
[rootgitlab ~]# yum -y install policycoreutils-python
[rootgitlab ~]# rpm -ivh gitlab-ce-15.5.1-ce.0.el7.x86_64.rpm1.2、修改配置文件
[rootgitlab ~]# vim /etc/gitlab/gitlab.rb
external_url http://192.168.93.1021.3、加载配置文件
前提是80端口没有被占用备注 重启gitlab-ctl restart关闭gitlab-ctl stop启动gitlab-ctl start状态gitlab-ctl status帮助gitlab-ctl --help
# 加载配置文件时间会有点小漫长请耐心等待
[rootgitlab ~]# gitlab-ctl reconfigure
[rootgitlab ~]# netstat -anpt | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 9536/nginx: master# 查看状态
[rootgitlab ~]# gitlab-ctl status
run: alertmanager: (pid 9869) 80s; run: log: (pid 9755) 102s
run: gitaly: (pid 9858) 81s; run: log: (pid 9121) 194s
run: gitlab-exporter: (pid 9835) 82s; run: log: (pid 9695) 120s
run: gitlab-kas: (pid 9811) 84s; run: log: (pid 9383) 180s
run: gitlab-workhorse: (pid 9820) 84s; run: log: (pid 9518) 137s
run: logrotate: (pid 9055) 207s; run: log: (pid 9063) 206s
run: nginx: (pid 9536) 134s; run: log: (pid 9549) 131s
run: node-exporter: (pid 9830) 83s; run: log: (pid 9619) 125s
run: postgres-exporter: (pid 9953) 79s; run: log: (pid 9775) 96s
run: postgresql: (pid 9240) 189s; run: log: (pid 9335) 186s
run: prometheus: (pid 9843) 81s; run: log: (pid 9731) 108s
run: puma: (pid 9443) 152s; run: log: (pid 9452) 148s
run: redis: (pid 9085) 201s; run: log: (pid 9093) 200s
run: redis-exporter: (pid 9837) 82s; run: log: (pid 9713) 114s
run: sidekiq: (pid 9462) 146s; run: log: (pid 9488) 143s1.4、访问Gitlab
访问地址http://192.168.93.102 默认账号root默认密码cat /etc/gitlab/initial_root_password | grep Password:
1.5、修改root登录密码
点击右上角用户头像在下拉菜单中点Preferences在左侧列表中开打password。本案例中使用的root密码为pwd12345注意密码长度至少8位。
1.6、创建demo测试项目
创建一个项目名称叫demo 1.7、上传代码
[rootjenkins ~]# yum -y install git
[rootjenkins ~]# tar -zxvf BlueLight.git.tar.gz
[rootjenkins ~]# git clone http://192.168.93.102/root/demo.git
[rootjenkins ~]# mv -f BlueLight/* demo/
[rootjenkins ~]# cd demo/
[rootjenkins demo]# git config --global user.email wzhadmin.com
[rootjenkins demo]# git config --global user.name wzhwzh.com
[rootjenkins demo]# git add .
[rootjenkins demo]# git commit -m web
[rootjenkins demo]# git push -uf origin main1.8、验证上传的代码 二、部署Jenkins所需软件
Jenkins节点操作
2.1、部署JDK
[rootjenkins ~]# tar -zxvf jdk-11.0.16.1_linux-x64_bin.tar.gz
[rootjenkins ~]# mv jdk-11.0.16.1 /usr/local/java11[rootjenkins ~]# cat /etc/profile EOF
export JAVA_HOME/usr/local/java11/
export CLASSPATH$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH$JAVA_HOME/bin:$PATH
EOF[rootjenkins ~]# source /etc/profile
[rootjenkins ~]# java -version
java version 11.0.16.1 2022-08-18 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.16.11-LTS-1)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.16.11-LTS-1, mixed mode)2.2、部署Tomcat
[rootjenkins ~]# tar -zxvf apache-tomcat-8.5.56.tar.gz
[rootjenkins ~]# mv apache-tomcat-8.5.56 /usr/local/tomcat2.3、部署Jenkins
[rootjenkins ~]# yum -y install fontconfig
[rootjenkins ~]# mv jenkins2.401.1.war jenkins.war# 不需要手动解包把war包移动到tomcat的项目目录中webapps中开启tomcat将会自动解压
[rootjenkins ~]# mv jenkins.war /usr/local/tomcat/webapps/
[rootjenkins ~]# /usr/local/tomcat/bin/startup.sh2.4、设置Jenkins插件更新源
注意default.json文件或updates目录需要jenkins初始化结束才能出来。此处需要稍等片刻。
[rootjenkins ~]# cd /root/.jenkins/updates/
[rootjenkins updates]# sed -i s/https:\/\/www.jenkins.io/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g default.json
[rootjenkins updates]# sed -i s/https:\/\/www.google.com/https:\/\/www.baidu.com/g default.json三、Jenkins初始化
访问地址http://192.168.93.101:8080/jenkins
3.1、登录Jenkins页面
根据页面提示复制Jenkins安装后初始的密钥
[rootjenkins ~]# cat /root/.jenkins/secrets/initialAdminPassword
72a19165668b4b1daec409d9edce6c4e3.2、选择插件安装方式
注意如果有插件安装失败也没关系因为安装插件需要网络结束后可以点击重试。
3.3、创建管理员用户
本案例将初始的管理员账号和密码都设置为admin
3.4、Jsenkins插件管理 在安装Jenkins时选择默认安装插件会很慢甚至会失败因此我们可以配置插件源为国内的地址。 进入Manage Jenkins——Plugins——Advancedsettings最下面有Update Site升级站点设置为如下链接并点“提交”按钮 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json 然后重启Jenkins
# 关闭
[rootjenkins ~]# /usr/local/tomcat/bin/shutdown.sh# 开启
[rootjenkins ~]# /usr/local/tomcat/bin/startup.sh3.5、安装插件
点击“Manage jenkins”——“Plugins”——“Avalableplugins”输入要安装的插件并勾选列出来的插件然后点击安装。可以都去搜索一下防止插件没有安装
# 本课程内可能会用的插件如下所示
Git Parameter
Git Pipeline for Blue Ocean GitLab
Blue Ocean
Blue Ocean Pipeline Editor Blue OceanCore JS
Pipeline SCM API for Blue Ocean Dashboardfor Blue Ocean
Build With Parameters extended Choice ParameterKubernetes
Kubernetes CLI Kubernetes CredentialsImage Tag Parameter Active Choices
SSH
ansible
Maven Integration Publish Over SSH
Role-based Authorization Strategy NodeJS
############################################################
Git Credentials
Credentials Binding
Dynamic Extended ChoiceParameter Plug-In Dynamic Parameter Plug-In
Pipeline
Pipeline: DeclarativeLocalization: Chinese (Simplified)
############################################################# 注意在初始化如果没有安装好此处可以进行手动安装为其他项目的实施提供功能3.6、软件包安装插件
将本课程提供的软件包上传至jenkins服务器
# 第一个mv是备份的意思
[rootjenkins ~]# mv /root/.jenkins/plugins /root/.jenkins/plugins.old
[rootjenkins ~]# tar zxf jenkins-plugins.tar.gz
[rootjenkins ~]# mv plugins/ /root/.jenkins# 重启Tomcat
[rootjenkins ~]# /usr/local/tomcat/bin/shutdown.sh
[rootjenkins ~]# /usr/local/tomcat/bin/startup.sh四、Jenkins角色与权限管理
我们可以利用”Role-basedAuthorization Strategy“插件来管理Jenkins用户权限在前面的插件安装中已经安装过次插件。
4.1、全局安全配置
“Dashboard”——“ManageJenkins”——“Security”——“Authentication”将授权策略修改为“Role-Based Strategy”并保存设置。
4.2、角色
为了更方便的为用户授权jenkins中使用角色作为一类权限的容器。角色是一组相关权限的集合。可以为用户指定角色而不是直接指定权限。
4.2.1、角色种类
Global rolesGlobal roles全局角色管理员等高级用户可以创建基于全局的角色Item roles针对某个或者某些项目的角色Agent roles节点相关的权限
4.2.2、设置角色 ”Dashboard“——”Manage Jenkins“——”Manage and AssingRoles“。点击”Manage Roles“ 本案例中我们添加三个角色 baseRole该角色为全局角色这个角色需要绑定Overall下面的Read权限是为了给所有用户绑定最基本的Jenkins访问权限。注意如果不给后续用户绑定这个角色会报错用户名ismissing the Overall/Read permission role1该角色为项目角色。使用正则表达式绑定”my-itme01.*“意思是只能操作名称为”my-item01‘开头的项目。role2该角色也为项目角色。绑定”my-item02“意思是只能操作”my-item02“开头的项目。
4.2.3、添加角色 添加Global roles 添加item roles
4.2.4、创建用户
4.2.4.1、添加用户
”Dashboard“——”Manage Jenkins“——”Users“在右上角点击”CreateUser“创建用户。添加两个用户zhangsanlisi 4.2.4.2、绑定角色
”Dashboard“——“Manage Jenkins”——”Manage and Assign Roles“然后点击”Assign Roles“为zhangsan用户绑定baseRole和role1角色 为lisi用户绑定baseRole和role2角色 4.2.5、创建项目测试权限
4.2.5.1、创建项目 用管理员的权限创建两个项目名字分别是my-item01-zhangsanmy-item02-lisi、 创建zhangsan项目 ”Dashboard“——”新建Item“——”确定“按钮 创建lisi项目 ”Dashboard“——”新建Item“——”确定“按钮 4.2.5.2、测试权限
分别用zhangsan和lisi的身份登录到系统可以发现每个用户只能管理属于自己的角色范围内的项目 五、凭证管理
在许多第三方网站和应用程序可以与Jenkins进行交互例如程序代码仓库云存储系统和服务等。此类应用程序的系统管理员可以在应用程序中配置凭据以专供Jenkins使用。通常通过将访问控制应用于这些凭据来完成这项工作以”锁定“Jenkins可用的应用程序功能区域。一旦Jenkins管理员即管理Jenkins站点的Jenkins用户在Jenkins中添加/配置这些凭据Pipeline项目可以使用凭据与这些第三方应用程序进行交互。用管理员身份登录到Jenkins。要在Jenkins使用凭据管理功能需要安装”CreadentialsBinding“插件前面已经安装过此插件这里不再安装凭据可以用来存储需要密文保护的数据库密码、Gitlab密码信息、Docker私有仓库密码等以便Jenkins可以和这些第三方的应用进行交互。
5.1、凭据的种类 Jinkins提供了多种类型的凭据使用与不同的业务需求具体类型如下 Username with password用户名和密码GitHub AppGitHub应用进行身份验证GitLab API token存储GitLab的用户给API tokenOpenShift Username and password存储OpenShift的用户名和密码SSH Username with private key使用SSH用户和密钥Secret file需要保密的文本文件使用时Jenkins会将文件复制到一个临时目录中再将文件路径设置到一个变量中等构建结束后所复制的Secret file就会被删除。Secret text需要保存的一个加密的文本串如顶顶机器人或GitHun的api tokenCertificate通过上传证书文件的方式 其中常用的凭证类型有Username with password用户密码和SSH Username with private keySSH密钥。接下来以使用Git工具到GitLab拉取项目源代码为例演示Jenkins的如果管理GitLab的凭证。 注意为了让Jenkins支持从GitLab拉取源码需要安装Git插件以及在CentOS 7系统上安装Git工具 凭据的作用范围 凭据具有与它们相关联的范围。这是一种表示它们如何才能被暴露的方式Jenkins使用的主要范围有如下2种。 System系统 顾名思义这个范围与跟上下文也就是Jenkins系统相关联。此范围中的凭据只被暴露给系统和后台任务并且一般被用于连接到构建节点或代理节点等。 全局 全局范围是默认选项通过用来确保Jenkins中的任务可以使用凭证
5.2、添加用户密码类型的凭据
5.2.1、添加凭据 ”Manage jenkins“——”Credentials“打开如下页面并点击”全局“进入全局凭据管理界面如下图所示 在如下界面中点击右上角的”Add Credentials“按钮添加凭据
5.2.2、添加凭据参数 这里主要的内容有 凭据类型Username with password范围Global用户名root该账号是gitlab中添加的账号密码gitlab中为root用户设置的密码本案例此处为wzh.2005注意不是系统的root密码ID选填设置平局的唯一标识不设置会自动分配一个唯一标识描述选填凭据名称此处最好添加一下使用凭据的时候便于识别不设置就是用用户名 点击”Create“创建此凭据添加结果如下
5.2.3、使用凭据
5.2.3.1、创建test01项目
[rootjenkins ~]# yum -y install git5.2.3.2、配置源码管理 5.2.3.3、发布项目 运行成功之后如果没有报错可以刷新页面就可以看到绿色的标识了
5.3、添加SSH类型的凭据
SSH类型的凭据可以使Jenkins在拉去gitlab中的代码时使用密钥对的方式不仅实现了免密连接同时也会对数据进行加密是一种安全可靠的凭据方式。
5.3.1、Jenkins主机生成密钥对
在Jenkins主机上以root身份生成密钥对
# 一路回车即可
[rootjenkins ~]# ssh-keygen5.3.2、将公钥存放到gitlab
# 查看公钥文件内容
[rootjenkins ~]# cat /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQClBYGM15IosBfenQszhhjbet06ww1YeapOb0lv7Mo9npYYW5nZ9aKHNzYsHIydkJ/ihOohJJe/3ZYHKHSfd2kyOGC2/wWn/lBvbZTinA0UlDZayM/41gEU0vlv2evlM4h3B1SKbWHTM6C/XjwUhBtyaa1rRaSiaCTUjPfKtZu9mviNMn8mxGPgeyjTghqE/CrM8iGGuFkYsowI2Zbhai8mIKGri3eIGQvuLYgO5X7s9W/g94wJAgapf8rNrOeU8r9Vl92O3rGO0ry9eNg8fbY8zuzPN6qWe3GnNT9cHN8qmHBqb4mHDzTsCMDgfTss8CzxEAxF7VOYpRb/t rootjenkins用root用户登录gitlab点击右上角的头像在下拉菜单中点”perferneces“然后在左侧点击”SSH Keys“ 5.3.3、Jenkins添加SSH凭据
”Manage jenkins“——”Credentials“打开如下页面并点击”全局”进入全局凭据界面
5.3.4、添加凭据参数
这里主要的参数有 类型SSH范围GlobalID可选描述可选Usernameroot这个密钥对是用root的身份生成的Private Key添加root生成的私钥
# 查看私钥文件内容
[rootjenkins ~]# cat /root/.ssh/id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEApQWBjNeSKLAX3p0LM4YY23rdOsMNWHmqTm9JbzPqPZ6WGFu
Z2fWihzc2LByMnZCf4oTvqISSXvv92WByh0n3dpMjhgtv8Fp/5Qb22U4pwNFJQ2W
sjPNYBFNL5b9nr5TOIdwdUim1h0zOgv148FIQbcmmta0Wkomgk1Iz3yrWbvZr4j
TJ/JsRj4Hso04IahPwqzPIhhrhZGLKMCNmfm4WovJiChq4t3iBkL7i2IDuV7PVv
4PeMCQIGqX/vKzaznlPK/VZfdjt6xjvtK8vXjYPH22PM7szzeqlntxpzU/XBzfKp
hwamJhw807AjA4H07LPvAs8RAMRe1TmKUW/7QIDAQABAoIBAFvqCDGBdLhS9Mia
oj2NiFTfR0/OiqVoBtLvK3E67qNGvfhyNENGU/nTf7L1/HVc50cQilTZAuSJMqyS
jkscGDN6vr86emjewJO5YE7DOYBbUbpHbGeQg5cpq9tA93yut725uoqo77w8wWa
oeMnlwzBPKiJSjAsMuzKzS48W1hDgrCfTxjCY0/1RdazuGn5J2Fx841ZJ/JFgK
MtkVIpzd8f4pHdWIaPfLpCE2595tbQcJsu6ZDbUzHS0MBG3RUrMLqghriYHJkZmi
6YW2Fc7LOW/brw293IdM43myQUEmao8Wl/MWF19BB4En/p2dpGZnTcFTxAdvq4z
Ow3KYCECgYEA1FjgQw0A1wm3SNVQbX1c/jGZrRily9AcMkFC8EGYQCYhxs0vyOyz
/vGtXivEu5eyyBGy2rSklFSJL/GjG87wUmd4MEAGSO1OYregnY1AtyyeuUpLrGL1
YqA/2E7lSH2ZBewNlbRpg6cetYV7wbpKjcCbxrpN9shDc4mqBzHnUCgYEAxvIJ
vk/oqYI5m6QGHT/Yd2Nh9nTmp4t7x5SQI4zc3bxIJGAg5MLr7ovrmtusGr1SHzb
vhQfNWeWooaCiQzxuIEId4MSZqBOrxKQl39jIdY9EKNroRU43BF2At9NNs0H3qu
gETUSTNi648Kt1vAgNBZIft85DipChIAnMuc3JkCgYAjqfWobUOp2iDlY6ZJbVez
/aKg1tXpwD8sFZfngCzRAVaE7CtNZKvqcq66dUFqfFTzkz1lzBckLnqICd5qKjxk
qqodHLVxr12iP6512J6IU1bM2Y4QrqR4PY4HzAVF7seqoGxlgZurR/UPuIFLIOf
AS1omCPgwHlaD2g7WB1djQKBgQC9Wx6e/5vpy0Nduq7/JAe7CuLxG692hTKZcfQH
gkmu20inJr/oPQcnFCSiiyrdy9AO4JiewLQ7to8Pvot8Os/P1zDh3WhyyZra1Aa
/y8XlLO8OaR1GQtbNzjNLxFlOZ1lWDvP95dOmQX6PJhhEiCizsRVxINQ3fwebH
Vp3E8QKBgHx/PQAlldjgPrUFs6xq0A6OCLtn6PWASBoFjh3SV4jXKUlY60Wg45H8
x60Kr44dAgvONbVFlyaUCl7nY78GeeMlCx7NtHktmyQDC5AL3g2Dmfzfq7Klcc7
cKm534YYtALBTEVXsDalL9SP5JRnBqKPPzF7Wu88d/rEL7r1UaQ2
-----END RSA PRIVATE KEY-----5.3.5、测试凭据
5.3.5.1、创建test02项目 5.3.5.2、配置源码管理
如果报错以下错误可以使用Jenkins节点手动使用ssh登录一下在使用密钥对时要提前在jenkins主机上生成gitlab主机的fingerprint否则此处会提示报错。错误信息如下第一次连接的话可以看到提示”Are yousure you want to continue connecting (yes/no)? yes“输入yes并回车即可生成gitlab主机的fingerprint
[rootjenkins ~]# ssh root192.168.93.102
The authenticity of host 192.168.93.102 (192.168.93.102) cant be established.
ECDSA key fingerprint is SHA256:ulREvG0hrcgiCcK7Tcbvp0jxe7GDM8ZthK7bU3fMM.
ECDSA key fingerprint is MD5:4b:84:94:c0:62:22:76:ed:26:24:8e:46:c9:1e:03:85.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 192.168.93.102 (ECDSA) to the list of known hosts.
root192.168.93.102s password: 5.3.5.3、发布项目 运行成功之后如果没有报错可以刷新页面就可以看到绿色的标识了