Como faço para implantar uma nuvem OpenStack com o Juju?

15

Gostaria de ter uma nuvem de teste em funcionamento, preparando-a para uma possível implantação do 12.04. Eu baguncei o UEC um pouco, mas tive muito mais dificuldade em encontrar algo útil como um primer para o novo stack. Existe uma documentação genérica sobre o Diablo, mas é provável que existam muitas peças úteis no Ubuntu que um guia específico possa economizar tempo.

Além disso, por mais que eu goste, meu orçamento não inclui os $ 4-6k para obter um pequeno cluster rodando com o suporte da Canonical.

    
por Bryan Agee 11.11.2011 / 19:42

3 respostas

17

Instalando o OpenStack

Se você deseja se posicionar rapidamente, clique aqui:

Esta resposta é uma visão mais detalhada de como usar o Juju com o OpenStack.

Escopo

A plataforma OpenStack é poderosa e seus usos são diversos. Esta seção de documentação está principalmente preocupada com a implementação de um Sistema OpenStack usando, mas não limitado a, componentes canônicos como o MAAS, Juju e Ubuntu. Onde apropriado, outros métodos e software serão mencionados.

Suposições

  1. Uso do MAAS - siga estas instruções primeiro.
  2. Uso de Juju
  3. Configuração de rede local - este documento presume que você tenha uma configuração de rede local adequada, incluindo interfaces separadas para acesso à nuvem do OpenStack. As redes ideais estão dispostas na [MAAS] [documentação do MAAS para OpenStack].

Planejando uma instalação

Antes de implantar quaisquer serviços, é muito útil fazer um balanço dos recursos disponível e como eles devem ser usados. O OpenStack compreende um número de serviços inter-relacionados (Nova, Swift, etc), cada um com diferentes demandas termos de hosts. Por exemplo, o serviço Swift, que fornece armazenamento de objetos, tem um requisito diferente do que o serviço Nova, que fornece computação recursos.

Os requisitos mínimos para cada serviço e recomendações são definidos em o oficial Guia de operações do OpenStack

A composição recomendada de nós para implantar o OpenStack com o MAAS e o Juju é que todos os nós no sistema devem ser capazes de executar QUALQUER do Serviços. Esta é a melhor prática para a robustez do sistema, já que qualquer nó físico deve falhar, outro pode ser reaproveitado para tomar o seu lugar. Isso obviamente se estende a quaisquer requisitos de hardware, como interfaces de rede extras.

Se por razões de economia ou de outra forma você optar por usar diferentes configurações de hardware, você deve notar que sua capacidade de superar falha de hardware será reduzida. Também será necessário segmentar implantações em nós específicos - consulte a seção na documentação do MAAS sobre tags .

Crie o arquivo de configuração do OpenStack

Usaremos os encantos Juju para implantar os componentes do OpenStack. Cada charme encapsula tudo o que é necessário para configurar um determinado serviço. Contudo, os serviços individuais têm muitas opções de configuração, algumas das quais quer mudar.

Para tornar esta tarefa mais fácil e mais reproduzível, criaremos uma arquivo de configuração com as opções relevantes para todos os serviços. Isto é escrito em um formato YAML padrão ( veja www.yaml.org se não estiver familiarizado com você ).

Aqui está um exemplo de um openstack-config.yaml:

keystone:
  admin-password: openstack
  debug: 'true'
  log-level: DEBUG
nova-cloud-controller:
  network-manager: 'Neutron'
  quantum-security-groups: 'yes'
  neutron-external-network: Public_Network
nova-compute:
  enable-live-migration: 'True'
  migration-auth-type: "none"
  virt-type: kvm
  #virt-type: lxc
  enable-resize: 'True'
quantum-gateway:
  ext-port: 'eth1'
  plugin: ovs
glance:
  ceph-osd-replication-count: 3
cinder:
  block-device: None
  ceph-osd-replication-count: 3
  overwrite: "true"
  glance-api-version: 2
ceph:
  fsid: a51ce9ea-35cd-4639-9b5e-668625d3c1d8
  monitor-secret: AQCk5+dR6NRDMRAAKUd3B8SdAD7jLJ5nbzxXXA==
  osd-devices: /dev/sdb
  osd-reformat: 'True'

Para todos os serviços, podemos configurar o openstack-origin para apontar para uma fonte de instalação. Neste caso, vamos nos basear no padrão, que apontará para as fontes relevantes para o lançamento do Ubuntu 14.04 LTS Trusty. Outras configurações para cada serviço são explicadas em este documento .

Outras configurações

Outras configurações e opções de configuração são possíveis para a implantação dos serviços do OpenStack. Estes são detalhados na documentação dos encantos individuais usados pelo Juju, e podem ser inspecionados visitando a on-line Juju Charm Store e procurando o charme usando o caixa de pesquisa no canto superior esquerdo da página. as definições de configuração são detalhadas em "Configuração" na página principal, conforme mostrado:

Implantando o OpenStack com o Juju

Agora que a configuração está definida, podemos usar o Juju para implantar e relacionar os serviços.

Inicializando o Juju

