我有 jar 文件,我想使用 ansible 部署到不同的主机 所以我用我的网络应用程序的域配置了我的库存
[webapps]
domainofwebapp1.com resource_group=RG web_app=WEBAPPname
domainofwebapp2.com resource_group=RG web_app=WEBAPPname
domainofwebapp3.com resource_group=RG web_app=WEBAPPname
domainofwebapp4.com resource_group=RG web_app=WEBAPPname
我创建了一个剧本来通过 Az 部署进行部署,如下所示:
- name: Deploy JAR to Azure Web App
hosts: webapps
gather_facts: no
tasks:
- name: Run Azure login command
shell: >
az login --service-principal -u "clientID" -p "SECRET" --tenant "TEnantID"
- name: Deploy JAR file to Azure Web App
shell: >
az webapp deploy --resource-group {{ hostvars[inventory_hostname].resource_group }} --name {{ hostvars[inventory_hostname].web_app }} --src-path "/path/to/your/local/jar/file.jar" --type jar
我也配置了~/.azure/credentials
[default]
subscription_id=<subscription_id>
client_id=<service_principal_app_id>
secret=<service_principal_password>
tenant=<service_principal_tenant_id>
但是我总是收到这个错误 domainofwebapp1.com |无法到达! => { “改变”:假, "msg": "无法通过 ssh 连接到主机: ssh: 连接到主机 domainofwebapp1.com 端口 22: 连接超时", “无法访问”:正确 }
我不想使用 SSH 我想将其配置为不使用 ssh 并使用服务原理
我还尝试了 az.collection azure_rm_webapp:模块,但我无法将其部署到 Web 应用程序,它只能帮助创建 Web 应用程序。
您可以帮助我使用 ANSIBLE 成功部署到一组 Azure WEBAPP 吗?
看起来您想在本地运行这一切,因此您可以采取几种不同的方法。
第一个方法是在任务中使用
delegate_to: localhost
委托每个任务在本地主机上运行。
第二种方法是从库存中删除这些条目,并将它们定义在变量中。然后,您只需在本地主机上运行您的剧本并循环访问您的网络应用程序即可。