Apêndice - Caixa de ferramentas de implantação da AWS

Este tópico inclui ferramentas e opções de implantação alternativas para a arquitetura de referência quando implantada na AWS. Especificamente, este tópico descreve como automatizar o exemplo de implantação da AWS que é descrito em todo o EDG.

Script de instalação automatizada TabDeploy4EDG

O script TabDeploy4EDG(O link abre em nova janela) automatiza a implementação da implantação do Tableau de quatro nós descrita na Parte 4 - Instalar e configurar o Tableau Server. Se você estiver seguindo o exemplo de implementação da AWS, conforme descrito neste Guia, poderá executar o TabDeploy4EDG.

Requisitos. Para executar o script, você deve preparar e configurar o ambiente AWS de acordo com o exemplo de implementação na Parte 3 - Preparação para a implantação corporativa do Tableau Server:

  • VPC, sub-rede e grupos de segurança foram configurados conforme descrito. Os endereços IP não precisam corresponder aos mostrados na implementação de exemplo.
  • Quatro instâncias EC2 executando as compilações mais recentes e atualizadas do AWS Linux 2
  • O PostgreSQL está instalado e foi configurado conforme descrito em Instalar, configurar e PostgreSQL de tar.
  • Um arquivo de backup de tar da Etapa 1 está na instância do EC2 em que o PostgreSQL está instalado, conforme descrito em Faça backup do tar PostgreSQL da etapa 1.
  • A instância EC2 que executará o Nó 1 da implantação do Tableau Server foi configurada para se comunicar com o PostgreSQL conforme descrito em Parte 4 - Instalar e configurar o Tableau Server.
  • Você se conectou a cada instância do EC2 com uma sessão SSH do host Bastion.

O script leva cerca de 1,5 a 2 horas para instalar e configurar os quatro servidores Tableau. O script configura o Tableau de acordo com as configurações prescritas da arquitetura de referência. O script executa as seguintes ações:

  • Restaura o backup da fase 1 do host PostgreSQL, se você especificar um caminho para o arquivo tar do host PostgreSQL.
  • Elimina as instalações existentes do Tableau em todos os nós.
  • Executa sudo yum update em todos os nós.
  • Faz o download e copia o pacote rpm do Tableau para cada nó.
  • Faz download e instala dependências para cada nó.
  • Cria /app/tableau_server e instala o pacote em todos os nós.
  • Instala o Nó 1 com um armazenamento de identidade local e configura o repositório externo com PostgreSQL.
  • Executa a instalação de bootstrap e a configuração inicial do Nó 2 - Nó 4.
  • Exclui o arquivo de inicialização e o arquivo de configuração para TabDeploy4EDG.
  • Configura serviços no cluster do Tableau de acordo com as especificações da arquitetura de referência.
  • Valida a instalação e retorna o status de cada nó.

Baixar e copiar o script para o host Bastion

  1. Copie o script da página de amostras TabDeploy4EDG(O link abre em nova janela) e cole o código em um arquivo chamado, TabDeploy4EDG.
  2. Salve o arquivo no diretório inicial do host EC2 que está servindo como host Bastion.
  3. Execute o seguinte comando para alterar o modo no arquivo para torná-lo executável:

     sudo chmod +x TabDeploy4EDG

Executar TabDeploy4EDG

O TabDeploy4EDG deve ser executado no host Bastion. O script foi escrito com a suposição de que você está executando no contexto do agente de encaminhamento ssh, conforme descrito em Exemplo: conecte-se ao host Bastion na AWS . Se você não estiver executando com o contexto do agente de encaminhamento ssh, serão solicitadas senhas durante o processo de instalação.

  1. Crie, edite e salve um arquivo de registro (registration.json ) O arquivo deve ser um arquivo json formatado corretamente. Copie e personalize o seguinte modelo:

    {
    	"zip" : "97403",
    	"country" : "USA",
    	"city" : "Springfield",
    	"last_name" : "Simpson",
    	"industry" : "Energy",
    	"eula" : "yes",
    	"title" : "Safety Inspection Engineer",
    	"phone" : "5558675309",
    	"company" : "Example",
    	"state" : "OR",
    	"department" : "Engineering",
    	"first_name" : "Homer",
    	"email" : "homer@example.com"
    }
  2. Execute o seguinte comando para gerar o arquivo de configuração do modelo:

    ./TabDeploy4EDG -g edg.config              
  3. Abra o arquivo de configuração para editar:

    sudo nano edg.config              

    No mínimo, você deve adicionar os endereços IP de cada host EC2, um caminho para o arquivo de registro e uma chave de licença válida.

  4. Quando terminar de editar o arquivo de configuração, salve-o e feche-o.

  5. Para executar o TabDeploy4EDG, execute o seguinte comando:

    ./TabDeploy4EDG -f edg.config         

