Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >国内账号部署Azure私有云,该如何搞定App Service?

国内账号部署Azure私有云,该如何搞定App Service?

作者头像
盆盆
发布于 2019-04-24 06:12:41
发布于 2019-04-24 06:12:41
2.5K0
举报

今天我们就来聊聊如何用中国区账号搞定App Service这个PaaS的部署!

可能您会说,前段时间不是已经写过一篇类似的文章了吗?(参考这里Azure Stack App Service部署测试),由于那篇文章介绍的是TP3 Refresh,而正式版略有些不同,二来有读者反馈希望能写得更加详细一些,所以借着这次正式版发布,再写篇长文章。

在介绍之前,我们先来看看现在的App Service的功能改进:

  • ADFS模式部署的Azure Stack,也可以部署Azure Function,也可以配置SSO
  • App Service的Worker Tier支持虚拟机扩展集,这样服务管理员可以利用其横向扩展的能力,如附图所示。
  • WebApp/Mobile/API支持Java,如附图所示。

部署前准备工作

首先必须部署SQL资源提供程序(简称SQL RP),请参考以下步骤(本文不再赘述):

https://docs.microsoft.com/en-us/azure/azure-stack/azure-stack-sql-resource-provider-deploy

必须注意的是,正式版POC,部署SQL资源提供程序时,默认不再部署SQL实例,所以我们需要自己部署一个SQL实例。可以使用以下Azure Stack的ARM模板部署一台新的虚拟机,但是盆盆个人推荐直接部署在SQL RP这台虚拟机(虚拟机名称默认是SQLVM)上,以便节省一台虚拟机。

https://github.com/Azure/AzureStack-QuickStart-Templates/tree/master/sql-2014-standalone

如果您选择手动部署SQL实例,不妨设置SQL的SA账号密码,还可以把本地管理员(例如sqlrpadmin)设置为SQL管理员。

同时还需要确保Azure Stack默认Windows Server 2016镜像已经安装了KB4025339(对应的msu文件约1GB大小),App Service需要这个补丁,否则App Service的整个部署时间可能长达3-4小时(感谢Larry提醒)!可以到微软官网搜索下载这个补丁,并且用以下方法把补丁离线导入到Windows Server 2016的VHD虚拟硬盘里。

首先确保我们已经导入默认的Windows erver 2016镜像,具体步骤可以参考以下文档:

https://docs.microsoft.com/en-us/azure/azure-stack/azure-stack-add-default-image

然后进入到以下目录,双击以下的“Server2016DatacenterFullEval.vhd”文件,这就是Windows Server 2016默认镜像。假设将该VHD文件挂载到H盘符。

"C:\ClusterStorage\Volume1\Shares\SU1_ObjStore\CRP\PlatformImages\d8d72463-412f-4419-a321-d69e3116f3ac\"

然后用管理员权限运行命令行窗口,执行以下命令:

Dism /image:H:\ /add-package /PackagePath:"PathofKB4025339"

命令执行完成后,确保右键单击挂载的H盘符,选择弹出,以退出挂载状态。

生成证书

首先到以下地址下载App Service的部署帮助脚本

http://aka.ms/appsvconmasrc1helper

解压缩后,执行其下的Create-AppServiceCerts.ps1。按照屏幕提示指定PFX证书的私钥保护密码、域名和证书服务器地址。所得证书保存在该脚本所在的目录。

执行App Service安装程序

首先到以下地址下载App Service安装程序:

http://aka.ms/appsvconmasrc1installer

用AzureStack\AzureStackAdmin身份登录主机,并双击打开安装程序,然后在对话框上选择部署选项。

指定Azure Stack的管理员和租户的ARM端点,并指定Azure AD的租户名称。安装程序会自动获取这些信息,一般情况下无需修改。

在以下对话框上点击Connect

会弹出Azure AD账号验证对话框,在此输入Azure Stack部署时的Azure中国区账号和密码。

Azure AD账号验证通过以后,选择所需的Azure Stack管理员订阅名称(默认是Default Provder Subscription),以及数据中心位置(默认是Local)。

然后指定App Service资源管理程序的资源组名称、保存安装脚本和文件的存储账号名称、以及SQL服务器的名称(SQL虚拟机的Public IP对应的域名)、SQL管理员账号和密码。

接下来指定先前所创建的三个证书,以及对应的PFX证书私钥的保护密码。证书名称可以参考附图。

然后指定App Service各个角色服务器的大小和实例数。如果服务器资源足够(不低于128GB),可以选择多个Shared Worker Role。

