homeserver/roles/riemers.gitlab-runner/tasks/register-runner-container.yml

115 lines
4.9 KiB
YAML
Raw Normal View History

2021-02-13 14:20:18 +01:00
---
- name: Clear Config File
block:
- name: remove config.toml file
file:
path: "{{ gitlab_runner_config_file }}"
state: absent
- name: Ensure config.toml exists
file:
path: "{{ gitlab_runner_config_file }}"
state: touch
modification_time: preserve
access_time: preserve
when: (verified_runners.container.Output.find("Verifying runner... is removed") != -1)
- name: Register runner to GitLab
docker_container:
name: "{{ gitlab_runner_container_name }}"
image: "{{ gitlab_runner_container_image }}:{{ gitlab_runner_container_tag }}"
command: |
register
--non-interactive
--url '{{ gitlab_runner_coordinator_url }}'
--registration-token '{{ gitlab_runner.token|default(gitlab_runner_registration_token) }}'
--description '{{ gitlab_runner.name|default(ansible_hostname+"-"+gitlab_runner_index|string) }}'
--tag-list '{{ gitlab_runner.tags|default([]) | join(",") }}'
{% if gitlab_runner.clone_url|default(false) %}
--clone-url "{{ gitlab_runner.clone_url }}"
{% endif %}
{% if gitlab_runner.run_untagged|default(true) %}
--run-untagged
{% endif %}
--executor '{{ gitlab_runner.executor|default("shell") }}'
--limit '{{ gitlab_runner.concurrent_specific|default(0) }}'
--output-limit '{{ gitlab_runner.output_limit|default(4096) }}'
--locked='{{ gitlab_runner.locked|default(false) }}'
{% for env_var in gitlab_runner.env_vars|default([]) %}
--env '{{ env_var }}'
{% endfor %}
{% if gitlab_runner.pre_clone_script|default(false) %}
--pre-clone-script "{{ gitlab_runner.pre_clone_script }}"
{% endif %}
{% if gitlab_runner.pre_build_script|default(false) %}
--pre-build-script "{{ gitlab_runner.pre_build_script }}"
{% endif %}
{% if gitlab_runner.post_build_script|default(false) %}
--post-build-script "{{ gitlab_runner.post_build_script }}"
{% endif %}
--docker-image '{{ gitlab_runner.docker_image|default("alpine") }}'
{% if gitlab_runner.docker_privileged|default(false) %}
--docker-privileged
{% endif %}
{% if gitlab_runner.docker_tlsverify|default(false) %}
--docker-tlsverify '{{ gitlab_runner.docker_tlsverify|default("true") }}'
{% endif %}
{% if gitlab_runner.docker_dns|default(false) %}
--docker-dns '{{ gitlab_runner.docker_dns|default("1.1.1.1") }}'
{% endif %}
{% for volume in gitlab_runner.docker_volumes | default([]) %}
--docker-volumes "{{ volume }}"
{% endfor %}
--ssh-user '{{ gitlab_runner.ssh_user|default("") }}'
--ssh-host '{{ gitlab_runner.ssh_host|default("") }}'
--ssh-port '{{ gitlab_runner.ssh_port|default("") }}'
--ssh-password '{{ gitlab_runner.ssh_password|default("") }}'
--ssh-identity-file '{{ gitlab_runner.ssh_identity_file|default("") }}'
{% if gitlab_runner.cache_type is defined %}
--cache-type '{{ gitlab_runner.cache_type }}'
{% endif %}
{% if gitlab_runner.cache_shared|default(false) %}
--cache-shared
{% endif %}
{% if gitlab_runner.cache_path is defined %}
--cache-path '{{ gitlab_runner.cache_path }}'
{% endif %}
{% if gitlab_runner.cache_s3_server_address is defined %}
--cache-s3-server-address '{{ gitlab_runner.cache_s3_server_address }}'
{% if gitlab_runner.cache_s3_access_key is defined %}
--cache-s3-access-key '{{ gitlab_runner.cache_s3_access_key }}'
{% endif %}
{% if gitlab_runner.cache_s3_secret_key is defined %}
--cache-s3-secret-key '{{ gitlab_runner.cache_s3_secret_key }}'
{% endif %}
{% endif %}
{% if gitlab_runner.cache_s3_bucket_name is defined %}
--cache-s3-bucket-name '{{ gitlab_runner.cache_s3_bucket_name }}'
{% endif %}
{% if gitlab_runner.cache_s3_bucket_location is defined %}
--cache-s3-bucket-location '{{ gitlab_runner.cache_s3_bucket_location }}'
{% endif %}
{% if gitlab_runner.builds_dir|default(false) %}
--builds-dir '{{ gitlab_runner.builds_dir }}'
{% endif %}
{% if gitlab_runner.cache_dir|default(false) %}
--cache-dir '{{ gitlab_runner.cache_dir }}'
{% endif %}
{% if gitlab_runner.cache_s3_insecure|default(false) %}
--cache-s3-insecure
{% endif %}
{% if gitlab_runner.extra_registration_option is defined %}
{{ gitlab_runner.extra_registration_option }}
{% endif %}
mounts:
- type: bind
source: "/srv/{{ gitlab_runner_container_name }}"
target: /etc/gitlab-runner
cleanup: yes
auto_remove: yes
when: (verified_runners.container.Output.find("Verifying runner... is removed") != -1) or
((configured_runners.container.Output.find('\n' + gitlab_runner.name|default(ansible_hostname+'-'+gitlab_runner_index|string)) == -1) and
(gitlab_runner.state|default('present') == 'present'))
no_log: false