面试中5个无法回避的问题,你答对了吗?

小说:面试中5个无法回避的问题,你答对了吗?作者:马龙乙纯更新时间:2019-03-26字数:26069

可是预想之中的情况并没有出现,反而是浑身一紧,一股熟悉让她十分心安的气息扑面而来,睁开眼睛一看,发现自己被刘皓及时抱着没有掉到大海里面,看到两人如此暧媚的姿态,生活在平行空间的日本里面早熟的美美俏脸一红,这个样子还是第一次遇到。

网购化妆品怎么辨别真伪

此人面无表情,或者说是脸上表情完全是僵硬的,两腮深陷,头上绿发乱蓬蓬的,身上衣服也只是朴素的灰色长袍,与身边的华服老者简直就是鲜明对比。
“不疯魔不成道,我的不灭重生诀本来就是超越极限的功法,如果我本身不是超越极限的人,刀卜么如何能将之提升到极限,我是不会有事的。”刘皓情不自禁的抱着布玛,他能理解布王马的担心。

铁柱起身,身后村落年轻人快速围上,林风早已成为所有人心中英雄,一己之力对抗凶狼,同样可以从县衙带走李秀儿,所有一切在村民眼中都是无法做到的事。

笔者在前文中介绍了如何使用 PowerShell 脚本在 Azure 上创建虚拟主机。正如你所看到的,整个创建过程还是有点繁琐的,因为我们需要使用 PowerShell 脚本创建并关联所有相关的组件。其实 Azure 为运维人员提供了效率更高的操作方式:模板。我们可以通过声明式的语法来创建模板,然后通过模板来简化部署操作。
Azure 提供了强大的模板功能,不仅支持用户创建模板,还可以从当前的配置中导出模板。本文暂不关注创建模板的细节,只是把前文脚本创建的资源中导出为模板,并通过导出的模板创建新的资源。

从现有的资源导出模板

MS 建议我们尽量把同一个项目中的资源放置在同一个 resource manager 中管理,所以前文中我们在常见虚拟主机的同时创建了一个新的名为 vmpool 的 resource manager:

所有创建的资源都属于这个 resource manager。接下来我们就把这个 resource manager 中的所有资源都导出到模板中。如下图所示,先选择 "Automation script",然后点 "Download" 就可以了:

打开下载到的压缩包,里面的文件如下:

Azure 默认支持通过 PowerShell, shell, ruby 和 C# 部署模板,并提供了相应的脚本文件。也就是说我们只需要执行下载到的 PowerShell 脚本就可以部署一个和 vmpool 一模一样的 resource group 了!

接下来我们使用 powershell 脚本进行演示,简单起见我们只保留 deploy.ps1 和 template.json, 其它文件都删除掉。

修改模板中默认的名称

如果我们使用同一个订阅号进行部署,需要修改一下模板文件中 stroage account 的名称,不然的话会和已经存在的资源名称发生冲突。这里我们在 template.json 文件中默认的 stroage account 名称前面添加 "check" 字样:

依赖问题

笔者在测试的过程中碰到了一个很奇怪的依赖错误:

提示出现了循环引用,按照提示找到 template.json 文件中对应的行。查看之后感觉模板文件应该是正确的,按理说不应该有这样的错误提示。但是尝试了好几次都是相同的错误,索性删除提示出错的行:

把红框中的行删除,不要忘记删除前面的一个逗号。然后重试,错误消失。按理说新建的 networkinterfaces 和虚机有依赖关系是没有问题的,但是却出问题了,估计是个 bug。

执行命令进行部署

在执行 PowerShell 脚本进行部署前,我们还需要确定几个参数。首先是你的订阅号的 ID,这个参数决定你的资源被部署在哪个订阅号的下面。还有就是新的 resource group 的名称和位置。最后需要给本次的部署起个名字:

-subscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
-resourceGroupName "checkRG"
-resourceGroupLocation "Korea Central"
-deploymentName "testdeployment"

如果不在命令行中指定这些参数就需要在执行过程中和用户交互。我们希望做到自动化的部署过程,所以应该事先准备好这些参数,从而避免执行过程中的交互操作。因此最后我们要执行的部署命令为:

./deploy.ps1 -subscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" `
-resourceGroupName "checkRG" `
-resourceGroupLocation "Korea Central" `
-deploymentName "testdeployment"

执行上面的命令,我们会得到一个名为 checkRG 的 resource group,其内容和母版 vmpool 几乎是一样的(storage account 的名称不一样):

访问权限问题

在 azure 上执行操作需要用户先进行登录,那么在 PowerShell 脚本中该如何做呢(需要避免执行脚本的过程中与用户交互)?
笔者在《Azure 基础:用 PowerShell 自动登录》一文中有详细的介绍,有兴趣的朋友可以参考。

总结

本文通过一个简单的 demo 演示了如何通过 PowerShell 和模板在 azure 上部署资源。与单纯的使用 PowerShell 脚本来创建所有的资源相比,使用模板可以简化整个部署的过程。并且模板使用的是 json 格式,与具体的编程语言无关。你可以使用任何 Azure 支持的语言来部署模板中声明的资源。

编辑:文扁

发布:2019-03-26 04:42:58

当前文章:http://adsl66.com/array/e1vgvql5br.html

女人要的安全感你永远“给”不了 难舍欲罢的男友关系 孩子早恋的父母们应该读的一篇美文:柳眉儿落了 原创:面对灾难最好的帮助—倾听篇 孩子的好习惯不是靠培养出来的! 参加非比老师成人依恋修复工作坊有感 错过天籁。。。 离婚有孩子,总觉得很愧疚、自责,该怎么办?

57890 78713 42449 80230 90162 55968 59388 80162 82531 45168 88382 24880 73049 62560 81425 95982 80370 41178 18562 30958

我要说两句: (0人参与)

发布