指定App Service的Windows操作系统镜像,此处建议镜像里已经安装了KB4025339。

指定各个角色的管理员名称和密码。

查看先前所作的选项,并勾选左下方的复选框。

然后安装程序会自动在Azure Stack里创建Blob存储,下载所需的文件、模板和脚本,并上传到Blob存储中,部署App Service资源提供程序(RP),注册DNS、注册App Service RP、注册应用市场项目。在盆盆的环境里,约需要1.5小时。

接下来在Azure Stack的管理员门户上,进入App Service的资源组(默认是AppService_Local),远程桌面登录到CN0-VM,打开桌面上的Web Cloud Management Console。点击左侧的Web Cloud、Managed Servers,可以看到中间详细窗格里的Web Worker的状态是修复中。

等到至少有一台Web Worker的状态为Ready,就可以开始配置SSO了。

配置SSO

在先前下载的脚本里,编辑CreateIdentityApp.ps1这个脚本,将其中的“$AzureStackGraphEnvironment”配置为“AzureChinaCloud”。

确保已经安装Azure Stack的PowerShell环境,可以参考以下文档:

https://docs.microsoft.com/en-us/azure/azure-stack/azure-stack-powershell-install

并且已经下载好Azure Stack Tools:

https://docs.microsoft.com/en-us/azure/azure-stack/azure-stack-powershell-download

打开PowerShell命令行窗口,进入到Azure Stack Tools所在的目录,然后执行以下命令(YourDomainName请用您自己的Azure中国区域名替换)

Import-Module .\Connect\AzureStack.Connect.psm1 Add-AzureRMEnvironment -Name "AzureStackAdmin" -ArmEndpoint https://adminmanagement.local.azurestack.external $TenantID = Get-AzsDirectoryTenantId -AADTenantName "YourDomainName.partner.onmschina.cn" -EnvironmentName AzureStackAdmin Login-AzureRmAccount -EnvironmentName "AzureStackAdmin" -TenantId $TenantID

然后进入到App Service脚本所在的目录,执行CreateIdentityApp.ps1这个脚本。会提示我们输入Azure中国区的租户名称,并验证Azure AD账号。

接下来指定SSO证书的路径、PFX证书的私钥保护密码、租户ARM端点和Azure Stack域名。

遗憾的是这个脚本在Azure中国区创建了名为"App Service"的服务主体后,会出现报错,应该是无法用Get-AzureRmRoleAssignment这个命令获取该服务主体的RBAC权限(错误信息显示对应脚本的第168行)。

打开CreateIdentityApp.ps1这个脚本,进入到第168行,发现该行命令主要用来获取该服务主体的RBAC权限信息,并用New-AzureRmRoleAssignment这个命令来设置其RBAC权限。可能是由于中国区Azure不支持该PowerShell命令,所以报错。由于我们可以在Azure中国区手动执行这些操作,所以完全可以删掉168-171这段脚本,并保存为新的脚本。

进入Azure中国区的新门户,进入更多服务、订阅、访问控制标识和访问管理。然后选择添加。指定角色为“参与者”,指定服务主体名称为“App Service”,确保该服务主体的App ID和脚本显示的一样。

接下来需要设置该Azure AD服务主体的密钥,这只能在Azure中国的传统门户里执行。可以进入Azure Active Directory,进入“应用程序”,确保显示“我公司拥有的应用程序”,定位到该服务主体的“配置”页面,确保其客户端ID和脚本所显示的一致。在“密钥”部分,指定2年,然后单击底部的保存。

记下所显示的服务主体密钥。

然后重新执行修改后的CreateIdentityApp.ps1脚本,即可生成一个新的脚本UpdateConfigOnController.ps1。这里必须进行修改。请确保将其下的OpenIdConfigurationUrl从"login.microsoftonline.com"改为"login.partner.microsoftonline.cn",如附图所示。

将该脚本UpdateConfigOnController.ps1,和先前生成的SSO证书,复制粘贴到cn01-vm中。打开桌面上的Web Cloud Management Console。在Configuration、Settings部分指定ApplicationClientSecret是先前我们所生成的服务主体密钥。

