Skip to main content
O português é fornecido por meio de tradução automática para sua conveniência. O inglês precede o português em caso de inconsistências.

Automatize as conexões de federação de grids no StorageGRID

Colaboradores netapp-lhalbert netapp-pcarriga

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.

Antes de começar
  • 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.json arquivo de configuração. Para criar este arquivo, você pode modificar o arquivo de configuração de exemplo manage-grid-federation.sample.json.

Cuidado 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

nome do host

Sim

Nome do host ou endereço IP para o grid

nome_do_grid

Sim

Nome de exibição para a grid (máximo de 12 caracteres)

nome de usuário

Não

Nome de usuário do administrador do grid (solicitado interativamente se omitido)

senha

Não

Senha de administrador da grid (solicitada interativamente se omitida)

frase secreta

Não

Senha de provisionamento (solicitada interativamente se omitida)

ca_bundle

Não

Caminho para um pacote de certificados CA personalizado para verificação SSL

região

Não

Região S3 padrão desejada para conexões de namespace globais

CNAME

Não

CNAME desejado para conexões de namespace global

globalEndpoint

Não

Endpoint de namespace global desejado

Observação 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.
Sobre esta tarefa

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

Dica 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.
Passos
  1. Faça login na máquina Linux que você está usando para executar o script Python.

  2. Altere para o diretório que contém o script.

    Por exemplo:

    cd StorageGRID-Webscale-version/platform

    onde plataforma é debs, rpms ou vsphere.

  3. Execute o script Python e use o arquivo de configuração que você criou.

    Por exemplo:

    ./manage-grid-federation.py -i manage-grid-federation.json

    Você 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-port

    23001

    Número da porta inicial para novas conexões de federação de grid

    --no-verify-ssl

    Verificaçã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]:
Cuidado 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.
Depois de terminar

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

0

Script concluído com sucesso

1

A validação falhou ou uma chamada de API do grid retornou um erro (verifique a saída do log)

Observação 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.