Personalização de uma arquitetura implementável IBM Cloud para criar sua própria infraestrutura

Este tutorial o orienta na criação de uma arquitetura implementável personalizada com base em uma arquitetura implementável existente no site IBM Cloud® para atender às suas necessidades comerciais. Ao concluir este tutorial, você aprenderá a fazer o download dos arquivos do Terraform, atualizar as variáveis e, em seguida, testar a arquitetura atualizada.

Ao começar com uma arquitetura implementável IBM Cloud, você não precisa se preocupar em criar uma arquitetura de infraestrutura desde o início. É possível obter um início inicial usando uma arquitetura implementável IBM Cloud e configurando-a para atender às suas necessidades específicas.

Imagine que você é um profissional de engenharia de automação de nuvem da Example Corp, uma empresa fictícia. Seu arquiteto de infraestrutura pesquisou o catálogo IBM Cloud e descobriu o Cloud automation for Code Engine, uma arquitetura implementável que atende à maioria dos seus requisitos. No entanto, seu arquiteto de infraestrutura precisa que você faça as seguintes alterações para atender às suas necessidades comerciais:

  • Remova as variáveis indesejadas.
  • Restrinja as regiões do IBM Cloud às regiões de implantação dos EUA.
  • Atualize a arquitetura implementável para fazer referência ao aplicativo de IA da Example Corp.

Este tutorial usa um cenário fictício para ajudar você a aprender e entender algumas das opções de configuração para uma arquitetura implementável. Ele explica como personalizar uma arquitetura implantável para automatizar a implantação de um aplicativo em contêiner em IBM Cloud Code Engine. A imagem do contêiner existente em icr.io/codeengine/helloworld é usada como um aplicativo de exemplo. Ao concluir o tutorial, adapte cada etapa para atender às necessidades de sua organização.

Antes de Iniciar

  1. Para criar uma arquitetura, você deve estar familiarizado com o Terraform.

  2. Verifique se você está usando uma conta pré-paga ou de assinatura indo para Gerenciar > Conta > Configurações da conta no console da IBM Cloud.

  3. Crie um repositório para armazenar sua arquitetura implementável. Para os propósitos deste tutorial, GitHub é usado. Para obter mais informações, consulte Criar um repositório.

  4. Instale um editor de sua escolha, por exemplo, Visual Studio Code.

  5. Verifique se você recebeu as seguintes funções IBM Cloud Identity and Access Management (IAM):

    • Administrador em todos os serviços de gerenciamento de contas IAM, todos os serviços de gerenciamento de contas e todos os serviços habilitados para identidade e acesso.
    • Editor no serviço Catalog Management.
    • Função de acesso ao serviço de gerente para Schematics.
    • Outras funções que são necessárias para recursos específicos em sua arquitetura implementável. A automação da nuvem para Code Engine requer a função de acesso ao serviço Writer, que tem o escopo de todos os recursos do serviço Code Engine.

    Para obter mais informações, consulte Atribuição de acesso a serviços de gerenciamento de contas e Gerenciamento de acesso a recursos.

Fazendo download dos arquivos de arquitetura implementáveis

Para começar, é preciso fazer o download dos arquivos de arquitetura implementáveis Os arquivos incluem um arquivo main.tf que invoca o módulo raiz do Terraform.

  1. No console IBM Cloud, clique em Catalog.

  2. Digite Cloud automation for Code Engine na barra de pesquisa e selecione a arquitetura na lista de resultados da pesquisa.

  3. Selecione v4.2.2 como a versão do produto.

    Este tutorial foi criado com base na versão 4.2.2 do Cloud automation for Code Engine. No entanto, você pode selecionar outra versão da arquitetura implementável, se desejar.

  4. Certifique-se de que a variação New Code Engine apps esteja selecionada.

  5. Clique em Revisar opções de implementação no painel de resumo.

  6. Selecione Trabalhar com código > Fazer download do pacote configurável para fazer download do pacote configurável.

  7. Abra o pacote configurável transferido por download em seu computador local

  8. Extraia o pacote .tar.gz para acessar e editar os arquivos em uma pasta. Renomeou a pasta extraída Example-corp-infrastructure para facilitar a localização e o uso.

    Depois de fazer download e extrair o pacote configurável com sucesso, você verá os seguintes arquivos e pastas:

    • automation folder
    • ibm_catalog.json
    • main.tf
    • outputs.tf
    • provider.tf
    • README.md
    • variables.tf
    • version.tf

Editando sua lista de variáveis

Quando seu arquiteto de infraestrutura pesquisou IBM Cloud Code Engine, ele decidiu modificar a região e a chave de API IBM Cloud. As outras variáveis incluídas na arquitetura não são necessárias para seus objetivos e, portanto, você precisa removê-las usando seu editor favorito Visual Studio Code.

  1. No Visual Studio Code, abra o arquivo variables.tf..

  2. Mova as variáveis a seguir para o início do arquivo variables.tf

    • ibmcloud_api_key
    • prefix
    • existing_resource_group_name
    • region

    A ordem das variáveis não importa.

  3. Exclua todas as outras variáveis e salve o arquivo.

Atualizando o arquivo main.tf

