You can sign up for a free GitLab CE account and try it out. Here's what I found:
Docker Images and Registry
GitLab CE comes with a Package Registry (Maven
, NuGet
, PyPi
, etc.) and Container Registry (for Docker
images). However, I don't think GitLab will provide free storage for your packages. The benefit is full integration in your CI/CD pipeline. You'll need to host your own server, as described in How to Build Docker Images and Host a Docker Image Repository with GitLab. The official docs are at GitLab Container Registry.
Once you've setup your Docker
images/registry, you can configure GitLab CE to run various jobs in Docker containers. It's as easy as specifying the name of the image in an image
field in gitlab-ci.yml
. The images will run on an application called a Runner
on a VM or bare metal. You can setup your own Runners
in AWS
/GCP
/Azure
or even on your own laptop, but GitLab CE also provides 2000 free pipeline-minutes per month hosted on GCP
. Instructions for setting up GitLab Runners can be found at https://docs.gitlab.com/runner/.
Ansible Integration
Once you get your docker images/registry and runners set up, you can store the Ansible binaries and dependencies in the docker images. You can execute the playbooks from the script
section of a job defined in gitlab-ci.yml
. Using Ansible and GitLab a Infrastructure-for-Code. You can read some great tutorials here and here.