Exemplo: automatizar a implantação da infraestrutura da AWS com o Terraform

Esta seção descreve como configurar e executar o Terraform para implantar a arquitetura de referência EDG na AWS. O exemplo de configuração do Terraform apresentado aqui implanta um AWS VPC com sub-redes, grupos de segurança e instâncias do EC2 descritos na Parte 3 - Preparação para a implantação corporativa do Tableau Server.

Modelos de exemplo do Terraform estão disponíveis no site de exemplos do Tableau em https://help.tableau.com/samples/en-us/edg/edg-terraform.zip(O link abre em nova janela) . Esses modelos devem ser configurados e personalizados para sua organização. O conteúdo de configuração fornecido nesta seção descreve as mudanças de modelo mínimas necessárias que você deve personalizar para implantar.

Meta

Os modelos e o conteúdo do Terraform fornecidos aqui destinam-se a fornecer uma amostra funcional que permitirá implantar o EDG rapidamente em um ambiente de teste de desenvolvimento.

Fizemos o possível para testar e documentar o exemplo de implantação do Terraform. No entanto, usar o Terraform para implantar e manter o EDG em um ambiente de produção exigirá conhecimento do Terraform que está além do escopo deste exemplo. O Tableau não oferece suporte para o exemplo de solução Terraform documentado aqui.

Estado final

Siga o procedimento nesta seção para configurar uma VPC na AWS que seja funcionalmente equivalente à VPC especificada na Parte 3 - Preparação para a implantação corporativa do Tableau Server.

Os modelos de amostra do Terraform e o conteúdo de suporte nesta seção:

  • Cria uma VPC com um endereço IP elástico, duas zonas de disponibilidade e organização de sub-redes conforme mostrado acima (os endereços IP são diferentes)
  • Cria os grupos de segurança Bastion, Público, Privado e Dados.
  • Define a maioria das regras de entrada e saída nos grupos de segurança. Você precisará editar grupos de segurança após a execução do Terraform.
  • Cria os seguintes hosts EC2 (cada um executando AWS Linux2): bastion, proxy 1 proxy 2, Tableau nó 1, Tableau nó 2, Tableau nó 3, Tableau nó 4.
  • Hosts EC2 para PostgreSQL não são criados. Você deve criar o EC2 manualmente no grupo de segurança de dados e, em seguida, instalar e configurar o PostgreSQL conforme descrito em Instalar, configurar e PostgreSQL de tar.

Requisitos

  • Conta da AWS - você deve ter acesso a uma conta da AWS que permita criar VPCs.
  • Se você estiver executando o Terraform em um computador Windows, precisará instalar a AWS CLI.
  • Um endereço IP elástico disponível em sua conta da AWS.
  • Um domínio registrado no AWS Route 53. O Terraform criará uma zona DNS e certificados SSL relacionados no Route 53. Portanto, o perfil sob o qual o Terraform é executado também deve ter as permissões apropriadas no Route 53.

Antes de começar

  • Os exemplos de linha de comando neste procedimento são para Terminal com sistema operacional Apple. Se você estiver executando o Terraform no Windows, pode ser necessário adaptar comandos com caminhos de arquivo, conforme apropriado.
  • Um projeto Terraform é composto de muitos arquivos de configuração de texto (extensão de arquivo .tf). Você configura o Terraform personalizando esses arquivos. Se você não tiver um editor de texto robusto, instale o Atom ou o Text++.
  • Se você estiver compartilhando o projeto Terraform com outras pessoas, recomendamos armazenar o projeto no Git para gerenciamento de alterações.

Etapa 1 - Preparar o ambiente

A. Baixe e instale o Terraform:

https://www.terraform.io/downloads(O link abre em nova janela)

B. Gere o par de chaves públicas-privadas

Essa é a chave que você usará para acessar a AWS e o ambiente VPC resultante. Ao executar o Terraform, você incluirá a chave pública.

