去年年末Azure中国的Automation Account悄悄作了升级。新版本无论从功能仍是end user experience方面都让人耳目一新。若是说升级前只是一个运行脚本的小工具,升级后的Azure自动化帐号则提供用户对Azure环境和非Azure环境的现代化的自动运维服务。简单来说,若是用户须要:python
(Last but not the least,用户只需为脚本运行的时间付费,一分钟才一分钱哦)shell
能知足以上需求的服务就是Azure自动化帐号。接下来咱们详细讲讲如何使用而且用好这个服务。安全
建立Automation Account服务器
首先咱们打开portal.azure.cn, 建立“自动化”,app
在建立Azure运行方式帐户这一栏,请点击“是”。缘由咱们会在下文作详细解释运维
建立的过程当中,右上角会显示工具
最后一个“Creating Azure …”可能会持续很长时间一直显示建立中。这时能够回到资源组,会看到实际上建立已经完成了。云计算
acpoctest是在上一步中建立的automation account,其余几个资源是acpoctest这个自动化帐号相关联的Runbook,分别是Azure给出的在automation account中运行图形runbook,powershell runbook,python runbook以及管理Azure Classic Resource(ASM)的Runbook范例。全部开发运维的脚本在自动化帐号里都是以Runbook的形式存在。spa
先打开AzureAutomationlTurtorialScript这个Runbook,试试看能不能读懂这个脚本完成什么任务。3d
根据注释,这个脚本用来获取当前Azure环境里全部ARM resource的信息。Powershell脚本首先用“Get-AutomationConnection”命令取得一个类型为“connection”名为“AzureRunAsConnection“的对象值。该值包含有以下信息:
以后,脚本用以上信息登陆Azure 并执行命令 Get-AzureRmResourceGroup 和Find-AzureRmResource取得全部的ARM资源。
那么,接下来的问题是AzureRunAsConnection这个对象值是从哪里来的,登陆Azure运行脚本的用户帐号究竟是哪个呢?不要着急,咱们先回到最初建立的自动化帐户acpoctest。
左边的菜单栏有个选项“链接”,点进去看看
其中有一个就是咱们刚刚分析的Runbook“AzureAutomationlTurtorialScript“中存储Azure帐号登陆信息的“AzureRunAsConnection”,点进去看一下
说明写着,这个connection包含了在自动化帐号建立时候自动建立的与之相关的service principle,certificate,同时还link了相关的SubscriptionId和TenantId.
接着再看一下左边菜单栏的证书选项,能够看到和connection对应的两个也是自动化帐号建立时候自动生成的证书。
最后咱们下拉左边菜单,选择Run As Accounts并点击“Azure Run As Account”
还记得开始建立自动化帐号的时候建议“在建立Azure运行方式帐户这一栏,请点击“是””吗?
从上文的截图和范例代码咱们能够猜到,在用户选择这个选项后,Azure作了什么。
对于Run As account ,Azure
对于Classic Run As account, Azure则上传管理证书certificate
以上全部的工做都由Azure自动完成,最终实现的是脚本运行(Runbook)时候Azure环境的独立鉴权。这个帐号为acpoctest这个自动化帐号独有,和任何我的帐号没有关系,公司人员变更,硬件改动(电脑更替)并不会影响到脚本运维,一样IT也无需花费额外时间来建立和管理相关的证书。
总结一下,用户看到的一个小小的选项都是一个技术改进,在传统运维开发中消耗大量人力和物力的工做都转由云平台完成。
这才是云计算的真正魅力所在,用户的focus再也不是重复性劳动,而是真正的业务
2018/1/30: 补充一下细节,建立RunAsAccount的时候在AAD自动建立了一个Service Principal。这意味着订阅的新建立的contributor这个user在AAD注册了一个app而后才能申请ServicePrinciple和证书,因此呢,AAD的配置里须要支持AAD的user能够register APP。有点绕哦,咱们仍是看图