zoukankan      html  css  js  c++  java
  • 新版Azure Automation Account 浅析(一) --- 创建和Run As Account

    去年年底Azure中国的Automation Account悄悄做了升级。新版本不管从功能还是end user experience方面都让人耳目一新。如果说升级前只是一个运行脚本的小工具,升级后的Azure自动化账号则提供用户对Azure环境和非Azure环境的现代化的自动运维服务。简单来讲,如果用户需要:

    • 提高效率,节约成本,实施开发运维自动化
    • 实现自动化配置管理,资产管理,变化跟踪管理
    • 同时管理Windows和Linux
    • 管理Azure,AWS,OnPrem以及任何集成Powershell或者Python的服务和产品
    • 和全世界优秀的工程师一起工作,重用他们已经交付使用的代码
    • 开发运维代码所需的全局变量,密码,证书,调度和安全监管
    • 开发运维代码和主流版本管理软件集成,自动同步
    • …..
    • 无服务器化的轻量级管理平台

    (Last but not the least,用户只需为脚本运行的时间付费,一分钟才一分钱哦)

    能满足以上需求的服务就是Azure自动化账号。接下来我们详细讲讲如何使用并且用好这个服务。

    创建Automation Account

    首先我们打开portal.azure.cn, 创建“自动化”,

    在创建Azure运行方式账户这一栏,请点击“是”。原因我们会在下文做详细解释

    创建的过程中,右上角会显示

    最后一个“Creating Azure …”可能会持续很长时间一直显示创建中。这时可以回到资源组,会看到实际上创建已经完成了。

    acpoctest是在上一步中创建的automation account,其他几个资源是acpoctest这个自动化账号相关联的Runbook,分别是Azure给出的在automation account中运行图形runbook,powershell runbook,python runbook以及管理Azure Classic Resource(ASM)的Runbook范例。所有开发运维的脚本在自动化账号里都是以Runbook的形式存在。

    先打开AzureAutomationlTurtorialScript这个Runbook,试试看能不能读懂这个脚本完成什么任务。

    根据注释,这个脚本用来获取当前Azure环境里所有ARM resource的信息。Powershell脚本首先用“Get-AutomationConnection”命令取得一个类型为“connection”名为“AzureRunAsConnection“的对象值。该值包含有如下信息:

    • TenantId
    • ApplicationId
    • CertificateThumbprint

    之后,脚本用以上信息登录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

    • 为自动化账号创建了一个订阅的contributor
    • 在Azure AD创建了一个Service Principal
    • 创建了一个证书certificate

    对于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。有点绕哦,我们还是看图

  • 相关阅读:
    methodForSelector
    判定一个点P是否存在于指定的三角形ABC内
    xcode error failed to launch no such file or directory
    【转】SQLServer系统变量使用
    【转】SQL SERVER中查询某个表或某个索引是否存在
    wtforms
    Flask上下文管理、session原理和全局g对象
    Oldboy s4 Flask
    批处理删除文件夹下所有文件和文件夹
    autojs使用
  • 原文地址:https://www.cnblogs.com/meowmeow/p/8372048.html
Copyright © 2011-2022 走看看