Abra o Terminal e execute o seguinte comando:

  1. Create a private key. For example, my-key.pem:

    openssl genrsa -out my-key.pem 1024
  2. Crie uma chave pública. Este formato de chave não é usado para Terraform. Você a converterá em uma chave ssh posteriormente neste procedimento:

    openssl rsa -in my-key.pem -pubout > my-key.pub
  3. Defina as permissões na chave privada:

    sudo chmod 0600 my-key.pem

    Para definir permissões no Windows:

    • Localize o arquivo no Windows Explorer, clique com o botão direito do mouse e selecione Propriedades. Navegue até a guia Segurança e clique em Avançado.
    • Altere o proprietário para você, desative a herança e exclua todas as permissões. Conceda a si mesmo o Controle total e clique em Salvar. Marque o arquivo como somente leitura.
  4. Crie a chave pública ssh. Essa é a chave que você copiará para o Terraform posteriormente no processo.

    ssh-keygen -y -f my-key.pem >my-key-ssh.pub

C. Baixe o projeto e adicione o diretório de estado

  1. Baixe e descompacte o projeto EDG Terraform(O link abre em nova janela) e salve-o em seu computador local. Depois de descompactar o download, você terá um diretório de nível superior, edg-terraform, e uma série de subdiretórios.

  2. Crie um diretório chamado state , como um par para o diretório de nível superioredg-terraform.

Etapa 2: personalizar o modelos do Terraform

Você deve personalizar os modelos do Terraform para se adequar ao seu ambiente AWS e EDG. O exemplo aqui fornece as personalizações mínimas de modelo que a maioria das organizações precisará fazer. É provável que seu ambiente específico exija outras personalizações.

Esta seção é organizada por nome de modelo.

Certifique-se de salvar todas as alterações antes de prosseguir para a Etapa 3 - Executar o Terraform.

versions.tf

There are three instances of versions.tf files where the required_version field must match the version of terraform.exe you're using. Check the version of terraform (terraform.exe -version) and update each of the following instances:

  • edg-terraform\versions.tf
  • edg-terraform\modules\proxy\versions.tf
  • edg-terraform\modules\tableau_instance\versions.tf

key-pair.tf

  1. Abra a chave pública que você gerou na Etapa 1B e copie-a:

     less my-key-ssh.pub

    Windows: copie o conteúdo de sua chave pública.

  2. Copie a cadeia de caracteres da chave pública no argumento public_key, por exemplo:

    resource "aws_key_pair" "tableau" {
    key_name = "my-key"
    public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQ (truncated example) dZVHambOCw=="

Ensure that the key_name value is unique in the datacenter or terraform apply will fail.

locals.tf

Update user.owner to your name or alias. The value you enter here will be used for the "Name" tag in AWS on the resources that Terraform creates.

providers.tf

  1. Adicione tags de acordo com os requisitos da sua organização. Por exemplo:

    default_tags {
      tags = {
          
       "Application" = "tableau",
       "Creator" = "alias@example.com",
       "DeptCode" = "8675309",
       "Description" = "EDG",
       "Environment" = "test",
       "Group" = "itcloud@example.com"
      }
    }
  2. If using provider, comment out the assume_role lines:

    /* assume_role {
    role_arn     = "arn:aws:iam::310946706895:role/terraform-backend"
    session_name = "terraform"
    }*/  

elb.tf

Under 'resource "aws_lb" "tableau" {' choose a unique value to use for name and tags.Name.

If another AWS load balancer has the same name in the datacenter, then terraform apply will fail.

Add idle_timeout:

resource "aws_lb" "tableau" {
name                       = "edg-again-alb"
load_balancer_type         = "application"
subnets                    = [for subnet in aws_subnet.public : subnet.id]
security_groups            = [aws_security_group.public.id]
drop_invalid_header_fields = true
idle_timeout               = 400
tags = {
Name = "edg-again-alb"
}
			}

variables.tf

Atualize o nome do domínio raiz. Esse nome deve corresponder ao domínio que você registrou no Route 53.

variable "root_domain_name" {
 default = "example.com"
 }

Por padrão, o subdomínio,tableau, é especificado para o nome de domínio VPC DNS. Para mudar isso, atualize subdomain:

variable "subdomain" {
 default = "tableau"
}

modules/tableau_instance/ec2.tf

There are two ec2.tf files in the project. This customization is for the Tableau instance of the ec2.tf in the directory: modules/tableau_instance/ec2.tf.

  • Se necessário, adicione blob de tags:

    tags = { 
     "Name" : var.ec2_name,
     "user.owner" = "ALIAS",
     "Application" = "tableau",
     "Creator" = "ALIAS@example.com",
     "DeptCode" = "8675309",
     "Description" = "EDG",
     "Environment" = "test",
     "Group" = "itcloud@example.com"
     }
    }
  • Conforme necessário, opcionalmente, atualize seu armazenamento para lidar com seus requisitos de dados:

    Volume raiz:

    root_block_device {
     volume_size = 100
     volume_type = "gp3"
    }

    Volume de aplicativo:

    resource "aws_ebs_volume" "tableau" {
     availability_zone = data.aws_subnet.tableau.availability_zone
     size              = 500
     type              = "gp3"
    }

