---
# System prepended metadata

title: Configuração de Pipelines de Integração Contínua (CI/CD) com GitLab

---

# Configuração de Pipelines de Integração Contínua (CI/CD) com GitLab

* Instalação do Runner
* Registrando um Runner compartilhado
* Configurando uma variável ssh no projeto com sshpass

## Passo 1 - Instalação do Runner

Primeiro vamos fazer o download do reposiório:

`curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash`

Agora instale o runner com os seguintes comandos:

`# sudo yum install gitlab-runner`

Para atualizar execute os seguintes comandos:

```
# sudo yum update
# sudo yum install gitlab-runner
```


## Passo 2 - Registrando um Runner compartilhado

Um runner compartilhado pode ser usado para vários tipos de projetos, ou seja, vários tipos de linguagens. O que diferenciará um projeto do outro serão os passos definidos e as imagens docker que serão usadas no arquivo .gitlab-ci.yml. Abaixo segue os passos para configurarção:

Primeiro vamos registrar um novo runner usando o seguinte comando:

`# gitlab-runner register`

Em seguida você será solicitado a responder uma série de questões para configurar o runner.

### 2.1 Defina a URL do domínio

Para encontrar as informações necessárias para registrar um runner compartilhado, você precisa estar logado com uma conta administrativa.

Vamos clicar na chave inglesa na barra de navegação superior.

![](https://i.imgur.com/LBKe3DB.png)


Logo após vamos acessar o menu lateral na opção Runners onde será aberta a seguinte tela exibindo as informações necessárias para cadastro do domínio e token.

![](https://i.imgur.com/QK3j1fo.png)

```
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):

https://teste.marquesconsult.com.br/
```


### 2.2 Defina o token para o runner

Copie o token, que pode ser encontrado usando os passos anteriores para cadastrar a url, cole no terminal e pressione enter para continuar.

```
Please enter the gitlab-ci token for this runner:

xfyZ6_AUifuC-3-pr3YV
```


### 2.3 Defina o nome do Runner

O próximo passo é onde definimos o nome do runner.

```
Please enter the gitlab-ci description for this runner:

runner-hello-api
```

Continuando agora será solicitado as tags que serão usadas no projeto, ou seja, os estágios que serão executados. Caso seja preciso especificar é só escrever as tags separadas por vírgula.

### 2.4 Defina as tags do projeto

```
Please enter the gitlab-ci tags for this runner (comma separated):

build,test,deploy
```

Esse passo pode ser deixado em branco. Por padrão já vem algumas tags definidas no projeto. São elas:
 - build
 - test
 - deploy

### 2.5 Defina o executor

Aqui é onde será definido o tipo de executor do projeto, no nosso caso estamos usando o docker.

```
Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:

docker
```
### 2.6 Defina a imagem docker a ser usada

Aqui será definida uma imagem docker global que será usada sempre que não for especificada uma imagem no arquivo .gitlab-ci.yml.

```
Please enter the Docker image (eg. ruby:2.6):

alpine:latest
```
## Configurando uma variável ssh no projeto com sshpass

No processo de CD precisamos fazer uma autenticação no servidor em que vamos realizar o deploy usando SSH. Para não deixarmos a senha exposta no script .yml vamos configurar uma variável de ambiente no gitlab. Para isso vamos até Settings > CI/CD > Secret variables

![](https://i.imgur.com/OVGf8QO.png)

Precisamos configurar o nome da variável em ***Key*** e o seu valor, em ***Value***
