Roteiro de trabalho
Ao final deste roteiro, o aluno terá construído uma pipeline de integração e entrega contínua básica utilizando o GitLab Runner em um container Docker rodando sobre uma instância EC2 Spot.
Pré requisitos:
- O aluno deve possuir uma conta na AWS
Parte 1 - Criação de Amazon EC2 SPOT
# docker installation
yum update
amazon-linux-extras install docker
yum install docker -y
service docker start
usermod -a -G docker ec2-user
# gitlab runner container creation
docker run -d --name gitlab-runner --restart always \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:latest
# gitlab runner registration
docker run --rm -it -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register \
--non-interactive \
--url https://tools.ages.pucrs.br/ \
--registration-token <gitlab-token> \
--name gitlab-runner \
--locked \
--paused \
--executor docker \
--docker-image docker:dind
# gitlab runner configuration
cat > /srv/gitlab-runner/config/config.toml << EOF
concurrent = 1
check_interval = 0
[session_server]
session_timeout = 1800
[[runners]]
name = "gitlab-runner"
url = "https://tools.ages.pucrs.br"
token = "7Hu-XErZW6f1W_zt21kg"
executor = "docker"
[runners.custom_build_dir]
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]
[runners.cache.azure]
[runners.docker]
tls_verify = false
image = "docker:dind"
privileged = true
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/cache", "/var/run/docker.sock:/var/run/docker.sock"]
shm_size = 0
EOF