最后别忘记在Web Cloud Management Console的Web Cloud、Managed Servers,选择修复Managed Server和FrontEnd Server,等状态都显示为Ready,即可完成所需的配置。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-07-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 华来四Azure混合云 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Azure部署Azure Stack技巧
Azure Stack混合云的POC正式版已经发布了,盆盆已经写了十余篇有关Azure Stack的文章,您可以点击公众号右下方的菜单去阅读,有图有真相!
盆盆
2019/04/24
1.3K0
Azure部署Azure Stack技巧
Azure Stack测试Serverless(Azure Functions)
生产环境里的Azure Stack,就不能仅仅将其看作是Hyper-V虚拟化平台、或者分布式存储、软件定义网络这样的产品。否则就暴殄天物。
盆盆
2019/04/24
5330
Azure Stack测试Serverless(Azure Functions)
在Azure Stack上部署Kubernetes
要参加微信课堂以及日常技术交流,请给我们发微信(微信号:markpah),请注明加入以下哪个群:
盆盆
2019/03/05
7740
在Azure Stack上部署Kubernetes
盆盆的原创Azure Stack文档和视频
自打2015年5月微软Build大会宣布研发Azure Stack,一直到前不久微软Tech Sumit上CEO亲自宣布Azure Stack上市,盆盆一直都是这个产品的最忠实拥趸,也在华来四上发表了大量的原创技术文章。在学习和研究的过程中,盆盆积累了不少的原创视频和文档,敝帚不敢自珍,在此分享给诸位同好。
盆盆
2019/04/24
6890
有关中国Azure Stack部署K8S的疑难解答
要参加微信课堂以及日常技术交流,请给我们发微信(微信号:markpah),请注明加入以下哪个群:
盆盆
2019/03/05
6590
有关中国Azure Stack部署K8S的疑难解答
干货分享-Win2019上的Linux容器和Azure Stack上的K8
要参加微信课堂以及日常技术交流,请给我们发微信(微信号:markpah),请注明加入以下哪个群:
盆盆
2019/03/05
1.5K0
干货分享-Win2019上的Linux容器和Azure Stack上的K8
Azure 上使用 Windows Server Core 运行 ASP.NET Core 网站
微软智慧云 Azure 上虽然早就有 App Service 这种完全托管的 PaaS 服务可以让我们分分钟建网站。但是不自己配一下环境,就不能体现技术含量,容易被说微软的人都只会点鼠标。年轻的时候不敲命令,什么时候可以?今天就教大家如何在 Azure 上用 Windows Server 2019 (Server Core) VM 的方式自己配环境部署 ASP.NET Core 网站。
Edi Wang
2019/08/09
2.4K0
Azure 上使用 Windows Server Core 运行 ASP.NET Core 网站
【Azure微服务 Service Fabric 】使用az命令创建Service Fabric集群
在使用Service Fabric的快速入门文档: 将 Windows 容器部署到 Service Fabric。 其中在创建Service Fabric时候,示例代码中使用的是PowerShell脚本调用AZ模块来执行创建命令。但是在本地执行时,遇见了无法运行'Connect-AzAccount'等命令。
huofo
2022/03/16
3.2K0
【Azure微服务 Service Fabric 】使用az命令创建Service Fabric集群
如何在Azure VMs中大规模运行PowerShell?
假设当前你正在进行某项渗透测试任务,其中Azure基础架构也包含在你的测试范围内,并且你恰好可以访问Azure订阅上一个具有“贡献者(Contributor)”权限的域帐户。虽说在实际场景中,贡献者权限并没有这么容易获取到。但在我的渗透测试工作中,我也经常看到贡献者权限会被分发给一些开发人员。如果你够幸运的话,一些管理员可能会添加域用户组作为订阅的贡献者。或者,我们也可以假设是从低权限用户一步步提升到贡献者帐户的。
FB客服
2018/12/28
8230
运维 | 在企业环境中快速安装配置 Win Server 2022 服务器操作系统
描述:在上一篇文章中,我们提到过 Server 2022 发布于 2021 年 8 月,是迄今为止(2024年3月20日 09:15:07)Windows 在服务器操作系统中最新的版本(PS: 不过听说 Windows Server 2025 也快了),它建立在Windows Server 2019之上,带来了许多针对虚拟化、存储、安全性和Windows Admin Center 管理的改进以及Azure集成,使得它成为一个更加强大、安全和高效的服务器操作系统。
全栈工程师修炼指南
2024/03/25
1.8K0
运维 | 在企业环境中快速安装配置 Win Server 2022 服务器操作系统
「Azure」数据分析师有理由爱Azure之十-使用PowerShell自动化AzureAS
前面推文中曾介绍过PowerShell的作用,并有提供了一个MicroSoft Learn的教程地址,现再次贴出:https://docs.microsoft.com/zh-cn/learn/modules/automate-azure-tasks-with-powershell/
Excel催化剂
2021/08/19
9180
「Azure」数据分析师有理由爱Azure之十-使用PowerShell自动化AzureAS
Windows Azure Pack集成AD联合身份认证
Windows Azure Pack默认情况下是通过注册的方式获取账户,这对于我们已经有了AD的企业来说是非常非常不方便的。不过,通过Active Directory Federation Services(ADFS)我们能够使WAP与ADDS集成起来,使用我们现有的域账户就能登陆。
李珣
2019/03/14
1.2K0
云考古 | Azure 自建 RDS 让 iPad 跑 Office 97
苹果一直在尝试把iPad做成电脑,但效果始终不如真正的PC理想。如果能在iPad上运行PC软件,如完整版的Office,那一定是一种非常理想的方式。我小时候电脑启蒙使用的第一个软件就是Office 97里的Word,这也是第一款引入Office助手(大眼夹)的版本。为了纪念7岁就夭折的大眼夹,我决定让它在22年后的iPad Pro上复活。
Edi Wang
2019/08/01
4K0
云考古 | Azure 自建 RDS 让 iPad 跑 Office 97
CRT:一款针对Azure的CrowdStrike安全报告工具
CRT全称为“CrowdStrike Reporting Tool for Azure”,是一款针对Azure的CrowdStrike安全报告工具。该工具会在Azure AD/O365 租户中查询以下配置,并帮助广大研究人员寻找一些跟权限和配置有关的安全信息,以帮助组织更好地保护Azure环境的安全性。
FB客服
2022/04/11
9800
CRT:一款针对Azure的CrowdStrike安全报告工具
从上而下的死亡:从 Azure 到 On-Prem AD 的横向移动
Azure 攻击原语,以便更好地了解系统的工作原理、可以滥用哪些特权和权限、可能存在哪些限制以及在真实环境中存在哪些攻击路径。我一直对允许以下攻击的攻击保持警惕:
Khan安全团队
2022/01/19
2.6K0
内网渗透 | 域渗透之SPN服务主体名称
SPN(ServicePrincipal Names)服务主体名称,是服务实例(比如:HTTP、SMB、MySQL等服务)的唯一标识符。
谢公子
2022/01/19
2K0
内网渗透 | 域渗透之SPN服务主体名称
工业私有云如何安装PlantPAX
本简短指南将提供一些伟联科技私有云安装PlantPAX说明,并描述伟联私有云虚拟机管理程序的某些功能。
剑指工控
2021/11/09
2.2K0
[壹刊]Azure AD(四)知识补充-服务主体
  又到了新的一周了,也到了我新的分享的时间了,还记得上一周立得Flag,其中 “保证每周输出一篇文章” ,让我特别“在意”(这里用词不太恰当)。主要是我的一个大学舍友,他突然问了我一个关于写博的事情,自己也在上周开通了账号,也想着坚持写博客。在我看来,这确实是一件好事,写博不仅仅是分享的过程;也是自己提炼写博的一个过程,以及文章组织的能力,对自己还是很有好处的。这不仅仅要写内容要精炼,同时也要让别人能看的懂。加油,默默的在这里给他打气。(ง •_•)ง
