Sobre a Configuração do Terraform em Sistemas UNIX-Like

Para usar o Terraform para criar componentes do Oracle Cloud Infrastructure, você deve fazer download e instalar o Terraform. Você também fará o download dos módulos Terraform que criam os arquivos de configuração que você usará para criar os componentes de infraestrutura necessários.

O sistema no qual você instala o Terraform e armazena os módulos do Teraform pode estar no local ou na nuvem. Por conveniência, recomendaremos isso como seu sistema local ou seu host local.

Antes de executar o Terraform:

  • Gere um par de chaves SSH usado para permitir que você acesse suas instâncias do Compute

  • Gere uma chave de assinatura de API usada para autenticar chamadas de API feitas pelo Terraform

  • Defina as variáveis do ambiente usadas pelo Terraform para autenticar o acesso e executar seus planos

Após concluir estas etapas, você está pronto para aplicar os arquivos de configuração Terraform a fim de criar os componentes de infraestrutura no Oracle Cloud Infrastructure.

Instalar Terraform

Para instalar o Terraform em um sistema Linux ou UNIX, faça download do pacote apropriado do site Terraform.

  1. Vá para https://www.terraform.io/downloads.html .
  2. Faça download do pacote aplicável para seu sistema local.
  3. Extraia o pacote para o caminho /usr/local/bin/.
    Nenhuma instalação adicional é necessária. O Terraform agora está instalado e pronto para uso.

    Você também pode extrair o Terraform para qualquer outro local do sistema local. Certifique-se de que o local seja adicionado à variável PATH em seu sistema.

  4. Para verificar sua instalação e verificar a versão, abra um terminal e execute terraform -version.
    Você verá a versão Terraform exibida na saída. Por exemplo: Terraform v0.11.8

Fazer Download dos Módulos Terraform

Para começar a criar componentes de infraestrutura no Oracle Cloud Infrastructure usando o Terraform, faça download dos módulos Terraform.

  1. Use o Git ou um web browser para clonar ou fazer download dos módulos Terraform no sistema local. Clique em Fazer Download do Código na navegação à esquerda do link para o repositório Git.
  2. Descompacte ou extraia os módulos Terraform para um diretório no sistema local.
  3. Navegue até o diretório em que os módulos Terraform estão localizados. Execute terraform init. Isso também fará o download do provedor do Oracle Cloud Infrastructure para o Terraform.
    O Terraform inicializa os módulos juntamente com o plug-in do provedor OCI. Quando a inicialização estiver concluída, você verá a mensagem Terraform has been successfully initialized!

Gerar um Par de Chave SSH para Acessar os Hosts da Bastion

Um par de chaves SSH é usado para permitir que você acesse com segurança instâncias criadas em sub-redes públicas. Você gera um par de chaves SSH em seu host local. Os módulos Terraform adicionam a chave pública SSH aos hosts do bastion. Quando precisar se conectar ao host bastion pela internet pública, você fornece a chave privada SSH para autenticar o acesso.

Você pode usar o utilitário ssh-keygen para gerar um par de chaves SSH. Não defina uma frase-senha para sua chave SSH.

  • Para gerar um par de chaves SSH usando o utilitário ssh-keygen, em um terminal, digite: ssh-keygen -t rsa -N "" -b 2048 -C "<key_name>" -f <path/root_name>
    Neste comando:
    • -t rsa especifica que a chave deve ser gerada usando o algoritmo RSA

    • -N "" especifica a frase-senha que você deseja associar a esta chave. Não informe nada entre as aspas. A chave é criada sem uma frase-senha.

    • -b 2048 especifica que você deseja gerar uma chave de 2048bits. Esse é o valor padrão e também é o valor mínimo recomendado.

    • -C "<key_name>" especifica o nome deste par de chaves.

    • -f <path/root_name> especifica o local onde a chave é salva e o nome da raiz para a chave pública e privada. A chave pública tem .pub anexado ao nome da raiz.

O par de chaves SSH é gerado e salvo no local especificado. Anote este local.

Gerar um Par de Chaves SSH para Acessar Outras Instâncias

Os hosts bash são usados para ativar o encaminhamento SSH para outras instâncias que não têm endereços IP públicos e não permitem acesso na internet pública. Para acessar com segurança outras instâncias do host de bastecimento, use um par de chaves SSH onde a chave pública armazenada em instâncias de sub-redes privadas corresponde a uma chave privada armazenada em sua máquina local. Como uma melhor prática de segurança, esse par de chaves SSH não deve ser o mesmo que o par de chaves SSH usado para acessar o host de bastão.

Use ssh-keygen no seu host local para gerar outro par de chaves SSH. Anote o local onde você salva este par de chaves SSH.

Gerar uma Chave de Assinatura de API

Você deve fornecer um par de chaves RSA no formato Privacy Enhanced Mail (PEM) para autenticar seu script Terraform com o Oracle Cloud Infrastructure. Observe que esta chave de assinatura de API não é igual ao par de chaves SSH que você usa para acessar suas instâncias. Você pode usar OpenSSL para gerar este par de chaves.

  1. Crie um diretório oculto na sua área do home para armazenar a chave do PEM. Digite: mkdir ~/.oci
  2. Use o OpenSSL para gerar uma chave privada. Lembre-se de especificar 2048 bits ou superior ao gerar a chave privada. Digite: openssl genrsa -out ~/.oci/key_name.pem 2048
  3. Altere as permissões na chave privada para garantir que apenas você possa ler a chave privada. Digite: chmod go-rwx ~/.oci/key_name.pem
  4. Em seguida, use o OpenSSL para gerar a chave pública da chave privada fornecida. Digite: openssl rsa -pubout -in ~/.oci/key_name.pem -out ~/.oci/key_name_public.pem
