设为首页 收藏本站
查看: 1086|回复: 0

[经验分享] 将Azure WebSite(应用)集成到虚拟网络

[复制链接]

尚未签到

发表于 2017-6-30 14:38:39 | 显示全部楼层 |阅读模式
  用过Azure的同学都知道如何将虚拟机加入虚拟网络,也非常简单,但是对于将应用(WebSite)集成到虚拟网络中却很少听到。今天我要讲的就是如何直接将我们部署在WebSite中的应用加入到虚拟网络。
  1、先决条件:


  • 安装 Azure Powershell(download)
  •   Azure 订阅账号(Azure Portal)

  • 在标准或高级 SKU 中运行的 Azure App Service 中的应用
  2、创建虚拟网络
  因为将WebSite加入到虚拟网络中是Point to Site,所以我们创建虚拟网络时需要启用点到站点连接,当然也可以创建完成再启用。
DSC0000.png

  输入虚拟网络名称并选择网络位置
DSC0001.png

DSC0002.png

  添加网关子网
DSC0003.png

  创建网关,这一步骤时间有点长(大概20分钟)
DSC0004.png

  3、创建WebSite
DSC0005.png

  因为我们创建的WebSite SKU默认为“免费”,而能和虚拟网络进行集成的WebSite SKU需要是标准或高级,所以我们需要手动缩放下。
DSC0006.png

  3、将应用连接到虚拟网络
  使用Powershell命令登录Azure账号和订阅



Login-AzureRmAccount -EnvironmentName AzureChinaCloud
DSC0007.png

  选中WebSite所在订阅



Select-AzureRmSubscription -SubscriptionName [WebAppSubscriptionName]
  或者



Select-AzureRmSubscription -SubscriptionId [WebAppSubscriptionId]

  • 使用Powershell设置WebSite连接到虚拟网络的配置信息



$Configuration = @{}
$Configuration.WebAppResourceGroup = "[Your web app resource group]"
$Configuration.WebAppName = "[Your web app name]"
$Configuration.VnetSubscriptionId = "[Your vnet subscription id]"
$Configuration.VnetResourceGroup = "[Your vnet resource group]"
$Configuration.VnetName = "[Your vnet name]"
#国内Azure有两个数据中心:chinaeast、chiannorth
$Configuration.WebAppLocation = "[Your web app Location]"
$Configuration.GeneratedCertificatePath = "C:\Users\Crazy\Desktop\Certificate.cer"
  查看刚才设置的配置
DSC0008.png



  • 向应用中申明虚拟网络



$vnet = New-AzureRmResource -Name "$($Configuration.WebAppName)/$($Configuration.VnetName)" -ResourceGroupName $Configuration.WebAppResourceGroup -ResourceType "Microsoft.Web/sites/virtualNetworkConnections" -PropertyObject @{"VnetResourceId" = "/subscriptions/$($Configuration.VnetSubscriptionId)/resourceGroups/$($Configuration.VnetResourceGroup)/providers/Microsoft.ClassicNetwork/virtualNetworks/$($Configuration.VnetName)"} -Location $Configuration.WebAppLocation -ApiVersion 2015-07-01
  如果此命令成功,$vnet 中应该包含 Properties 变量。Properties 变量应该包含证书指纹和证书数据。


  • 将证书下载到本地



$certBytes = [System.Convert]::FromBase64String($vnet.Properties.certBlob)
[System.IO.File]::WriteAllBytes("$($Configuration.GeneratedCertificatePath)", $certBytes)
  将下载的证书上载到虚拟网络



  • 获取点到站点包,并将其提供给WebSite应用
  将以下模板保存到计算机上某个位置中的名为 GetNetworkPackageUri.json 的文件



{
"$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"certData": {
"type": "string"
},
"certThumbprint": {
"type": "string"
},
"networkName": {
"type": "string"
}
},
"variables": {
"legacyVnetName": "[concat('Group ', resourceGroup().name, ' ', parameters('networkName'))]"
},
"resources": [
],
"outputs" : {
"PackageUri" :
{
"value" : "[listPackage(resourceId('Microsoft.ClassicNetwork/virtualNetworks/gateways/clientRootCertificates', parameters('networkName'), 'primary', parameters('certThumbprint')), '2014-06-01').packageUri]", "type" : "string"
}
}
}
  设置输入参数:



$parameters = @{"certData" = $vnet.Properties.certBlob ;
certThumbprint = $vnet.Properties.certThumbprint ;
"networkName" = $Configuration.VnetName }

  • 调用ARM模板



$output = New-AzureRmResourceGroupDeployment -Name unused -ResourceGroupName $Configuration.VnetResourceGroup -TemplateParameterObject $parameters -TemplateFile C:\PATH\TO\GetNetworkPackageUri.json
  变量 $output.Outputs.packageUri 现在包含要提供给 Web 应用的包 URI。


  • 将点到站点包上载到应用



$vnet = New-AzureRmResource -Name "$($Configuration.WebAppName)/$($Configuration.VnetName)/primary" -ResourceGroupName $Configuration.WebAppResourceGroup -ResourceType "Microsoft.Web/sites/virtualNetworkConnections/gateways" -ApiVersion 2015-07-01 -PropertyObject @{"VnetName" = $Configuration.VnetName ; "VpnPackageUri" = $($output.Outputs.packageUri).Value } -Location $Configuration.WebAppLocation
  此命令成功之后,应用现在应会连接到虚拟网络
  4、确认应用是否连接到虚拟网络
  下载WebSite发布配置文件

  登录到应用Kudu管理平台,打开浏览器输入下图选中的Url并登录。

  进入命令行界面

  输入以下命令



SET WEBSITE_

  我们可以看到WEBSITE_VNETNAME 的环境变量值就是连接的虚拟网络。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-389692-1-1.html 上篇帖子: Azure PowerShell (13) 批量设置Azure ARM Network Security Group (NSG) 下篇帖子: Azure VM从ASM迁移到ARM(一)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表