You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Ansible使用服务主体批量部署JAR包至Azure Web Apps

批量部署JAR包到Azure Web App(无SSH,服务主体认证)

核心方案

使用azure.azcollection.azure_rm_webappdeployment模块——这是Azure官方提供的专门用于Web App部署的Ansible模块,完全通过Azure API交互,无需SSH,可基于服务主体完成认证与批量部署。

前置准备

  1. 安装Azure Ansible集合:
    ansible-galaxy collection install azure.azcollection
    
  2. 确保你的服务主体拥有目标Web App所在资源组的Contributor权限(或至少具备Microsoft.Web/sites/deployments/write等部署相关权限)。
  3. 配置~/.azure/credentials文件(填入服务主体信息):
    [default]
    client_id=你的服务主体ID
    secret=你的服务主体密钥
    tenant=你的租户ID
    subscription_id=你的订阅ID
    

Inventory文件示例(可直接复用你已有的配置)

[azure_webapps]
app1 webapp_name=my-java-app-1 resource_group=rg-prod-apps
app2 webapp_name=my-java-app-2 resource_group=rg-prod-apps
app3 webapp_name=my-java-app-3 resource_group=rg-staging-apps

批量部署Playbook

---
- name: 批量部署JAR包至Azure Web App
  hosts: azure_webapps
  gather_facts: false
  collections:
    - azure.azcollection

  tasks:
    - name: 部署本地JAR包到目标Web App
      azure_rm_webappdeployment:
        app_name: "{{ webapp_name }}"
        resource_group: "{{ resource_group }}"
        src: "/local/path/to/your/application.jar"  # 替换为你的本地JAR文件路径
        type: jar  # 指定部署类型为JAR
        restart_webapp: true  # 部署完成后自动重启Web App,确保新包生效
      register: deploy_result

    - name: 输出部署状态
      debug:
        msg: "{{ webapp_name }} 部署状态: {{ deploy_result.state }}"

进阶优化(大文件部署场景)

如果JAR包体积较大,建议先上传至Azure Blob存储,通过SAS URL部署以提升速度:

- name: 通过Blob存储SAS URL部署JAR包
      azure_rm_webappdeployment:
        app_name: "{{ webapp_name }}"
        resource_group: "{{ resource_group }}"
        src: "https://your-storage-account.blob.core.windows.net/jars/app.jar?sv=xxxx&ss=xxxx&srt=xxxx&sp=xxxx&se=xxxx&st=xxxx&spr=https&sig=xxxx"
        type: jar
        restart_webapp: true

关键注意事项

  • 此模块无需启用Web App的SSH功能,彻底规避SSH超时问题。
  • 确保目标Web App已配置对应版本的Java运行栈(如Java 11、Tomcat等),否则JAR包无法正常运行。
  • 若需部署到测试槽而非生产环境,可添加slot: 你的测试槽名称参数。

内容的提问来源于stack exchange,提问作者rewa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 17:25:04