入门:在 Azure Linux VM 上安装 Jenkins

本文演示如何在 Ubuntu Linux VM 上安装 Jenkins,并将其工具和插件配置为支持 Azure。

本文将指导如何进行以下操作:

  • 创建可下载和安装 Jenkins 的安装文件
  • 创建资源组
  • 使用安装文件创建虚拟机
  • 打开端口 8080 以访问虚拟机上的 Jenkins
  • 通过 SSH 连接到虚拟机
  • 基于 GitHub 中的示例 Java 应用配置示例 Jenkins 作业
  • 生成示例 Jenkins 作业

1.配置环境

  • Azure 订阅:如果没有 Azure 订阅,请在开始之前创建一个免费帐户。

2. 打开 Cloud Shell

  1. 如果已打开了 Cloud Shell 会话,可以跳转到下一部分。

  2. 浏览到 Azure 门户

  3. 如有必要,请登录 Azure 订阅并更改 Azure 目录。

  4. 打开 Cloud Shell。

    Open Cloud Shell from the top menu in the Azure portal.

  5. 如果以前未使用过 Cloud Shell,请配置环境和存储设置。

  6. 选择命令行环境。

    Select the CLI you want to use in Cloud Shell.

3. 创建虚拟机

  1. 创建名为 jenkins-get-started 的测试目录。

  2. 切换到测试目录。

  3. 创建名为 cloud-init-jenkins.txt 的文件。

  4. 将以下代码粘贴到新文件中:

    #cloud-config
    package_upgrade: true
    runcmd:
      - sudo apt install openjdk-11-jre -y
      - curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null
      -  echo 'deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/' | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null
      - sudo apt-get update && sudo apt-get install jenkins -y
      - sudo service jenkins restart
    
    
    
  5. 运行 az group create 创建资源组。

    az group create --name jenkins-get-started-rg --location eastus
    
  6. 运行 az vm create 创建虚拟机。

    az vm create \
    --resource-group jenkins-get-started-rg \
    --name jenkins-get-started-vm \
    --image UbuntuLTS \
    --admin-username "azureuser" \
    --generate-ssh-keys \
    --public-ip-sku Standard \
    --custom-data cloud-init-jenkins.txt
    
  7. 运行 az vm list 验证新虚拟机的创建(和状态)。

    az vm list -d -o table --query "[?name=='jenkins-get-started-vm']"
    
  8. 由于 Jenkins 在端口 8080 上运行,请运行 az vm open,以便在新虚拟机上打开端口 8080。

    az vm open-port \
    --resource-group jenkins-get-started-rg \
    --name jenkins-get-started-vm  \
    --port 8080 --priority 1010
    

4. 配置 Jenkins

  1. 运行 az vm show 以获取示例虚拟机的公共 IP 地址。

    az vm show \
    --resource-group jenkins-get-started-rg \
    --name jenkins-get-started-vm -d \
    --query [publicIps] \
    --output tsv
    

    要点

    • --query 参数将输出限制为虚拟机的公共 IP 地址。
  2. 使用在上一步骤中检索到的 IP 地址,通过 SSH 连接到虚拟机。 需要确认连接请求。

    ssh azureuser@<ip_address>
    

    要点

    • 成功连接后,Cloud Shell 提示符会包含用户名和虚拟机名称:azureuser@jenkins-get-started-vm
  3. 获取 Jenkins 服务的状态来验证 Jenkins 是否正在运行。

    service jenkins status
    

    要点

    • 如果收到错误,指示服务不存在,则可能需要等待几分钟,等待系统安装和初始化完全部内容。
  4. 获取自动生成的 Jenkins 密码。

    sudo cat /var/lib/jenkins/secrets/initialAdminPassword
    
  5. 使用 IP 地址在浏览器中打开以下 URL:http://<ip_address>:8080

  6. 输入之前检索到的密码,然后选择“继续”

    Initial page to unlock Jenkins

  7. 选择“选择要安装的插件”

    Select the option to install selected plug-ins

  8. 在页面顶部的筛选器框中,输入 github。 选择 GitHub 插件并选择“安装”

    Install the GitHub plug-ins

  9. 输入第一名管理员用户的信息,然后选择“保存并继续”

    Enter information for first admin user

  10. 在“实例配置”页面上,选择“保存并完成”

    Confirmation page for instance configuration

  11. 选择“开始使用 Jenkins”

    Jenkins is ready!

5. 创建第一个作业

  1. 在 Jenkins 主页上,选择“创建作业”

    Jenkins console home page

  2. 输入 mySampleApp 的作业名,选择“自由风格项目”,然后选择“确定”

    New job creation

  3. 选择“源代码管理”选项卡。启用“Git”,并为“存储库 URL”输入以下 URL:https://github.com/spring-guides/gs-spring-boot.git。 然后,将“分支说明符”更改为 */main

    Define the Git repo

  4. 选择“生成”选项卡,然后选择“添加生成步骤”

    Add a new build step

  5. 从下拉列表中,选择“调用 Gradle 脚本”

    Select the Gradle script option

  6. 选择“使用 Gradle 包装器”,然后在“包装器位置”中输入 complete,并输入 build 作为“任务”。

    Gradle script options

  7. 选择“高级”,然后在“根生成脚本”字段中输入 complete

    Advanced Gradle script options

  8. 滚动到页面底部,然后选择“保存”

6. 生成示例 Java 应用

  1. 显示项目的主页时,选择“立即生成”以编译代码并打包示例应用

    Project home page

  2. “生成历史记录”标题下的图形指示正在生成作业

    Job-build in progress

  3. 生成完成后,选择工作区链接

    Select the workspace link.

  4. 导航到 complete/build/libs,查看 .jar 文件是否已成功生成。

    The target library verifies the build succeeded.

  5. Jenkins 服务器现已就绪,可用于在 Azure 中生成你自己的项目了!

疑难解答

如果在配置 Jenkins 时遇到任何问题,请参阅 Jenkins 安装页面来查看最新说明和已知问题。

后续步骤