如何在 CentOS 上安装 Jenkins 并连接到 GitHub如何在 CentOS 上安装 Jenkins 并连接到 GitHub如何在 CentOS 上安装 Jenkins 并连接到 GitHub如何在 CentOS 上安装 Jenkins 并连接到 GitHub
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 CentOS 上安装 Jenkins 并连接到 GitHub

在此页

  1. 詹金斯安装:
  2. 配置设置:
  3. 詹金斯配置:
    1. 安装插件:
    2. 添加凭据:

    Jenkins 提供广泛使用的开源 CI/CD 工具。在本文中,我们将学习如何安装 Jenkins 并使用 Github 配置它以使用 SSH 将文件发送到服务器。

    詹金斯安装:

    Jenkins 是基于 JAVA 的应用程序,因此首先我们需要安装 JAVA。以下命令将在 centos 7 上安装 JAVA。

    sudo yum install java-1.8.0-openjdk-devel

    验证Java版本

    [ ~]# java -version
    openjdk version "1.8.0_212"
    OpenJDK Runtime Environment (build 1.8.0_212-b04)
    OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)

    现在使用以下命令配置 Jenkins 存储库。

    curl --silent --location http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo | sudo tee /etc/yum.repos.d/jenkins.repo

    这将显示以下输出。

    [jenkins]
    name=Jenkins-stable
    baseurl=http://pkg.jenkins.io/redhat-stable
    gpgcheck=1

    然后运行以下命令添加 Jenkins 密钥。

    sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key

    现在我们已经配置了 Jenkins 存储库,我们准备使用以下简单命令安装 Jenkins。

    sudo yum install jenkins

    安装完成后检查 Jenkins 服务并在系统重启时启用它。

    sudo systemctl start Jenkins
    sudo systemctl enable jenkins

    现在重新启动系统并使用以下命令确保 jenkins 服务正在运行。

    sudo systemctl enable jenkins

    现在允许防火墙中的 Jenkins。

    firewall-cmd --permanent --add-port=8080/tcp
    firewall-cmd --reload

    配置设置:

    我们不能直接使用 Jenkins,我们需要在 Web 浏览器中输入域名或 IP 地址,然后输入 Jenkins 默认端口号 8080。

    在上面的截图中,我们需要输入一次 Jenkins 自动生成的密码。运行以下命令以获取密码。

    sudo cat /var/lib/jenkins/secrets/initialAdminPassword

    这将给出类似 2179c452db3b45f98cf9e4c4961ab635 的输出

    输入密码后,我们需要给 Jenkins 系统安装插件。为此,只需选择已安装的建议插件即可安装所有默认插件。

    填写所有详细信息,然后单击保存并继续。

    现在它将要求实例配置,我们也可以在其中更改默认端口号。

    现在我们的 Jenkins 已经保存并可以使用了。

    恭喜,新的 Jenkins 设置成功完成并可以使用了。

    以下屏幕截图显示了 Jenkins 的默认仪表板。

    詹金斯配置:

    安装插件:

    在我们继续下一步之前,请确保安装以下插件。

    转到管理 Jenkins -> 管理插件 -> 可用 -> 过滤器 -> 搜索与 GitHub 集成所需的以下插件。

    通过 SSH 发布
    Git
    GitHub 插件
    Git 客户端插件

    在这里,Publish Over SSH 插件需要通过 SSH 将我们的文件推送到服务器。

    添加凭据:

    我们需要在 Jenkins 中添加服务器凭据。

    转到 Jenkins 仪表板→凭证→系统→全局凭证(不受限制)→添加凭证

    我们可以选择要安装的凭据类型。在这里我们添加 GitHub 凭据用户名和密码以备后用。

    詹金斯服务器上的 ssh。

    Jenkins 可以使用 ssh 连接到远程服务器,并能够运行脚本、命令或将文件从一台服务器复制到另一台服务器。

    为此,我们需要在 Jenkins 服务器和远程服务器之间创建一个 ssh 连接。

    下一步在我们想要与 Jenkins 服务器连接的 Jenkins 上添加 SSH 凭据。

    我们想使用 root 用户连接到 Jenkins 的 Web 服务器,例如,我们的 Web 服务器是 138.197.151.144 和用户 root,因此我们需要使用 ssh 登录到该服务器。

    ssh 

    现在转到主目录并 cd 到 .ssh 文件夹。

    cd ~/.ssh

    下一步将是在我们的 Web 服务器上为 root 用户生成私钥和公钥。

    ssh-keygen -t rsa -f private_key_for_jenkins

    运行上面的命令后,它会要求“输入密码”,我们不需要输入密码。所以点击回车两次,它会在网络服务器private_key_for_jenkins和private_key_for_jenkins.pub上生成两个密钥。

    这里 private_key_for_jenkins 是 138.197.151.144 的私钥,我们需要将这个文件的内容用于我们的 Jenkins 服务器。

    我们有第二个名为 private_key_for_jenkins.pub 的文件,它是 Web 服务器的公钥。我们需要将其数据复制到位于同一目录中的另一个名为 authorised_keys 的文件。

    在大多数情况下,authorised_keys 文件存在于 ~/.ssh/ 文件夹中,但有时它会丢失,我们需要生成新的 authorised_keys 文件。只需运行以下命令将其复制到 authorised_keys,此命令还会生成新的 authorised_keys(如果可用)。

    cat private_key_for_jenkins.pub > authorized_keys

    现在登录到 Jenkins 服务器,然后转到 Manage Jenkins -> Configure Systems

    我们可以在 Web 浏览器中直接写入 http://ip_address:8080/configure 的替代方法,这将打开 Configure Systems 以进行 ssh 配置。

    现在,在“配置 Jenkins”中查找 SSH 服务器服务器部分。请注意,仅当我们在 Jenkins 服务器上安装了“SSH Credential Plugin”时,此部分才可用。

    转到通过 SSH 发布部分转到密钥并粘贴 private_key_for_jenkins 的内容

    现在在 SSH 服务器选项中,单击添加按钮并输入 SSH 服务器详细信息。我们可以从高级选项更改 ssh 端口和其他设置。

    进行更改后,单击“测试配置”,如果所有设置都正确,我们应该会收到如上图所示的成功消息。

    请注意,我们可以根据使用 ssh 在多个服务器上发布相同代码的要求添加多个服务器。

    为此,我们需要为前面提到的每个服务器生成私钥,并将它们的私钥添加到 Jenkins 服务器。

    最后,单击“保存”按钮并保存我们的更改。我们已经成功地创建了一个到远程服务器的 ssh 连接。现在我们可以将文件发送到远程服务器,也可以在该服务器上执行任何命令或脚本。

    使用 Github 配置 Jenkins

    对于由 PUSH 和 PULL 请求触发的构建自动化,需要将 Jenkins WebHook 添加到每个 GitHub 存储库或组织 webhook。

    从 Github 存储库配置 webhook 的步骤。

    1. 登录您的 GitHub 帐户

    2.点击我们需要设置webhook的repository

    3.转到该存储库的设置选项

    4. 点击 Webhooks 并添加 Payload URL,它看起来像 http://jenkins_ip:8080/github-webhook/

    5. 从 Content type 中选择 \application/json\ 作为编码类型

    6. 将 \Secret\ 留空(除非在 Jenkins \Configure System -> GitHub plugin\ 部分创建并配置了 secret)

    7. 选择“让我选择个别事件”

    8.启用PUSH和Pull Request事件

    9.确保选中“活动”

    10. 最后点击“添加Webhook”按钮。

    查看下面的屏幕截图了解详细信息。

    Jenkins 现在将收到该存储库的推送和拉取请求通知,相关构建将自动触发。

    在 Jenkins 上创建第一份工作

    现在转到我们的 Jenkins 仪表板,选择“新建项目”,然后输入项目名称,选择“自由式项目”。

    单击确定后,您将被重定向到配置部分。

    我们现在处于常规选项卡,如下面的屏幕截图所示。通常,选项卡给出项目的描述并单击 Github 项目,在这里输入我们项目的 GitHub URL。

    现在转到源代码管理,然后单击 Git 并输入我们要从中获取代码的存储库 URL。

    我们已经添加了 GitHub 凭据,单击下拉菜单并选择 GitHub 用户名和密码。

    接下来,转到 Branches 构建并选择 */master 分支,我们可以根据我们的项目要求添加任何分支。

    现在转到构建触发器选项卡并为 GITScm 轮询选项选择 Github 钩子触发器,这将在我们对 GitHub 存储库进行任何更改时自动
    构建。

    现在转到构建环境并选择发送文件或在构建运行后通过 SSH 执行命令。

    这将在构建运行后将文件发送到远程服务器。

    转到 SSH 发布者 --> SSH 服务器 --> 从下拉菜单中选择服务器名称

    在这里我们也可以设置高级参数,但目前我们只进行基本设置。

    现在我们需要添加我们想要通过 ssh 复制的文件类型,在这里我们选择我们 GitHub 存储库的所有文件夹和文件。要添加文件和文件夹选择,只需在源文件中添加 **/*。

    类似的方式,我们可以在 Exec 命令文本框中给出任何命令,这些命令将在我们的远程服务器上执行。

    然后指定我们需要复制文件的远程目录。这是一个可选选项。

    SSH 发布者 --> 传输 --> 传输集 --> 源文件 --> 添加 **/*

    SSH 发布者 --> 传输 --> 传输集 --> 远程目录 --> /jenkins-test

    SSH 发布者 --> 传输 --> 传输集 --> 执行命令 --> 命令

    默认情况下,Jenkins 会排除某些文件,如 .git .svn .gitignore 等。这里我们要将所有文件复制到远程服务器。为此,单击 Exec 命令下方的高级按钮,然后选中“无默认排除”选项。

    就是这样,我们在构建后操作中有很多选项,我们可以根据项目需要使用它们。

    构建测试

    是时候测试我们的配置了。

    转到 Jenkins 仪表板,然后单击我们的项目 Jenkins-test。

    然后单击构建的立即构建选项,如果构建过程失败,它将显示带有黄色图标的构建版本号。

    让我们验证我们的构建过程,只需单击屏幕截图中显示的构建编号。

    现在点击控制台输出。在这里我们可以在详细模式下看到每个进程。

    最后,我们将在控制台输出的末尾看到 \Finished: SUCCESS\ 行。

    恭喜!我们的 Jenkins 现在已经成功地与 GitHub 集成并可以使用了。

©2015-2025 艾丽卡 support@alaica.com