Automatize as conexões de federação de grids no StorageGRID
Após instalar e configurar dois ou mais sistemas StorageGRID executando a versão 12.1 ou posterior, você pode automatizar a criação, edição e manutenção de conexões de federação de grid usando o manage-grid-federation.py script Python e um arquivo de configuração JSON.
-
Todas as grades estão executando StorageGRID 12.1 ou posterior.
-
Se o single sign-on (SSO) estiver ativado em alguma grid, você o desativou.
-
Você possui um computador Linux com Python 3.6 ou posterior instalado.
-
Você sabe a localização dos seguintes arquivos no arquivo de instalação:
Nome do ficheiro Descrição manage-grid-federation.py
Script Python usado para automatizar o gerenciamento de conexões da federação de grids
manage-grid-federation.sample.json
Exemplo de arquivo de configuração para uso com o script
-
Você criou um
manage-grid-federation.jsonarquivo de configuração. Para criar este arquivo, você pode modificar o arquivo de configuração de exemplomanage-grid-federation.sample.json.
|
|
Armazene as senhas de administrador do grid e as frases-senha de provisionamento do seu manage-grid-federation.json arquivo de configuração em um local seguro. Se as credenciais forem omitidas do arquivo, o script solicitará que você as informe interativamente. Você também deve armazenar um backup do arquivo de configuração modificado em um local seguro.
|
Campos do arquivo de configuração
O arquivo de configuração JSON é uma matriz de objetos. Cada objeto representa uma grid e suporta os seguintes campos:
| Campo | Obrigatório | Descrição |
|---|---|---|
|
Sim |
Nome do host ou endereço IP para o grid |
|
Sim |
Nome de exibição para a grid (máximo de 12 caracteres) |
|
Não |
Nome de usuário do administrador do grid (solicitado interativamente se omitido) |
|
Não |
Senha de administrador da grid (solicitada interativamente se omitida) |
|
Não |
Senha de provisionamento (solicitada interativamente se omitida) |
|
Não |
Caminho para um pacote de certificados CA personalizado para verificação SSL |
|
Não |
Região S3 padrão desejada para conexões de namespace globais |
|
Não |
CNAME desejado para conexões de namespace global |
|
Não |
Endpoint de namespace global desejado |
|
|
Se você configurar qualquer um dos campos de namespace global (region, CNAME, globalEndpoint, deverá fornecer todos os três para cada grid. Certifique-se de que as regiões e os CNAMEs sejam exclusivos em todos os grids e que o valor globalEndpoint seja idêntico para todos os grids.
|
Você pode usar o manage-grid-federation.py script Python e o manage-grid-federation.json arquivo de configuração para automatizar o gerenciamento de conexões da federação de grids. O script executa as seguintes operações:
-
Autentica-se em cada grid usando a API de gerenciamento de grid
-
Verifica se todos os grids estão executando StorageGRID 12.1 ou posterior
-
Verifica se o Single Sign-On está desativado em todas as grids
-
Recupera as conexões de federação de grid existentes e a configuração S3
-
Atualiza as configurações de região S3, CNAME e endpoint de namespace global quando configurado
-
Cria novas conexões de federação de grids para quaisquer pares de grids que ainda não estejam conectados
-
Edita conexões existentes quando os nomes de exibição ou as configurações de namespace global são alterados
-
Exibe um resumo de todas as conexões e seus status
|
|
Você também pode gerenciar conexões de federação de grid usando a interface do usuário do Grid Manager ou a Grid Management API diretamente. |
-
Faça login na máquina Linux que você está usando para executar o script Python.
-
Altere para o diretório que contém o script.
Por exemplo:
cd StorageGRID-Webscale-version/platform
onde plataforma é
debs,rpmsouvsphere. -
Execute o script Python e use o arquivo de configuração que você criou.
Por exemplo:
./manage-grid-federation.py -i manage-grid-federation.jsonVocê pode usar as seguintes opções de linha de comando:
Opção Padrão Descrição -i, --input-json-file(obrigatório)
Caminho para o arquivo de configuração JSON contendo a lista de grids
-b, --base-port23001
Número da porta inicial para novas conexões de federação de grid
--no-verify-sslVerificação SSL ativada
Desativa a verificação de certificado SSL para conexões locais com a grid
Editar conexões existentes
Se o script detectar que as conexões existentes precisam de alterações, por exemplo, porque os nomes de exibição da grid foram alterados ou as configurações globais do namespace precisam ser atualizadas, ele exibirá um resumo das edições propostas e solicitará confirmação antes de prosseguir.
Quando atualizações de configuração do S3 (region, CNAME ou globalEndpoint são necessárias em grids com namespace global habilitado, o script deve desabilitar temporariamente o namespace global para aplicar as alterações. Nesse caso, o aviso de confirmação alertará sobre a interrupção temporária de roteamento:
*** Global Namespace Disable Required *** Global Namespace must be disabled to update region/CNAME/globalEndpoint settings. Routing requests will not work until Global Namespace is re-enabled. Grids requiring S3 updates: grid1.example.com, grid2.example.com Proceed with these edits and the temporary routing outage? [y/N]:
|
|
Embora o namespace global esteja temporariamente desativado durante as atualizações de configuração do S3, as solicitações de roteamento do namespace global não funcionarão. Planeje esta operação durante uma janela de manutenção. |
Suas conexões de federação de grid são estabelecidas e configuradas quando o script exibe um resumo de confirmação semelhante ao seguinte:
===== Newly Established Connections =====
• Grid-A and Grid-B — grid-a.example.com and grid-b.example.com on port 23001
Total new connections: 1
===== All Grid-Federation Connections =====
Name Source Target Port Status Global Namespace
---------------- -------------------- -------------------- ----- -------- ----------------
Grid-A and Grid-B grid-a.example.com grid-b.example.com 23001 new enabled
Total connections listed: 1
===== Grid S3 Configuration Summary =====
grid-a.example.com:
Default Region: us-east-1
CNAME: s3-a.example.com
Global namespace endpoint: gn.example.com
grid-b.example.com:
Default Region: us-west-1
CNAME: s3-b.example.com
Global namespace endpoint: gn.example.com
Status de saída
| Código | Descrição |
|---|---|
|
Script concluído com sucesso |
|
A validação falhou ou uma chamada de API do grid retornou um erro (verifique a saída do log) |
|
|
Caso alguma conexão falhe, o script continua processando os pares restantes e reporta todas as falhas na seção "Conexões com Falha" da saída. Analise as mensagens de erro e resolva quaisquer problemas antes de executar o script novamente. |