Você pode armazenar sua chave de assinatura de API em qualquer outro local de sua escolha. No entanto, certifique-se de fazer uma nota deste local.

Fazer Upload da Chave de Assinatura da API Usando a Console

Depois de gerar uma chave de assinatura de API, você deverá fazer upload da chave pública do usuário associado no Oracle Cloud Infrastructure. Na primeira vez que você fizer upload de uma chave de assinatura da API, deverá usar a Console. Subsequentemente, você também pode usar a API para fazer upload de uma chave de API.

  1. Acesse a Console do Oracle Cloud Infrastructure.
  2. Clique em Identidade e depois em Usuários.
  3. Clique no usuário para quem você deseja adicionar a chave de assinatura da API.
  4. Na página de detalhes do usuário, clique em Adicionar Chave Pública.
  5. No sistema local, para copiar a chave pública, digite: cat ~/.oci/key_name_public.pem | pbcopy
    Se você salvou sua chave em um local diferente, informe o caminho para esse local.
  6. Na Console, cole o valor da chave pública e clique em Adicionar.

Definir Variáveis de Ambiente

Os módulos Terraform fornecidos aqui permitem definir variáveis de ambiente, especificando os valores necessários em um arquivo de texto. Você pode, então, apenas originar o arquivo para garantir que todas as variáveis de ambiente necessárias sejam definidas da forma apropriada.

Antes de começar, efetue log-in na Console do Oracle Cloud Infrastructure. Você usará a Console para encontrar as seguintes informações.

  • O ID Oracle Cloud Infrastructure do tenancy (OCID)

  • O OCID do usuário

  • A impressão digital da chave de assinatura da API que você deseja usar

  • A região

  • O OCID do compartimento

Certifique-se também de conhecer o local onde sua chave de assinatura de API e seu par de chaves SSH estão armazenados no seu sistema local.

  1. No sistema local, navegue até o diretório onde os módulos Terraform estão localizados.
  2. Abra o arquivo env-vars em um editor de texto.
  3. O arquivo env-vars tem quatro seções. Inicie com a seção de detalhes da autenticação.
    1. Informe o OCID do tenancy. Você pode localizar o OCID da locação na parte inferior da Console do Oracle Cloud Infrastructure. É uma string semelhante a: ocid1.tenancy.oc1..aaaaa.... Cole esse valor no arquivo env-vars.
    2. Informe o OCID do usuário. Para localizar o usuário OCID, na Console do Oracle Cloud Infrastructure, clique em Identidade e, em seguida, clique em Usuários. A lista de usuários é exibida, juntamente com o OCID do usuário. Clique em Copiar abaixo do nome do usuário para copiar o OCID necessário para o usuário. Cole esse valor no arquivo env-vars.
    3. Informe a impressão digital da chave de assinatura da API. Na Console do Oracle Cloud Infrastructure, na página Usuários , clique no usuário para exibir a página de detalhes do usuário. Copie a impressão digital da chave da API da chave listada na seção Chaves da API . Cole esse valor no arquivo env-vars.
    4. Digite o caminho completo e o nome do arquivo da chave privada da API em seu sistema local.
  4. Na seção de região do arquivo env-vars, informe a região na qual você deseja criar os componentes de infraestrutura. A região que você está exibindo no momento é exibida na parte superior da Console do Oracle Cloud Infrastructure. Você também pode usar a Console para encontrar outras regiões às quais tem acesso.
  5. Na seção compartimento do arquivo env-vars, informe o OCID do compartimento no qual você deseja criar os componentes de infraestrutura. Certifique-se de que o usuário especificado anteriormente pertença a um grupo que tenha as permissões necessárias para o compartimento especificado aqui. Para localizar o OCID de compartimento, vá para a Console do Oracle Cloud Infrastructure. Clique em Identidade e, em seguida, clique em Compartimentos. A lista de compartimentos é exibida, junto com o OCID do compartimento. Clique em Copiar abaixo do nome do compartimento para copiar o OCID do compartimento necessário. Cole esse valor no arquivo env-vars.
  6. Na seção de chaves públicas/privadas do arquivo env-vars, para os hosts do bastion e outras instâncias, informe o caminho completo e o nome do arquivo das chaves públicas e privadas SSH apropriadas em seu sistema local. A chave privada deve estar no formato openssh.
  7. Verifique se você informou todos os valores corretamente. Se você omitiu um valor, será solicitado a inserir ao executar o Terraform. Se você tiver informado valores incorretos, o Terraform apresentará erros. Quando estiver satisfeito com que todos os valores estejam corretos, salve e feche o arquivo env-vars.
  8. Para definir as variáveis de ambiente especificadas no arquivo env-vars, abra um terminal e navegue até o diretório em que os módulos Terraform estão localizados. Digite: source ./env-vars

Verifique a Configuração do Terraform

Depois de definir todas as variáveis de ambiente necessárias, verifique se você está pronto para executar o Terraform.

  • Em um terminal, navegue até o diretório no qual os módulos Terraform estão localizados. Digite: terraform plan
    A saída deste comando mostra o plano de execução de todas as configurações em todos os módulos no diretório atual. Esta saída descreve as ações que o Terraform levará para alterar a infraestrutura atual para corresponder às configurações. Quando nenhum componente tiver sido criado no momento, a saída mostrará a lista de componentes que serão criados quando você executar terraform apply. Este comando não cria nenhum componente e é seguro para ser executado se você quiser verificar se sua configuração foi bem-sucedida e se todos os valores de autenticação necessários foram armazenados corretamente nas variáveis de ambiente apropriadas.