使用 Jenkins 进行 CI/CD
你好,希望你一切安好。今天我们来了解一下持续开发和持续集成(CI/CD)工具。
Jenkins 是一个开源自动化服务器,可用于自动化与软件构建、测试、交付或部署相关的各种 任务。
拿出你们的笔记本电脑,我们来自动化一些任务。
先决条件
🎯 Jenkins点击下方链接 ⬇️
🎯 需要一些脚本编写知识
🎯 您的机器上已安装 Java
议程
🎯 Jenkins 设置
🎯 创建作业
🎯 使用 Cron 表达式调度作业
🎯 远程触发
🎯 Webhook 和轮询 SCM
🎯 切换用户
Jenkins 设置
按照安装指南操作后,Jenkins 的默认端口是 802.1 8080。您可以使用任何浏览器访问http://localhost:8080该端口。安装指南已包含在下方的资源部分。
⏭️ 之后,输入您在设置过程中创建的用户名和密码。您的控制面板应该如下所示:
创造就业机会
给它命名,选择free style project并单击“确定”
您已被重定向到此页面。
我选择使用窗口外壳是因为我的 Windows 机器上安装了 Jenkins。
我们来看看结果。
结果
工作调度
既然我们已经了解了如何创建新物品,接下来让我们看看如何使用自动化工具来实现这个任务。克朗。
Cron 是内置的任务调度器——用于在固定时间运行任务、重复执行等等。
现在让我们使用以下命令安排构建:定时任务表达式找到该configure图标并点击它。
⏭️ 选择定期构建选项
图 1.8
在描述图中Fig 1.8,我们以 1 分钟的间隔触发一次构建。
⚠️ 请记住在相邻的两颗星之间留出空格。
关于 cron/调度程序的一些说明:每个星号代表时间,即第一个星号(秒),第二个星号(分钟),依此类推。
⏭️ 让我们查看一下构建历史记录,看看是否cron调度器确实有效。
远程触发器
我们还有其他构建文件的方法。让我们untick定期构建并选择build triggers。
⏭️ 这是令firebuild牌。然后我们以 URL 的形式输入远程触发器。点击应用并保存。URL
应如下所示:http://localhost:8080/job/myfirstjob/build?token=firebuild
💡 现在让我们在浏览器中运行上面的 URL;我们现在有了一个新的构建触发器。
所以,只要你有远程触发链接,你就可以使用任何浏览器从任何地方进行构建。
参数化作业:
构建参数允许我们将数据传递给 Jenkins 作业。使用构建参数,我们可以传递任何想要的数据:git 分支名称、密钥凭据、主机名和端口等等。
⏭️ 如果你仔细观察,你会发现build with parameter
Webhook 和 Poll SCM
Webhook 是一种机制,用于响应推送到 Git 存储库的提交,自动触发 Jenkins 项目的构建。
尽管
Poll SCM 会定期轮询 SCM,以检查是否进行了更改(即新的提交),如果自上次构建以来推送了新的提交,则会构建项目。
要使用 webhook,我们必须首先连接到我们的源代码管理器 git。
根据仓库的不同,将 Git 分支切换到 main 或 master。⚠️
对于私有仓库,需要提供凭据。
GitHub Web Hook
📝 前往您在 GitHub 上的存储库,找到并点击 web-hook settings section。
⚠️ 上述方法对 localhost 无效,要使 localhost 成为公共 IP 地址,我们需要 ngrok 进行转发。
下载并安装。暴露 Jenkins 端口以8080获取 URL
当我们访问该网址时,会得到:
接下来,我们将 ngrok 转发的 URL 粘贴到 GitHub Webhook 中, 点击并刷新页面。刷新后,页面会显示绿色 ✅Add webhook
⏭️ 现在,让我们使用从 ngrok 生成的转发 URL 连接到 Jenkins webhook 登录 Jenkins。
要构建,请编辑您的 GitHub 仓库,提交更改并刷新 Jenkins 页面。
管理用户
除了最初创建的第一个用户之外,我们再创建一个用户。
⏭️ 输入凭据
结果:
切换用户
现在我们可以注销管理员用户,然后使用该testuser帐户登录。
登录时可以看到访问被拒绝,因为我们需要授予该用户权限或提升权限才能在 Jenkins 中执行某些角色。
让我们注销测试用户,并以管理员用户身份登录,通过基于角色的访问控制授予访问权限。
⏭️ 首先,我们需要让用户能够看到我们所有的任务。请转到“管理 Jenkins”,然后选择“配置全局安全”。
authorization我之前已将其设置为“基于角色”,现在我将更改它 。点击“应用”,保存并注销。之后,您就可以使用测试帐户登录了。Anyone can do anything
现在是测试用户该账户可以看到所有已创建的作业。这不是最佳实践,因为我们不应该授予任何用户在 Jenkins 上执行某些操作的权限。
我们为此使用了基于角色的授权策略插件。点击manage plugin并搜索基于角色的授权策略。
要使用角色库,请转到“管理 Jenkins”并配置全局安全。此时角色库选项应该可用。 然后返回“管理 Jenkins”并单击“角色库”。Manage and Assign Roles
点击“应用并保存”。
现在让我们从主帐户注销,然后使用我们的测试用户帐户登录。
之所以会出现这种情况,access denied 是因为我没有根据之前的配置授予该用户帐户查看权限。让我编辑一下,然后授予它。查看权限我将注销testuser管理员帐户,并启用查看权限和总体访问权限。
点击应用并保存。现在退出管理员账户,然后使用testuser账户登录。
配置系统
在这里您可以设置一些参数,例如 Jenkins URL、GitHub 服务器等。
电子邮件通知
在我们的 CI/CD 管道中,当构建过程或事务失败时,我们可以通过电子邮件通知收到通知。
设置方法:找到Configure System电子邮件设置部分。
返回配置
结论
希望这篇文章对你开始使用 Jenkins 构建 CI/CD 工作流程有所帮助。我计划在下一篇教程中部署一个 NodeJS 项目。感谢阅读。
资源
我强烈推荐Thetips4you 的 Jenkins 入门教程。经作者完全许可,我在此摘录了该教程的部分内容。
文章来源:https://dev.to/drsimplegraffiti/cicd-using-jenkins-j83