老张的哲学
2022/04/11
1.7K0
[壹刊]Azure AD(四)知识补充-服务主体
使用Azure云原生构建博客是怎样一种体验?(上篇)
我的网站是在.NET Core 平台上使用 C#语言编写的开源博客系统,运行于微软智慧云 Azure 国际版上。
Edi Wang
2019/07/22
1.8K0
使用Azure云原生构建博客是怎样一种体验?(上篇)
一个虚拟化客户上云的需求分析&架构设计-大卫的Azure学习笔记大全
案例分析与架构设计 案例分析:大卫公司电子商务网站案例研究 大卫公司是北京的一家媒体和出版公司,拥有约2000名员工。它有一个成功的直接面向消费者的电子商务网站,使用.NET构建,并使用SQL Server来存储客户资料和订单信息。 •桌面为内部和面向客户的应用程序提供单一数据中心。大多数服务器都是在VMware上虚拟化的。应用程序服务器主要运行Microsoft服务器软件,包括Active Directory(AD)域服务和许多AD集成服务(包括Exchange 2013)以及多层,内部AD集成的基于Mi
魏新宇
2018/03/22
1.5K0
一个虚拟化客户上云的需求分析&架构设计-大卫的Azure学习笔记大全
推荐阅读
相关推荐
Azure部署Azure Stack技巧
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文