Agora que você atualizou o arquivo variables.tf, certifique-se de que as informações de configuração no arquivo main.tf estejam corretas Como você deseja usar o site Code Engine para executar um aplicativo criado pelo Example Corp, é necessário fornecer informações sobre o aplicativo.

  1. Abra o arquivo main.tf.

  2. Atualize a variável app_name e digite "example-corp-ai-app" como o nome do aplicativo.

  3. Atualize a variável image_reference e insira "icr.io/codeengine/helloworld", que é a imagem do Docker para seu aplicativo.

  4. Adicione a variável project_name e digite "example-corp-ce-project" como o nome do seu projeto Code Engine.

  5. Adicione a variável provider_visibility e defina-a como "public".

  6. Confirme se as variáveis ibmcloud_api_key, prefix e region estão incluídas, conforme mostrado no exemplo a seguir:

    module "deploy-arch-ibm-code-engine" {
      source      = "https://cm.globalcatalog.cloud.ibm.com/api/v1-beta/offering/source/archive//solutions/apps?archive=tgz&catalogID=7a4d68b4-cf8b-40cd-a3d1-f49aff526eb3&flavor=apps&installType=fullstack&kind=terraform&name=deploy-arch-ibm-code-engine&version=v4.2.2"
      ibmcloud_api_key      = var.ibmcloud_api_key
      prefix      = var.prefix
      existing_resource_group_name      = var.existing_resource_group_name
      region      = var.region
      app_name      = "example-corp-ai-app"
      image_reference      = "icr.io/codeengine/helloworld"
      project_name      = "example-corp-ce-project"
      provider_visibility      = "public"
    }
    
  7. Salve o arquivo .

Sua arquitetura agora está codificada para fazer referência ao aplicativo de IA da Example Corp e configurada para usar as variáveis para a chave de API IBM Cloud, o prefixo e a região.

Atualizando o arquivo ibm_catalog.json

O arquivo ibm_catalog.json é um arquivo JSON de manifesto usado para importar automaticamente informações de versão quando você integra uma arquitetura implantável a um catálogo privado. Como você alterou a arquitetura implementável, criou uma arquitetura totalmente nova para suas necessidades. Atualize as seguintes informações no arquivo ibm_catalog.json para refletir suas mudanças.

Para obter mais informações sobre o arquivo manifest e o que ele contém, consulte Localmente editando o manifest do catálogo.

Atualizando as informações do produto

Agora que você atualizou a configuração e criou sua própria arquitetura, também deve atualizar o nome e o nome programático da arquitetura implementável.

  1. Abra o arquivo ibm_catalog.json.

  2. Localize o campo label e atualize o nome de sua arquitetura implementável para o Example Corp's infrastructure

  3. Localize o campo name e atualize o nome programático da arquitetura para deploy-arch-example-corp.

  4. Localize o campo version e insira 0.0.1 para atualizar o número da versão Se o campo estiver faltando, adicione-o em uma nova linha imediatamente após o campo name, por exemplo:

    			"label": "Example Corp's infrastructure",
    			"name": "deploy-arch-example-corp",
    			"version": "0.0.1",
    
  5. Na seção flavors, localize o campo label e atualize o nome dessa variação da sua arquitetura implementável para Deploy Example Corp AI app on IBM Cloud Code Engine. Ao fazer isso, você identifica a finalidade dessa variação da sua arquitetura implementável e o que ela realiza.

  6. Salve o arquivo .

Atualizando as informações de configuração..

Agora, você quer garantir que os usuários da sua arquitetura implantável possam implantá-la somente nas regiões dos EUA. Para isso, atualize as informações de variável na seção de configuração do arquivo ibm_catalog.json.

  1. Na seção configuration do arquivo ibm_catalog.json, localize as seguintes variáveis e mova-as para o início da seção de configuração:

    • ibmcloud_api_key
    • prefix
    • existing_resource_group_name
    • region
  2. Para restringir as regiões a apenas regiões dos EUA, é necessário adicionar cada região como uma opção para a variável region, excluir seções desnecessárias e definir region como uma variável obrigatória.

    {
        "key": "region",
        "type": "string",
        "default_value": "us-south",
        "description": "The region in which to provision all resources created by this solution.",
        "required": true,
        "options": [
            {
                "displayname": "us-east",
                "value": "us-east"
            },
            {
                "displayname": "us-south",
                "value": "us-south"
    
            }
        ],
        "virtual": false
    }
    
  3. Exclua o restante das variáveis na seção de configuração

    Quando os usuários implementam sua arquitetura, eles podem escolher entre as opções de região listadas. Para obter uma lista de regiões disponíveis, consulte Regiões.

  4. Salve o arquivo ibm_catalog.json.

Testando sua arquitetura implementável

Antes de integrar sua arquitetura implantável configurada a um catálogo privado e disponibilizá-la para uso, teste sua configuração para ajudar a garantir que a arquitetura seja executada como pretendido. Para testar sua arquitetura com a linha de comandos do Terraform, conclua as etapas a seguir:

  1. Crie ou atualize um arquivo .netrc que é necessário para usar os módulos do Terraform em IBM Cloud. Para obter mais informações, consulte ibmcloud catalog utility netrc.

    ibmcloud catalog utility netrc
    
  2. Inicialize a CLI do Terraform. Para obter mais informações, consulte Inicializando diretórios de trabalho.

    terraform init
    
  3. Provisionar os recursos Para obter mais informações, consulte Provisioning Infrastructure with Terraform.

    1. Execute o terraform plan para gerar um plano de execução do Terraform para visualizar as ações propostas

      terraform plan
      
    2. Execute terraform apply para criar os recursos definidos no plano.

      terraform apply
      

Próximas etapas

Se sua arquitetura implementável foi executada conforme o esperado, você criou com sucesso sua própria arquitetura implementável a partir do Cloud Automation para Code Engine. Agora você está pronto para mover seus arquivos atualizados para o repositório GitHub que você criou e integrar seu produto a um catálogo privado.

Depois de integrar o Example Corp's infrastructure a um catálogo privado, você pode compartilhá-lo com sua empresa. Se não estiver pronto para compartilhar sua arquitetura implementável ou se não fizer parte de uma empresa, você pode pular esse compartilhamento e continuar no próximo tutorial, implementando o Example Corp's infrastructure usando um projeto.