flag brazil Português - Portugal flag inglaterra

Blog Bitrix24

Dicas e novidades sobre o Bitrix24

Como usar uma API para criar seu datacenter na nuvem

Para facilitar o trabalho, vamos usar a linguagem Python e a Library Apache LibCloud, na plataforma Windows.

Você também pode usar a API diretamente (SOAP) com qualquer linguagem que suporte este protocolo, mas recomendo a library pois o seu script terá uma maior compatibilidade com outros fornecedores de cloud services.

Documentação da lib:

https://libcloud.readthedocs.org/en/latest/getting_started.html

https://devops.profitbricks.com/libraries/libcloud/#how-tos

Acesso ao ProfitBricks: crie uma conta de demonstração no link baixo:

https://www.profitbricks.com/trial

Esta conta tem os seguintes limites:

  • válida por 14 dias
  • 4 cores
  • 10 GB de RAM
  • 50 GB de discos

Teste do Acesso pela LibCloud

1) Instale o Python no Windows (a versão usada neste tutorial foi a 3.4)

Baixe o ZIP em https://www.python.org/downloads/

Execute o setup.

2) Baixe a LibCloud

https://pypi.python.org/pypi/apache-libcloud

3) Instale a LibCloud no Python

  • Descompacte o ZIP em qualquer lugar (ex. c:\temp)
  • Abra um command prompt e mude para dir onde está a lib (ex. CD c:\temp\libcloud)
  • Digite "python setup.py install" e Enter

4) Verifique se a lib está instalada

Atenção: se o Python estiver aberto durante a instalação da lib, é necessário reiniciá-lo para que reconheça a lib

  • na interface interativa do python (IDLE)
  • digite "help('modules')"
  • ou digite "help('libcloud')"

5) Um teste inicial pode ser feito na IDE do Python com os seguintes comandos:

from pprint import pprint
from libcloud.compute.types import Provider
from libcloud.compute.providers import get_driver
cls = get_driver(Provider.PROFIT_BRICKS)

#-- autenticação -- coloque os dados da sua conta ProfitBricks
driver = cls('my username', 'my password')

# lista todos os nodos criados
pprint(driver.list_nodes())

6) se você receber um erro de certificado como esse:

RuntimeError: No CA Certificates were found in CA_CERTS_PATH

Coloque estas duas linhas no começo do seu script. Mas atenção: é recomendado que toda comunicação seja feita encriptada, via SSL, o que exige um certificado no servidor.

import libcloud.security
libcloud.security.VERIFY_SSL_CERT = False 

Versão completa de um script que cria um datacenter virtual e um servidor com storage
(igual ao da imagem acima)

 

 

 

#
# Python script para deploy automatico de servidore na nuvem ProfitBricks
# autor: RAD Soluções - wwww.radsolucoes.com.br
# permitida reprodução desde que citada a fonte
# Março/2015
#
from pprint import pprint


# se você receber um erro de certificado como esse:
# RuntimeError: No CA Certificates were found in CA_CERTS_PATH
# Coloque estas duas linhas no começo do seu script.
# Mas atenção: é recomendado que toda comunicação seja feita encriptada, via SSL, o que exige um certificado no servidor.
#
import libcloud.security
libcloud.security.VERIFY_SSL_CERT = False
#
from libcloud.compute.types import Provider
from libcloud.compute.providers import get_driver


# escolha do provedor de cloud
cls = get_driver(Provider.PROFIT_BRICKS)


#-- autenticação -- coloque suas credenciais ProfitBricks
driver = cls('<username>', '<password>')


# seleção do local do datacenter - Las Vegas
dclocation = 'us/las'


# nome do DC virtual
dcname = 'testeAPI'


# criando o DC
dcid = driver.ex_create_datacenter(name=dcname, location=dclocation)
print(dcid)


# use a opção comentada abaixo se quiser usar um dos tamanhos padronizados de servidor
#sizes = driver.list_sizes()
#size = [s for s in sizes if s.name == 'Small Instance'][0]


# para escolher uma das imagens (O.S.) existentes
images = driver.list_images()
image = [i for i in images if 'Ubuntu-14.04' in i.name][0]


# criando um servidor virtual, customizado com 2 cores e 1024 GB RAM, Ubuntu e conexão à internet
node = driver.create_node(name='testeAPI_srv1', image=image, ex_datacenter=dcid, ex_cores=2,
ex_ram=1024, ex_disk=10)


print(node)

RAD Soluções

Telefones: Brasil +55 11 3197 6525  | Portugal: +351 30 881 3409

partners

by iweb