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
- Uso do MAAS - siga estas instruções primeiro.
- Uso de Juju
- 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.