Porque automatizar Power On/Off de recursos que não operam 24/7?

Os recursos na Oracle Cloud Infrastructure como na maioria dos Cloud Providers são faturados por horas de uso, logo quanto maior o tempo de uso maior o custo, mas o recurso provisionado não é cobrado durante o tempo em que permanece desligado.

Caso possua um ambiente não produtivo e sem a necessidade de permanecer ligado 24/7, manter estes recursos desligados durante a madrugada e finais de semanas pode significar uma boa economia no fim do mês.

Se uma empresa que possue ambientes de desenvolvimento e homologação que são utilizados apenas durante o horário comercial. Caso essa mesma empresa mantenha os recursos desligados durante os períodos entre 21:00 e 7:00 e durante todo o fim de semana a economia com estes 2 ambientes pode chegar a 60% após 1 mês

Scripts para Power On/Off

Foram criados scripts em shell com comando do OCI-CLI para realizar o stop e start. Acesse o repositório do GitHub e baixe os scripts para os seguintes recursos.

  • Instances
  • Instance Pool
  • Oracle Analytics Cloud
  • Autonomous Database
  • DBSystem Database
  • Exatada Database

Os scripts podem ser facilmente modificados para outros tipos de recursos na OCI. São necessário dois scripts para cada recurso, sendo um para stop e um para start.

Adicione o seu escopo aos scripts substituindo o OCID do compartment “Parent”. O código foi programado para ler os compartments de primeiro nível “child”, mas não os subcompartments do do “child” ou seja “grandchildren”.

Opções para automação

Com os scripts baixados é preciso definir a estrátegia para automatizar o processo de Power On/Off e são varias as opcões:

  • Oracle Visual Builder Studio
  • Azure DevOps
  • OCI Instance Principal
  • Schedule numa VM

Abaixo um passo a passo da configuração do Oracle Visual Builder Studio.

Automatizando Power On/Off com Oracle Visual Builder Studio

VB Studio será utilizado para executar a ação de stop e start dos recursos, caso não tenha o VB Studio configurado siga este tutorial antes de prosseguir.

Os scrits podem ser facilmente configurados para rodar no Azure DevOps caso por algum motivo o VB Studio não seja um opção.

Crie uma Virtual Machine Template

Acesse o VB Studio indo até Platform Services > Developer.

ss-01

Vá até Virtual Machines Templates > Create Template.

ss-02

Adicione um nome para o template e em Platform selecione Oracle Linux 7.

ss-03

Clique em Configure Software e adicione os seguintes software packages OCIcli e Python3.

ss-04

ss-05

Crie uma Virtual Machine

Essa será a virtual machine em onde seus scritps serão rodados, essa VM pode ser uma Always Free que não gera custos. A instance será totalmente gerenciada pelo VB Studio.

Vá até Virtual Machines > Create.

ss-06

Selecione a quantidade de instances, a região, o shape e aponte o template recém criado.

ss-07

Clique em start para que a instance seja provisionada e aguarde até o status seja running.

ss-08

Crie um projeto no VB Studio

Vá até Projects > Create.

ss-09

Dê o nome Power On-Off para o projeto.

ss-10

Selecione Empty Project e clique em next.

ss-11

Selecione Markdonw e clique em finish.

ss-12

Create Git Repository

Vá até Git > Create Repository.

ss-13

Dê o nome git-power-on-off para Git Repository.

ss-14

Clique em Add File para adicionar um novo arquivo.

ss-15

Selecione o nome da pasta que o arquivo será salvo + o nome do arquivo e então arraste o arquivo do script para area de código. Clique em commit e repita isso para todos os outros arquivos.

ss-16

Create Build

Vá até Build > Create Builds.

ss-17

Dê um nome para o build e selecione o template que foi configurado anteriomente.

ss-18

Clique em Add Git.

ss-19

Selecione o repositório do Git criado anteriomente e clique em save.

ss-20

Vá até Steps e clique em Add Step e selecione OCIcli.

Preecha com os dados do seu tenancy, utilize o usuário criado durante a configuração do VB Studio ou crie outro com permissões compativéis. Recomendo a utilização de keys sem passphrase, pois obtive muitos erros ao utilizar keys com a passphrase.

ss-21

Adicione um novo Step. Dessa vez escolha Common Builf Tools > Unix Shell.

Aqui adicione os scripts que serão executados.

ss-22

Faça o agendamento do desligamento clicando na engrenagem e em seguida em Triggers. Defina o escopo desejado e salve as alterações.

ss-23

Refaça o processo de criacao de build, mas dessa vez adicione os scripts de start.

Revise as configurações e teste o processo de stop dos recursos clicando em Build Now. Logo em seguida clique em Build Log e verifique se tudo ocorreu bem.

ss-24

Dessa forma está configurado a rotina de power on/off diariamente.