O Juju requer uma quantidade mínima de configuração. Aqui nós assumimos que ele já foi configurado para trabalhar com seu cluster MAAS (veja o [Guia de instalação do Juju] [juju_install] para mais informações sobre isso.

Primeiramente, precisamos buscar imagens e ferramentas que o Juju usará:

juju sync-tools --debug

Em seguida, podemos criar a instância de bootstrap:

juju bootstrap --upload-tools --debug

Usamos o switch upload-tools para usar as versões locais das ferramentas que usamos apenas buscado. O comutador de depuração fornecerá uma saída detalhada que pode ser útil. Esse processo pode levar alguns minutos, já que Juju está criando uma instância e instalar as ferramentas.Quando terminar, você pode verificar o status do sistema com o comando:

juju status

Isso deve retornar algo como:

environment: maas
machines:
  "0":
    agent-state: started
    agent-version: 1.18.1.1
    dns-name: localhost
    instance-id: localhost
    series: trusty

Implantar os códigos do OpenStack

Agora que o nó de inicialização do Juju está ativo e em execução, podemos implantar os serviços necessário para fazer nossa instalação do OpenStack. Para configurar esses serviços corretamente como eles são implantados, vamos fazer uso do arquivo de configuração que definido anteriormente, passando-o junto com a opção --config com cada implantação comando. Substitua o nome e o caminho do seu arquivo de configuração, se diferente.

É útil, mas não essencial, implantar os serviços na ordem abaixo. Isto é também altamente recomendado para abrir uma janela de terminal adicional e executar o comando juju debug-log . Isto irá mostrar os logs de todos os serviços executar e pode ser útil para solucionar problemas.

Também é recomendável executar um comando juju status periodicamente, para verificar que cada serviço foi instalado e está funcionando corretamente. Juju vai tenta automaticamente buscar a melhor versão possível do charme da loja on-line de charme. Se você estiver instalando de dentro de um rede fechada, é possível pré-buscar os encantos necessários. Veja [a documentação para charms off-line] [charms-offline].

juju deploy --to=0 juju-gui
juju deploy rabbitmq-server
juju deploy mysql
juju deploy --config openstack-config.yaml openstack-dashboard
juju deploy --config openstack-config.yaml keystone
juju deploy --config openstack-config.yaml ceph -n 3 
juju deploy --config openstack-config.yaml nova-compute -n 3
juju deploy --config openstack-config.yaml quantum-gateway
juju deploy --config openstack-config.yaml cinder
juju deploy --config openstack-config.yaml nova-cloud-controller
juju deploy --config openstack-config.yaml glance
juju deploy --config openstack-config.yaml ceph-radosgw

Adicionar relações entre os serviços do OpenStack

Embora os serviços agora estejam implantados, eles ainda não estão conectados juntos. Cada serviço atualmente existe isoladamente. Nós usamos o juju add-relation comando para torná-los conscientes um do outro e configurar quaisquer conexões relevantes e protocolos. Esta configuração extra é cuidada pelo indivíduo encanta-se.

Devemos começar a adicionar relações entre os charmes configurando o serviço de autorização Keystone e seu banco de dados, pois isso será necessário para muitas outras conexões:

juju add-relation keystone mysql

Esperamos até que a relação esteja definida. Depois que terminar, verifique com o status juju:

juju status mysql
juju status keystone

Pode demorar alguns instantes para que esse serviço seja resolvido. Embora seja certamente possível continuar adicionando relações (Juju gerencia uma fila para ações pendentes) pode ser contraproducente em termos do tempo total gasto, já que muitas das relações se referem aos mesmos serviços.

As seguintes relações também precisam ser feitas:

juju add-relation nova-cloud-controller mysql
juju add-relation nova-cloud-controller rabbitmq-server
juju add-relation nova-cloud-controller glance
juju add-relation nova-cloud-controller keystone
juju add-relation nova-compute mysql
juju add-relation nova-compute rabbitmq-server
juju add-relation nova-compute glance
juju add-relation nova-compute nova-cloud-controller
juju add-relation glance mysql
juju add-relation glance keystone
juju add-relation cinder keystone
juju add-relation cinder mysql
juju add-relation cinder rabbitmq-server
juju add-relation cinder nova-cloud-controller
juju add-relation openstack-dashboard keystone
juju add-relation swift-proxy swift-storage
juju add-relation swift-proxy keystone

Finalmente, a saída do status de juju deve mostrar todas as relações como completas. A nuvem OpenStack agora está em execução, mas precisa ser preenchida com alguns componentes adicionais antes de estar pronta para uso.

    
por Jorge Castro 13.04.2017 / 14:23
2

Ken Pepple tem um livro sobre a implantação do OpenStack: link

A empresa de Ken (Internap) possui o primeiro serviço de computação em nuvem OpenStack comercial disponível.

link

A nuvem do Internap é construída no Xen Cloud Platform (XCP) como o hipervisor.

    
por Todd Deshane 12.11.2011 / 13:54
0

A implantação do RDO é um processo rápido e fácil. A configuração de uma nuvem do OpenStack leva aproximadamente 15 minutos e pode ser de apenas 3 etapas. link

    
por Omid Kosari 02.05.2013 / 10:10