Etapa 3 - Executar o Terraform

A. Inicializar o Terraform

No Terminal, mude para o diretório edg-terraform e execute o comando a seguir:

terraform init

Se a inicialização for bem-sucedida, continue na próxima etapa. Se a inicialização falhou, siga as instruções na saída do Terraform.

B. Planejar o Terraform

No mesmo diretório, execute o comando plan:

terraform plan

Esse comando pode ser executado várias vezes. Execute quantas vezes forem necessárias para corrigir os erros. Quando este comando for executado sem erros, continue na próxima etapa.

C. Aplicar Terraform

No mesmo diretório, execute o comando apply:

terraform apply

Terraform will prompt you to verify deployment, type Yes.

Opcional: Destruir Terraform

Você pode destruir todo o VPC executando o comando destroy:

terraform destroy

O comando destroy destruirá apenas o que ele criou. Se você fez alterações manuais em alguns objetos na AWS (ou seja, grupos de segurança, sub-redes etc.), o destroy vai falhar. Para sair de uma operação de destruição com falha/interrupção, digite Control + C. Em seguida, você deve limpar o VPC manualmente para o estado em que estava quando o Terraform o criou originalmente. Você pode executar o comando destroy.

Etapa 4 - Conecte-se ao bastion

Todas as conexões de linha de comando são feitas por meio do bastion host no TCP 22 (protocolo SSH).

  1. Na AWS, crie uma regra de entrada no grupo de segurança do bastion (AWS > Grupos de segurança > Bastion SG > Editar regras de entrada) e crie uma regra para permitir conexões SSH (TCP 22) do endereço IP ou máscara de sub-rede onde você executará os comandos do Terminal.

    Opcional: pode ser útil permitir a cópia de arquivos entre as instâncias do EC2 nos grupos Privado e Público durante a implantação. Crie regras SSH de entrada:

    • Privado: crie uma regra de entrada para permitir o SSH do Público
    • Público: crie regra de entrada para permitir SSH de Privado e Público
  2. Use a chave pem que você criou na Etapa 1.B para se conectar ao bastion host:

    No terminal Mac:

    Execute os seguintes comandos no diretório onde a chave pem está armazenada:

    ssh-add —apple-use-keychain <keyName>.pem

    If you get a warning about private key being accessible by others, then run this command: chmod 600 <keyName.pem> and then run the ssh-add command again.

    Connect to the bastion host with this command: ssh -A ec2-user@IPaddress

    For example: ssh -A ec2-user@3.15.12.112.

    No Windows usando PuTTY e Pageant:

    1. Crie ppk na chave pem: use o gerador de chaves PuTTY. Carregue a chave pem criada na Etapa 1.B. Após as importações de chave, clique em Salvar chave privada. Isso cria um arquivo ppk.

    2. No PuTTY - abra a configuração e faça as seguintes alterações:

      • Sessões>Nome do host: adicione o endereço IP do bastion host.
      • Sessões>Porta: 22
      • Conexão>Dados>Nome de usuário de login automático: ec2-user
      • Conexão>SSH>Auth>Permitir encaminhamento de agente
      • Connection>SSH>Auth> Para a chave privada, clique em Procurar e selecione o arquivo .ppk que você acabou de criar.
    3. Instale o Pageant e carregue o ppk no aplicativo.

    Etapa 5- instalar o PostgreSQL

    O modelo Terraform não instala o PostgreSQL para uso como repositório externo. No entanto, o grupo de segurança e a sub-rede associados são criados. Se você for instalar o repositório externo em uma instância do EC2 executando PostgreSQL, deverá implantar a instância do EC2 conforme descrito na Parte 3 - Preparação para a implantação corporativa do Tableau Server.

    Em seguida, instale, configure e faça o backup tar do PostgreSQL conforme descrito na Parte 4 - Instalar e configurar o Tableau Server.

    Etapa 6 - (Opcional) Execute DeployTab4EDG

    O script TabDeploy4EDG automatiza a implantação do Tableau de quatro nós descrita na Parte 4. Consulte o Script de instalação automatizada TabDeploy4EDG.

Agradecemos seu feedback!Seu feedback foi enviado. Obrigado!