Dúvidas de principiante.(Componentes)

61 views
Skip to first unread message

Cleyson Bonfim

unread,
Feb 1, 2019, 3:17:29 PM2/1/19
to Comunidade Openstack Brasil
Fala galera, estou estudando a plataforma OpenStack e surgiu dúvidas:

1 - Existe duas forma de interagir com a plataforma:
 - Pelo Horizon
 - API RestFull
Como proceder quando for API RestFull? exemplos.

2 - O componente Keystone já se consegue atualizar sem ter downtime?
3 - O componente Neutron consegue interagir ipv4 com ipv6? Instância ipv4
ping na Instância ipv6.
4 - Como conseguir manter a versão com as atualizações de release de 6 meses(migração facilitada?).
5 - Qual o caminho de montar uma nuvem, já que o cenário é diferente para todos.

Jorge Luiz Corrêa

unread,
Feb 1, 2019, 7:02:55 PM2/1/19
to openst...@googlegroups.com
Caro Cleyson, não sei se essa é bem uma resposta, acho está mais pra considerações, mas espero que o ajude de alguma forma. As farei com base no ambiente que temos aqui. 

Sent from my iPhone

On 1 Feb 2019, at 18:17, Cleyson Bonfim <cleyson...@gmail.com> wrote:

Fala galera, estou estudando a plataforma OpenStack e surgiu dúvidas:

1 - Existe duas forma de interagir com a plataforma:
 - Pelo Horizon
 - API RestFull
Como proceder quando for API RestFull? exemplos.


Você pode instalar um cliente linha de comando (no Ubuntu acho que chama python-openstack-client o pacote, ou algo assim), exportar variáveis de ambiente com URL das APIs e credenciais, e então chamar comandos que disparam ações na nuvem. Por exemplo (não decorei os comandos hehe):

openstack server create -name vm1 -type tiny -image imagem-iso-cadastrada ... 

Isso dispara uma instância e você pode configurar nome, tipo, imagem, arquivo de configuração a ser injetado, chaves de ssh e varias outras opções. Este comando também gerência a parte de rede, volume etc. 

2 - O componente Keystone já se consegue atualizar sem ter downtime?

Não sei te dar certeza mas até a última vez que olhei isso há uns meses não conseguia. 

3 - O componente Neutron consegue interagir ipv4 com ipv6? Instância ipv4
ping na Instância ipv6.

Tenho dois ambientes aqui, um Mitaka e um Queens. Ambos são dual stack e operam v4 e v6 nas VMs. A comunicação entre os controladores, nos de processamento etc, a rede de gerenciamento da doc, é apenas v4. Mas a infra virtual dos projetos é dual stack. 

Sobre instância v4 pingar v6, não entendi direito. Os protocolos são independentes. Acho que em dual stack funciona qualquer coisa mas, falando detalhadamente, ou é v4 ou v6. 

4 - Como conseguir manter a versão com as atualizações de release de 6 meses(migração facilitada?).

Isso é difícil mesmo. O openstack é  um projeto extremamente ativo. A estratégia que uso aqui é seguir o release adotado pelo LTS do Ubuntu. Logo, a infra era 16.04 com Mitaka. Agora subi uma paralela no 18.04 com Queens. Vou então migrando os nos de processamento da antiga pra nova. Estou planejando agora algumas migrações de vms de uma para outra (os volumes com os file systems).

Essa estratégia pode não ser possível em todos os cenários. Aqui tenho certa versatilidade por ser uma nuvem usada para pesquisa (processamentos). Não tem serviços 24/7 nela. 

5 - Qual o caminho de montar uma nuvem, já que o cenário é diferente para todos.

Primeiro de tudo é entender o que faz cada componente. 

Depois sugiro entender sua necessidade sobre como as instâncias ficarão em termos de rede, pois isso vai definir seu cenário de implementação. Essa parte é bem detalhada até deixar tudo funcionado. 

Defina em qual host ficará cada serviço. 

Comece pela implementação do básico, Keystone, nova, nêutron, cinder, glance e horizon. 

A documentação do site te guia a implementar um cenário básico. Quando entrar em partes mais customizadas, há guias de admin específicos dos serviços que ajudam, mas nestes casos é bom olhar outras documentações e exemplos diferentes dos oficiais.

Com o passar do tempo você entende cada vez melhor como tudo se integra e tem condições de melhorar algo caso não esteja da melhor forma. 

Espero ter ajudado. Se juntar com outras experiências que o pessoal colocar aqui, acho ficará um conjunto de informação bom pra sua pesquisa. 

Responder tudo é difícil. O openstack é bastante complexo e as respostas sobre seus componentes acabam não sendo simples também. 

Grande abraço! 

--
--
Você recebeu esta mensagem porque está inscrito no Grupo "openstack-br".
Para postar neste grupo, envie um e-mail para
openst...@googlegroups.com
Para cancelar a sua inscrição neste grupo, envie um e-mail para
openstack-br...@googlegroups.com
Para ver mais opções, visite este grupo em
http://groups.google.com/group/openstack-br

---
Você recebeu essa mensagem porque está inscrito no grupo "Comunidade Openstack Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para openstack-br...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Felipe Pereira dos Santos

unread,
Feb 4, 2019, 8:51:49 AM2/4/19
to Comunidade Openstack Brasil
Bom dia Amigo..


Apenas respondendo uma parte da tua questão:

se vc instalar os modulos python (pip install openstackclient, pip install keystoneclient, pip install neutronclient), vc consegue escrever codigo para interagir com a API rest.

exemplo basico que utilizo:

class KeystoneApi():
    """
    Objeto para acesso a API do Keystone
    """
    def connectAdmin(self):
        """
        Método para criar objeto de conexão
        com as credenciais salvas dentro do model
        OpenstackServer (admin)
        """
        from keystoneclient import client
        from openstack.models import OpenstackAuth  # noqa
        auth = OpenstackAuth.objects.get()
        data = {
            'url': auth.AuthUrl,
            'user_id': auth.UserId,
            'password': auth.Password,
            'project_id': auth.ProjectId,
        }
        openstack = Openstack()
        sess = openstack.sessAuth(data)
        connAdmin = client.Client(session=sess)
        return connAdmin


isso retorna um objeto que autentica no keystone

depois de instanciar o objeto e passar as variaveis de usuario e senha é possivel interagir com os respectivos modulos do openstack

conn = keystone.connectAdmin()
ret = conn.domains.create(domain)

isso vai criar um dominio novo. (a mesma logica serve para todos os modulos do Openstack).

doc da API

att

Cleyson Bonfim

unread,
Mar 21, 2019, 2:32:29 PM3/21/19
to Comunidade Openstack Brasil
Obrigado pessoal pela participação!!!


Reply all
Reply to author
Forward
0 new messages