Quando estamos trabalhando em um cenário de Cloud Computing, às vezes é necessário executar tarefas frequentes e demoradas, e até mesmo tarefas que estão propensas a erros. Com essa onda da “Nuvem”, podemos dar mais foco para o nosso negócio (algo que sempre faço questão de comentar) deixando as atividades auxiliares e de rotina como tarefas secundárias, onde podemos trabalhar com soluções de terceiros no formato PaaS ou SaaS.
Outro ponto bastante importante que podemos abordar aqui é a utilização das tarefas automatizadas do Azure para um cenário de DevOps onde podemos automatizar algumas rotinas do dia a dia. Um exemplo básico seria a replicação de bases de dados entre Produção e Testes dentro do Microsoft Azure.
As tarefas automatizadas do Azure fornecem serviços de configuração e automação baseado em nuvem, no qual fornecem gerenciamento consistente entre ambientes Cloud e OnPremise (Local). Entre os recursos oferecidos, posso citar alguns abaixo. Não entrarei em detalhes sobre cada um neste momento, pois o foco deste artigo é mostrar de forma simples e rápida a replicação de uma base de dados com o SQL Azure.
- Automação de Processos
- Gerenciamento de Configuração
- Gerenciamento de Atualização
- Compartilhamento de Recursos
Implementando a solução
O primeiro passo para iniciar nossa atividade é acessar o Portal do Azure. Caso você ainda não tenha uma conta, você pode criá-la acessando este link.
Agora vamos criar um novo recurso chamado Automation, como podem ver na imagem abaixo.
Em seguida, entraremos com os dados necessários para a criação do nosso recurso.
- Nome do seu recurso
- Assinatura em que o recurso estará associado
- Grupo de recurso
- Local onde o recurso será provisionado
- Neste passo, quando deixamos a opção marcada como “Sim“, uma conta de execução será criada automaticamente para se utilizar dentro das nossas rotinas
Com o nosso recurso provisionado, começaremos a configurar o nosso Run Book ou Processo Automatizado.
- Inicie o procedimento clicando em “Criar novo runbook”
- Entre com o nome do seu Runbook
- Selecione o tipo de Runbook que deseja trabalhar, lembrando que neste ponto temos três opções para trabalhar com o nosso Runbook, Powershell, Python e em formato Gráfico

Na imagem que vocês podem ver acima, temos o painel principal onde iremos editar o nosso Runbook. Temos também na barra lateral alguns atalhos rápido para utilizarmos em nossa rotina como CMDLETS (rotinas pré configuradas), RUNBOOKS (acesso a outros runbooks) e ASSETS (conjunto de recursos dentro do contexto do Azure Automation como variáveis, conexões, certificados, etc).
No painel identificado pelo número 4, incluiremos o nosso código. No caso, PowerShell, onde iremos conectar dentro da assinatura do Azure e exibir todos os recursos que temos provisionado.
<# .DESCRIPTION An example runbook which gets all the ARM resources using the Run As Account (Service Principal) .NOTES AUTHOR: Azure Automation Team LASTEDIT: Mar 14, 2016 #> $connectionName = "AzureRunAsConnection" try { # Get the connection "AzureRunAsConnection " $servicePrincipalConnection=Get-AutomationConnection -Name $connectionName "Logging in to Azure..." Add-AzureRmAccount ` -ServicePrincipal ` -TenantId $servicePrincipalConnection.TenantId ` -ApplicationId $servicePrincipalConnection.ApplicationId ` -CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint } catch { if (!$servicePrincipalConnection) { $ErrorMessage = "Connection $connectionName not found." throw $ErrorMessage } else{ Write-Error -Message $_.Exception throw $_.Exception } } #Get all ARM resources from all resource groups $ResourceGroups = Get-AzureRmResourceGroup foreach ($ResourceGroup in $ResourceGroups) { Write-Output ("Showing resources in resource group " + $ResourceGroup.ResourceGroupName) $Resources = Find-AzureRmResource -ResourceGroupNameContains $ResourceGroup.ResourceGroupName | Select ResourceName, ResourceType ForEach ($Resource in $Resources) { Write-Output ($Resource.ResourceName + " of type " + $Resource.ResourceType) } Write-Output ("") }
Após efetuar todos os passos acima, podemos utilizar o Painel de Testes para efetuarmos os testes necessários ou Publicar de vez o nosso Runbook. Lembrando que para executar o Runbook de forma definitiva, será necessário Publicar o mesmo. Caso contrário, você não terá acesso aos botões de execução ou agendamento.
Como este artigo é somente para fins de exemplificação, utilizamos uma rotina simples. Porém, vale lembrar que podemos ir além com todo o poder que o Powershell nos oferece. Podemos então usar a nossa criatividade e tentar trazer o Azure Automation para dentro do nosso dia a dia em vários cenários como, por exemplo, em um cenário de DevOps, onde podemos automatizar a replicação de base de dados do Azure SQL entre ambientes de Produção, Qualidade e Testes.
Um outro detalhe muito importante e que pode nos ajudar bastante, é utilizar o Azure Automation em conjunto com os Jobs, onde podemos agendar a execução dos nossos Runbooks afim de deixar nossas tarefas mais independentes.
Bom, pessoal, por hoje é só. Espero ter ajudado a todos, e se tiverem alguma dúvida, deixe o seu comentário logo abaixo!