Conexões do GitLab autogerenciado - AWS CodePipeline

Conexões do GitLab autogerenciado

As conexões permitem que você autorize e estabeleça configurações que associem seu provedor de terceiros aos recursos da AWS. Para associar seu repositório de terceiros como origem do pipeline, use uma conexão.

nota

Este atributo não está disponível na região Ásia-Pacífico (Hong Kong), Ásia-Pacífico (Hyderabad), Ásia-Pacífico (Jacarta), Ásia-Pacífico (Melbourne), Ásia-Pacífico (Osaka), África (Cidade do Cabo), Oriente Médio (Bahrein), Oriente Médio (EAU), Europa (Espanha), Europa (Zurique), Israel (Tel Aviv) ou AWS GovCloud (Oeste dos EUA). Para fazer referência a outras ações disponíveis, consulte Integrações de produtos e serviços com o CodePipeline. Para considerações sobre essa ação na região Europa (Milão), consulte a nota em CodeStarSourceConnection para ações gerenciadas do Bitbucket Cloud, do GitHub, do GitHub Enterprise Server, do GitLab.com e do GitLab.

Para adicionar uma ação de origem do GitLab autogerenciado no CodePipeline, é possível optar entre:

nota

É possível criar uma conexão por meio do console do Developer Tools em Configurações. Consulte Criar uma conexão.

Antes de começar

  • Você já deve ter criado uma conta no GitLab e ter o GitLab Enterprise Edition ou o GitLab Community Edition com uma instalação autogerenciada. Consulte mais informações em https://docs.gitlab.com/ee/subscriptions/self_managed/.

    nota

    As conexões fornecem acesso à conta usada para criar e autorizar a conexão.

    nota

    Você pode criar conexões com um repositório em que tenha o perfil de Proprietário no GitLab e, depois, a conexão pode ser usada com recursos como o CodePipeline. Para repositórios em grupos, você não precisa ser o proprietário do grupo.

  • Você já deve ter criado um token de acesso pessoal (PAT) do GitLab somente com a seguinte permissão reduzida: api. Consulte mais informações em https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html. Para criar e utilizar o PAT, é necessário ser administrador.

    nota

    O PAT é usado para autorizar o host e não é armazenado ou usado pelas conexões. Para configurar um host, é possível criar um PAT temporário e, depois de configurar o host, você pode excluir o PAT.

  • É possível optar por configurar o host com antecedência. É possível configurar um host com ou sem uma VPC. Para obter detalhes sobre a configuração da VPC e informações adicionais sobre a criação de um host, consulte Criar um host.

Criar uma conexão com o GitLab autogerenciado (console)

Execute estas etapas para usar o console do CodePipeline para adicionar uma ação de conexões para o repositório do GitLab autogerenciado.

nota

As conexões do GitLab autogerenciado concedem acesso somente a repositórios pertencentes à conta do GitLab autogerenciado usada para criar a conexão.

Antes de começar

Para uma conexão de host com o GitLab autogerenciado, é necessário já ter concluído as etapas de criação de um recurso de host para a conexão. Consulte Gerenciar hosts para conexões.

Etapa 1: Criar ou editar seu pipeline

Para criar ou editar seu pipeline
  1. Faça login no console do CodePipeline.

  2. Escolha uma das seguintes opções.

    • Opte por criar um pipeline. Siga as etapas em Criar um pipeline para concluir a primeira tela e escolha Próximo. Na página Origem, em Provedor de origem, selecione GitLab autogerenciado.

    • Opte por editar um pipeline existente. Escolha Editar e, em seguida, escolha Editar estágio. Escolha adicionar ou editar sua ação de origem. Na página Editar ação, em Nome da ação, insira um nome para a ação. Em Provedor de ação, selecione GitLab autogerenciado.

  3. Execute um destes procedimentos:

    • Em Conexão, se você ainda não criou uma conexão com o provedor, selecione Conectar-se ao GitLab autogerenciado. Acesse a Etapa 2: Criar uma conexão com o GitLab autogerenciado.

    • Em Conexão, se você já tiver criado uma conexão com seu provedor, escolha a conexão. Vá para a Etapa 3: Salvar a ação de origem para sua conexão.

Criar uma conexão com o GitLab autogerenciado

Depois de optar por criar a conexão, a página Conectar ao GitLab autogerenciado é exibida.

Como se conectar ao GitLab autogerenciado
  1. Em Connection name (Nome da conexão), informe um nome para a conexão.

  2. Em URL, insira o endpoint do seu servidor.

    nota

    Se o URL fornecido já tiver sido usado para configurar um host para uma conexão, você será solicitado a escolher o ARN de recurso de host criado anteriormente para esse endpoint.

  3. Se você tiver iniciado o servidor em uma Amazon VPC e quiser se conectar à VPC, selecione Usar uma VPC e preencha as informações da VPC.

  4. Escolha Conectar ao GitLab autogerenciado. A conexão criada é mostrada com um status Pending (Pendente). Um recurso de host é criado para a conexão com as informações do servidor fornecidas. Para o nome do host, o URL é usado.

  5. Selecione Update pending connection (Atualizar conexão pendente).

  6. Se uma página for aberta com uma mensagem de redirecionamento confirmando que você deseja continuar com o provedor, selecione Continuar. Insira a autorização para o provedor.

  7. Uma página Configurar host_name é exibida. Em Fornecer token de acesso pessoal, insira o PAT do GitLab somente com esta permissão restrita: api.

    nota

    Apenas administradores podem criar e utilizar o PAT.

    Escolha Continuar.

    Screenshot do console mostrando a entrada do token de acesso pessoal do GitLab autogerenciado para o novo host
  8. A página de conexão mostra a conexão criada em um status Available (Disponível).

