--- - name: gitlab-runner | check vars are defined assert: that: - gitlab_domain is defined - gitlab_runner_register_token is defined tags: ['docker_gitlab-runner'] - include_tasks: base.yml tags: ['docker_gitlab-runner'] - name: gitlab-runner | create docker network docker_network: name: 'gitlab-runner' tags: ['docker_gitlab-runner'] - name: gitlab-runner | create docker volumes docker_volume: name: '{{ item }}' with_items: - gitlab-runner-dind__var_lib_docker - gitlab-runner-dind__certs - gitlab-runner__home_gitlab-runner - gitlab-runner__etc_gitlab-runner tags: ['docker_gitlab-runner'] - name: gitlab-runner | register to gitlab uri: url: 'https://{{ gitlab_domain }}/api/v4/runners' method: POST body: token: '{{ gitlab_runner_register_token }}' description: '{{ inventory_hostname }}' status_code: 201 body_format: json register: register_gitlab_runner_register when: - 'gitlab_runner_register_token is defined' tags: ['docker_gitlab-runner'] - name: gitlab-runner | configure config.toml copy: dest: '/var/lib/docker/volumes/gitlab-runner__etc_gitlab-runner/_data/config.toml' mode: '0600' content: | concurrent = {{ (ansible_processor_cores * ansible_processor_count)|int }} check_interval = 0 [session_server] session_timeout = 1800 [[runners]] name = "{{ inventory_hostname }}" url = "https://{{ gitlab_domain }}/" token = "{{ register_gitlab_runner_register.json.token }}" executor = "docker" [runners.docker] host = "tcp://docker:2376/" tls_cert_path = "/certs/client" tls_verify = true image = "debian:stable-slim" privileged = true disable_entrypoint_overwrite = false oom_kill_disable = false disable_cache = false volumes = ["/certs/client", "/var/run/docker.sock:/var/run/docker.sock:rw", "/cache:/cache", "/builds:/builds"] shm_size = 0 pull_policy = ["always", "if-not-present"] notify: 'gitlab-runner-restart' when: - 'gitlab_runner_register_token is defined' - 'register_gitlab_runner_register.json.token is defined' tags: ['docker_gitlab-runner'] - name: gitab-runner | configure cron garbage in dind cron: name: "gitlab_runner_garbage" minute: "50" hour: "*/2" job: "/usr/bin/docker exec docker docker system prune -f; /usr/bin/docker exec docker docker volume prune -f 2>&1 |logger -t gitlab-runner" tags: ['docker_gitlab-runner'] # - name: gitab-runner | purge dind cache # cron: # name: "purge_dind_ci_cache" # minute: "30" # hour: "04" # job: "/usr/bin/docker exec -t docker /usr/bin/find /cache -mindepth 1 -mtime +7 -delete 2>&1 |logger -t gitlab-runner" # tags: ['docker_gitlab-runner']