新版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不再是重复性劳动,而是真正的业务
新版Azure Automation Account 浅析(一) --- 创建和Run As Account的更多相关文章
- 新版Azure Automation Account 浅析(二) --- 更新Powershell模块和创建Runbook
前篇我们讲了怎样创建一个自动化账户以及创建时候"Run As Account"选项背后的奥秘.这一篇针对在Azure自动化账户中使用Powershell Runbook的用户讲一下 ...
- 新版Azure Automation Account 浅析(三) --- 用Runbook管理AAD Application Key
新版Azure Automation Account 浅析(三) --- 用Runbook管理AAD应用的Key 前篇讲过有一个面向公众的Runbook库,社区和微软一直往其中加入新的Runbook, ...
- Azure Automation (1) 入门
<Windows Azure Platform 系列文章目录> 通过Azure Automation(自动化),开发人员可以自动完成通常要在云环境中执行的手动.长时间进行.易出错且重复性高 ...
- Azure Automation (2) 定期删除存储账号中的文件
<Windows Azure Platform 系列文章目录> 本文介绍的是国内由世纪互联运维的Azure China. 本文是对笔者之前的文档Azure Backup (1) 将SQL ...
- Step by Step 用Azure Automation 来开虚机(ARM)
使用Azure Automation来自动化处理各种重复的耗时的云管理任务从而帮助云运维人员提升效率,帮助降低运营成本. 具体相关的介绍以及怎样利用Azure Automation来完成定期开关虚拟机 ...
- Azure 基础:使用 powershell 创建虚拟机
在进行与 azure 相关的自动化过程中,创建虚拟主机是避不开的操作.由于系统本身的复杂性,很难用一两条简单的命令完成虚拟主机的创建.所以专门写一篇文章来记录使用 PowerShell 在 azure ...
- 【Azure Developer】Azure Automation 自动化账号生成的时候怎么生成连接 与证书 (Connection & Certificate)
Azure Automation :The Azure Automation service provides a highly reliable and scalable workflow exec ...
- Azure Automation (3) 定期将某个Azure订阅下的所有虚拟机开关机
<Windows Azure Platform 系列文章目录> 本文介绍的是国内由世纪互联运维的Azure China. 在笔者之前的文章中,我们介绍了使用Azure Automation ...
- 使用Azure Automation(自动化)定时关闭和启动虚拟机
1. 概述 作为Windows Azure的用户,使用Azure的过程中,最担心的事情就是还没到月底,预设的费用就快消耗完了(下面两张账单图是我最讨厌看到的).但是仔细分析自己的费用列表,发现绝大部分 ...
随机推荐
- Eclipse项目分组管理
对于eclipse相信对于一个java开发人员,一定不陌生.eclipse可以通过工作空间(Workspace)将不同的项目进行分开管理,相信这一点大家一定很熟悉,用过idea的小伙伴,一定发现了,i ...
- 房上的猫:类和对象>万物皆对象
众所周知:java是一门面向对象的编程语言 本章将介绍基础的类和对象 一.对象 对象是用来描述客观事物的一个实体,由一组属性和方法构成二.封装 封装就是把一个事物包装起来,并尽可能隐藏内部细节三.类 ...
- Flask快速入门,知识整理
一.Flask介绍(轻量级的框架,非常快速的就能把程序搭建起来) Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是 ...
- 简单MVC理解与实现
MVC基本概念 MVC大家不陌生,包含模型(Model).视图(View).控制器(Controller),其中模型用于基本业务逻辑的实现,视图用于响应结果的表示,控制器用于模型控制和请求分派.先放上 ...
- jQuery 核心函数 (十一)
函数 描述 jQuery() 接受一个字符串,其中包含了用于匹配元素集合的 CSS 选择器. jQuery.noConflict() 运行这个函数将变量 $ 的控制权让渡给第一个实现它的那个库.
- MssqlOnLinux 备份和日志【3】
数据库恢复模式: 一 简单模式:只对数据进行备份,不备份日志. 二 完整模式:支持数据,日志备份. 三 大容量日志模式:支持数据,日志备份.适用于大规模大容量操作,用最小的方式记录大多数操作. 数据库 ...
- webapi框架搭建-日志管理log4net
前言 本篇讲怎么在前几篇已经创建好的项目里加上日志处理机制,我们采用Log4net技术.跟多的log4net技术的细节请查阅log4net的官网. log4net官网:http://logging.a ...
- 《跟我学IDEA》六、插件(编码利器)
idea的另一个可爱之处,就是它的强大的插件,下面我以CodeGlance插件为例,这个可以快速定位代码. 第一节:安装插件 ● All plugins 显示所有插件. ● Enabled 显示当前所 ...
- 基于Windows下浏览器无法正常打开的解决方案
Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE /* Style Definitions */ table.MsoNormalTable ...
- 1492: [NOI2007]货币兑换Cash
Description 小Y最近在一家金券交易所工作.该金券交易所只发行交易两种金券:A纪念券(以下简称A券)和 B纪念券(以下 简称B券).每个持有金券的顾客都有一个自己的帐户.金券的数目可以是一个 ...