Instalando o OpenStack
Se você deseja começar a operar rapidamente, vá aqui:
Esta resposta é uma visão mais detalhada de como usar o Juju com o OpenStack.
Escopo
A plataforma OpenStack é poderosa e seus usos diversos. Esta seção da documentação se preocupa principalmente com a implantação de um sistema OpenStack em execução "padrão" usando, mas não se limitando a, componentes Canonical como MAAS, Juju e Ubuntu. Onde apropriado, outros métodos e softwares serão mencionados.
Premissas
- Uso do MAAS - siga estas instruções primeiro.
- Uso de Juju
- Configuração de rede local - Este documento pressupõe que você tenha uma configuração de rede local adequada, incluindo interfaces separadas para acesso à nuvem do OpenStack. As redes ideais são apresentadas na [MAAS] [documentação do MAAS para OpenStack].
Planejando uma instalação
Antes de implantar qualquer serviço, é muito útil fazer um balanço dos recursos disponíveis e como eles devem ser usados. O OpenStack compreende vários serviços inter-relacionados (Nova, Swift, etc.), cada um com demandas diferentes em termos de hosts. Por exemplo, o serviço Swift, que fornece armazenamento de objetos, tem um requisito diferente do serviço Nova, que fornece recursos de computação.
Os requisitos mínimos para cada serviço e recomendações são estabelecidos no Guia oficial de operações do OpenStack
A composição recomendada de nós para implantar o OpenStack com MAAS e Juju é que todos os nós no sistema devem ser capazes de executar QUALQUER dos serviços. Essa é uma prática recomendada para a robustez do sistema, pois, como qualquer nó físico deve falhar, outro pode ser reajustado para substituí-lo. Obviamente, isso se estende a todos os requisitos de hardware, como interfaces de rede extras.
Se, por razões de economia ou de outra forma, você optar por usar configurações diferentes de hardware, observe que sua capacidade de superar falhas de hardware será reduzida. Também será necessário direcionar implantações para 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 encapsulamento encapsula tudo o necessário para configurar um serviço específico. No entanto, os serviços individuais têm muitas opções de configuração, algumas das quais queremos alterar.
Para tornar essa tarefa mais fácil e reproduzível, criaremos um arquivo de configuração separado com as opções relevantes para todos os serviços. Está escrito em um formato YAML padrão ( consulte www.yaml.org se isso não lhe é familiar ).
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. Nesse caso, confiaremos 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 neste documento .
Outras configurações
Outras configurações e opções de configuração são possíveis para a implantação dos serviços OpenStack. Eles estão detalhados na documentação dos encantos individuais usados por Juju e podem ser inspecionados visitando a Juju Charm Store on - line e pesquisando o encanto usando a 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, como 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 Juju
Juju requer uma quantidade mínima de configuração. Aqui assumimos que ele já foi configurado para funcionar com seu cluster MAAS (consulte o [Guia de Instalação do Juju] [juju_install] para obter mais informações sobre isso.
Primeiro, precisamos buscar imagens e ferramentas que o Juju usará:
juju sync-tools --debug
Em seguida, podemos criar a instância de auto-inicialização:
juju bootstrap --upload-tools --debug
Usamos a opção upload-tools para usar as versões locais das ferramentas que acabamos de buscar. A opção de depuração fornecerá uma saída detalhada que pode ser útil. Esse processo pode levar alguns minutos, pois Juju está criando uma instância e instalando 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 encantos do OpenStack
Agora que o nó de inicialização Juju está em funcionamento, podemos implantar os serviços necessários para fazer a instalação do OpenStack. Para configurar esses serviços corretamente à medida que eles são implantados, usaremos o arquivo de configuração que definimos anteriormente, passando-o junto com o --config
switch com cada comando deploy. 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. Também é altamente recomendável abrir uma janela de terminal adicional e executar o comando juju debug-log
. Isso produzirá os logs de todos os serviços à medida que são executados e pode ser útil para solucionar problemas.
Também é recomendável executar um juju status
comando periodicamente, para verificar se cada serviço foi instalado e está sendo executado corretamente. Juju tentará automaticamente buscar a melhor versão possível do encanto na Charm Store online. Se você estiver instalando a partir de uma rede restrita ou fechada, é possível buscar previamente os encantos necessários. Consulte [a documentação para encantos offline] [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 OpenStack
Embora os serviços agora estejam implantados, eles ainda não estão conectados. Cada serviço existe atualmente isoladamente. Usamos o juju add-relation
comando para torná-los cientes um do outro e configurar quaisquer conexões e protocolos relevantes. Essa configuração extra é cuidada pelos encantos individuais.
Devemos começar a adicionar relações entre os encantos, configurando o serviço de autorização Keystone e seu banco de dados, pois isso será necessário para muitas das outras conexões:
juju add-relation keystone mysql
Esperamos até que a relação seja estabelecida. Depois que terminar, verifique-o com o status juju:
juju status mysql
juju status keystone
Pode levar 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, pois 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 juju deve mostrar todas as relações como completas. A nuvem do OpenStack agora está em execução, mas precisa ser preenchida com alguns componentes adicionais antes de estar pronta para uso.