包含冰的存储桶,作为 S3 存储桶的表示,其中包含内容

照片由 Engin Akyurt 在Unsplash

您好读者,我们将一起执行一些不错的操作,但是为了我们这样做,我希望您拥有/设置一些东西来代替:

  • 具有 root 权限的 AWS 账户。

  • 终端工具的root权限。

如果你准备好了,让我们开始吧。在本文中,您将学习如何:

  • 从具有客户托管策略的用户组创建 IAM 用户。

  • 将 IAM 用户凭证添加到 Jenkins。

  • 使用源代码控制管理器 (SCM) 技术和声明式语法构建 Jenkins 流水线。

AWS

我们首先以 root 用户身份登录 AWS 管理控制台并搜索 IAM 服务。

在左侧导航窗格中,选择 Policiespolicy 是作为单个实体连接在一起的各种服务的权限集。要创建策略,请单击服务的 Create Policy,,搜索并选择 S3。对于操作和简单起见,请选中 All S3 actions (s3:*),对于资源,请选择 All resources

就本文而言,Jenkins 将安装在本地。如果您希望利用 AWS EC2,您可以使用上述相同的技术来配置 EC2 服务的权限。 Jenkins 使用 8080 端口,所以最好配置您的安全组以允许端口 8080 上的 TCP 连接。

标记资源以便于识别是一种很好的做法,因此,将键值对标记添加到策略中会很好。

为策略选择服务后,单击 Review 并使用描述命名策略。单击 Create Policy 创建您的客户管理的策略。

作为一个组织,有时会有新人加入团队,而其他人则会离开。为了避免设置用户权限的重复任务,使用了_user groups_。在左侧导航窗格中,选择用户组。单击创建组并输入用户组名称。在附加权限策略中,选择上一步创建的策略,然后单击创建组

让我们创建一个与组具有相同权限的用户。在左侧导航平面上,选择 Users。单击 Add users 并为该用户输入一个 User name。向用户授予程序化和 AWS 管理控制台访问权限。将用户添加到在上一步中创建的组中,并在审核后,创建用户

Access ID、Secret access key 和 password 非常重要,只出现一次。有必要复制它们并保存在安全的地方。按照 AWS 链接登录到创建的 IAM 用户账户。

在 IAM 用户管理控制台上,导航到 S3 服务并创建可供公众访问的存储桶。

詹金斯

按照此处的安装在本地计算机上安装 Jenkins。

我正在使用 Ubuntu 终端并启动 Jenkins,运行_systemctl start jenkins_

要确认 Jenkins 已启动,使用以下命令检查其状态:_systemctl status jenkins_

让我们访问 Jenkins 平台。在您的浏览器上,使用 localhost:8080 打开 Jenkins 经典 UI(如果您使用的是 EC2 实例,public_ip:8080)。按照说明为 Jenkins 控制台设置用户和密码。创建用户后,使用创建的凭据登录 Jenkins。

Jenkins 允许为其某些功能使用插件,我们将使用 Pipeline AWS StepsS3 Publisher 插件。单击 Manage Jenkins > Manage Plugins > Available 选项卡。搜索并安装 Pipeline: AWS StepsS3 publisher 插件。插件安装后,重启Jenkins。

凭证用作访客 (Jenkins) 可以访问特定主机 (AWS) 的密钥。要将 IAM 用户凭据添加到 Jenkins,请单击 Manage Jenkins > Manage Credentials > 单击 Jenkins store > Global credentials。 在左侧窗格中,单击 添加凭据。 在各自的字段中指定以下内容:

Kind: AWS CredentialsScope: Global (Jenkins, nodes, items, ..., etc)ID: #指定你选择的IDDescription: #Specify它的描述Access ID: #IAM user Access IDSecret Access Key: #IAM user Secret Access ID

包含 Jenkinsfile 的存储库可以在这里找到。分叉、克隆和修改内容以适应您的凭据和资源规范。

不要试图使用我的,它不会起作用 😄 除非很明显,你创建的资源正是我使用的。

让我们建立我们的第一个 Jenkins 项目。从左窗格中,选择 New Item。输入新的项目名称并选择 Pipeline 作为项目类型。

! zoz100037](https://devpress-image.s3.cn-north-1.jdcloud-oss.com/a/34535c2ebe_1*kUsCWoyt_qIJHlBKgyJNPg.jpg)

由于我们将使用提交到存储库的 Jenkinsfile,因此我们将使用源代码控制管理器作为管道脚本的源代码。单击管道选项卡并将定义更改为来自 SCM 的管道脚本。在各自的字段中指定以下内容:

SCM:GitRepository URL:https://github.com/Wach-E/jenkins-aws-upload分支说明符:*/mainScript 路径:Jenkinsfile

点击应用保存。

在左侧窗格中,单击 立即构建。在每个阶段构建之后,每个阶段花费的时间都会显示在项目仪表板上。检查 S3 存储桶的内容以确认文件上传成功。

从左侧窗格中,向下滚动到 Build History,选择构建号并选择 Console Output 以查看逐步构建输出。

恭喜!您已成功实施 AWS 在创建 IAM 用户方面的最佳实践,并创建了用于将文件上传到 S3 存储桶的 Jenkins 管道。 👏

Jenkins 是一个非常强大的 CI/CD 工具,可用于使用适合产品设计的不同技术执行各种操作。您可以通过为此项目配置 Build Triggers 💥 来进一步学习。

如果您觉得这篇文章有帮助,请留下一些鼓掌👏并分享以帮助其他人看到它🙂

更多内容在 __ plainenglish._

Logo

CI/CD社区为您提供最前沿的新闻资讯和知识内容

更多推荐