新版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不再是重复性劳动,而是真正的业务

原文地址:https://www.cnblogs.com/meowmeow/p/8372048.html

时间: 2024-08-29 23:42:16

新版Azure Automation Account 浅析(一) --- 创建和Run As Account的相关文章

新版Azure Automation Account 浅析(二) --- 更新Powershell模块和创建Runbook

前篇我们讲了怎样创建一个自动化账户以及创建时候"Run As Account"选项背后的奥秘.这一篇针对在Azure自动化账户中使用Powershell Runbook的用户讲一下怎样更新powershell 模块. 更新Powershell模块 首先,我们需要先了解一下Azure Automation的系统架构.我们已经知道用户可以通过运行Runbook来实现自动化运维,Runbook运行则是在Azure Automation的沙盒里执行的,沙盒是一组由Azure管理的虚机资源, 我

新版Azure Automation Account 浅析(三) --- 用Runbook管理AAD Application Key

新版Azure Automation Account 浅析(三) --- 用Runbook管理AAD应用的Key 前篇讲过有一个面向公众的Runbook库,社区和微软一直往其中加入新的Runbook,用户可以下载也可以在直接在Azure Portal中导入.这样大家都可以参考全世界范围内工程师怎样利用Runbook来解决工作中的难题,提高生产效率.https://gallery.technet.microsoft.com/scriptcenter/site/search?f[0].Type=Ro

Azure Automation (1) 入门

<Windows Azure Platform 系列文章目录> 通过Azure Automation(自动化),开发人员可以自动完成通常要在云环境中执行的手动.长时间进行.易出错且重复性高的任务.你可以使用 Runbook 来创建.监视.管理和部署 Azure 环境中的资源.所谓的 Runbook,基本上就是指 Windows PowerShell 工作流. Azure Automation概念上类似Windows Service,SQL Server Job. 举个例子,假设我们每天早上9点

Azure Automation (2) 定期删除存储账号中的文件

<Windows Azure Platform 系列文章目录> 本文介绍的是国内由世纪互联运维的Azure China. 本文是对笔者之前的文档Azure Backup (1) 将SQL Server 2012虚拟机中数据库备份到Azure Storage进行的补充. 希望笔者先阅读Azure Automation (1) 入门,对Azure Automation有基本的概念认识. 需求: 在之前的文档中Azure Backup (1) 将SQL Server 2012虚拟机中数据库备份到Az

使用Azure Automation Hybrid管理本地SQL Server备份状态(一)

Azure Automation是一种云解决方案,可通过自动执行任务,为服务器提供所需的状态配置以及配置管理来帮助组织满足其基础结构和安全性要求.默认情况下,创建Azure自动化后,它将允许在Azure中执行脚本.但是某些组织希望能够在其他云和本地环境中自动化任务,那么此时Hybrid Worker工具是提供这种解决方案的关键.利用 Azure Automation Hybrid worker功能,既可以直接在托管角色的计算机上运行 Runbook,也可以对环境中的资源运行 Runbook,从而

使用Azure Automation(自动化)定时关闭和启动虚拟机

1. 概述 作为Windows Azure的用户,使用Azure的过程中,最担心的事情就是还没到月底,预设的费用就快消耗完了(下面两张账单图是我最讨厌看到的).但是仔细分析自己的费用列表,发现绝大部分费用消耗在虚拟机上,而Azure的虚拟机是按照开机时间来计费的,因此迫切需要找到一个方案来节省虚拟机的开销.最简单的方案就是在不需要的时候将虚拟机自动关闭,需要的时间让其自动开机.在Google了一通以后,发现可以通过Azure的自动化(Automation)功能达到上述目的.下面介绍我在Azure

利用Azure Automation实现云端自动化运维(1)

Azure Automation是Azure上的一个自动化工作流引擎,基于Powershell,来帮助用户简化,集成和自动化Azure上的运维工作,例如: 实现定时开关虚拟机,节约成本 实现定时创建删除HDInsight cluster执行大数据计算任务 定时备份虚拟机上的数据库 定时归档或者删除无用的日志文件 自动化部署或者更新应用 等等 微软实际上有3个基于runbook的工作流引擎,用来完成不同的自动化工作: Azure automation用来自动化云端Azure环境中的各项任务,也是基

利用Azure Automation实现云端自动化运维(2)

Azure automation的认证: 用户名和密码 在Azure的automation中使用Powershell可以管理当前订阅的资源,也可以管理不同订阅的资源,那么问题就来了,安全性如何保障呢?Azure的自动化和其他使用或者管理Azure的客户端一样,对任何需要管理的Azure,都需要认证,最基本的有两种认证方式,一种是基于订阅的用户名密码的,一种是基于证书的,本节介绍基于用户名密码. 不建议直接在automation中使用当前管理生产订阅的账号的OrgID和密码,建议单独为automa

利用Azure Automation实现云端自动化运维(3)

Azure automation的认证方式:证书 该种方式是推荐的进行Automation认证的方式,好处在于安全性高,过期时间由自己控制,不好的地方在于大家在Windows上要生成证书比较麻烦,而且必须上传到Azure management和Automation, Automation需要两个文件:.pfx证书用于用户自动化端连接Azure,.cer文件,Azure管理端证书文件,这两个文件必须互相匹配. 对于创建证书,个人比较推荐的办法,或者我喜欢用的方法,就是利用开源的openssl工具,