Etapa 3: Salvar a ação de origem do GitLab autogerenciado

Execute estas etapas no assistente ou na página Editar ação para salvar a ação de origem com as informações de conexão.

Para concluir e salvar a ação de origem com a conexão
  1. Em Repository name (Nome do repositório), escolha o nome do repositório de terceiros.

  2. Na seção Gatilhos do pipeline, é possível configurar gatilhos caso a ação seja do CodeConnections. Para definir a configuração de gatilhos do pipeline e, se necessário, aplicar filtros, consulte mais detalhes em Filtrar gatilhos em push de código ou solicitações pull.

  3. Em Output artifact format (Formato de artefato de saída), você deve escolher o formato para seus artefatos.

    • Para armazenar artefatos de saída pela ação do GitLab autogerenciado usando o método padrão, selecione CodePipeline padrão. A ação acessa os arquivos no repositório e armazena os artefatos em um arquivo ZIP no armazenamento de artefatos do pipeline.

    • Para armazenar um arquivo JSON que contém uma referência de URL ao repositório para que as ações downstream possam executar comandos Git diretamente, escolha Full clone (Clone completo). Essa opção só pode ser usada por ações downstream do CodeBuild.

  4. Escolha Próximo no assistente ou Salvar na página Editar ação.

Criar um host e uma conexão com o GitLab autogerenciado (CLI)

É possível usar a AWS Command Line Interface (AWS CLI) para criar uma conexão.

Para fazer isso, use o comando create-connection.

Importante

Uma conexão criada por meio da AWS CLI ou do AWS CloudFormation permanece no status PENDING por padrão. Depois de criar uma conexão com a CLI ou o AWS CloudFormation, use o console para editar a conexão e tornar seu status AVAILABLE.

Você pode usar a AWS Command Line Interface (AWS CLI) para criar um host para conexões instaladas.

Você usa um host para representar o endpoint da infraestrutura em que seu provedor de terceiros está instalado. Após concluir a criação do host com a CLI, o host fica no status Pendente. Então, você configura ou registra o host para movê-lo para o status Disponível. Depois que o host estiver disponível, conclua as etapas para criar uma conexão.

Para fazer isso, use o comando create-host.

Importante

Um host criado por meio da AWS CLI permanece no status Pending por padrão. Após criar um host com a CLI, use o console ou a CLI para configurar o host e tornar seu status Available.

Para criar um host
  1. Abra um terminal (Linux, macOS ou Unix) ou um prompt de comando (Windows). Use a AWS CLI para executar o comando create-host, especificando o --name, o --provider-type e o --provider-endpoint para sua conexão. Neste exemplo, o nome do provedor de terceiros é GitLabSelfManaged e o endpoint é my-instance.dev.

    aws codestar-connections create-host --name MyHost --provider-type GitLabSelfManaged --provider-endpoint "https://my-instance.dev"

    Se o comando for bem-sucedido, ele retornará as informações de nome do recurso da Amazon (ARN) do host semelhantes às mostradas a seguir.

    { "HostArn": "arn:aws:codestar-connections:us-west-2:account_id:host/My-Host-28aef605" }

    Após esta etapa, o host estará no status PENDING.

  2. Use o console para concluir a configuração do host e mova o host para um status Available.

Como criar uma conexão com o GitLab autogerenciado
  1. Abra um terminal (Linux, macOS ou Unix) ou um prompt de comando (Windows). Use a AWS CLI para executar o comando create-connection, especificando o --host-arn e o --connection-name para sua conexão.

    aws codestar-connections create-connection --host-arn arn:aws:codestar-connections:us-west-2:account_id:host/MyHost-234EXAMPLE --connection-name MyConnection

    Se tiver êxito, esse comando gerará as informações do ARN de conexão semelhantes às seguintes.

    { "ConnectionArn": "arn:aws:codestar-connections:us-west-2:account_id:connection/aEXAMPLE-8aad" }
  2. Use o console para configurar a conexão pendente.

  3. O pipeline assume como padrão a detecção de alterações ao enviar o código por push ao repositório de origem da conexão. Para definir a configuração do gatilho do pipeline para liberação manual ou para tags Git, execute um dos seguintes procedimentos:

    • Para definir a configuração do gatilho do pipeline para início somente por meio de liberação manual, adicione a seguinte linha à configuração:

      "DetectChanges": "false",
    • Para definir a configuração de gatilhos do pipeline e aplicar filtros, consulte mais detalhes em Filtrar gatilhos em push de código ou solicitações pull. Por exemplo, o trecho a seguir é adicionado ao nível do pipeline na definição JSON do pipeline. Neste exemplo, release-v0 e release-v1 são as tags Git a serem incluídas, enquanto release-v2 são as tags Git a serem excluídas.

      "triggers": [ { "providerType": "CodeStarSourceConnection", "gitConfiguration": { "sourceActionName": "Source", "push": [ { "tags": { "includes": [ "release-v0", "release-v1" ], "excludes": [ "release-v2" ] } } ] } } ]