diff --git a/README.md b/README.md index 36a21cf..b265d7f 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,12 @@ Install and configure a Gitlab runner locked: false ``` +- `gitlab_runner_env_variables` - dict with environment variables + +``` + HTTP_PROXY: https://127.0.0.1:3218 +``` + ## How to use ``` diff --git a/defaults/main.yml b/defaults/main.yml index c79a873..81b4048 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -2,3 +2,4 @@ gitlab_runner_repository: > deb https://packages.gitlab.com/runner/gitlab-runner/debian/ {{ ansible_distribution_release }} main gitlab_runner_runners: [] +gitlab_runner_env_variables: {} diff --git a/handlers/main.yml b/handlers/main.yml new file mode 100644 index 0000000..c9debff --- /dev/null +++ b/handlers/main.yml @@ -0,0 +1,5 @@ +--- +- name: restart gitlab-runner + ansible.builtin.service: + name: gitlab-runner + state: restarted diff --git a/molecule/default/converge.yml b/molecule/default/converge.yml index 8428f49..352b52c 100644 --- a/molecule/default/converge.yml +++ b/molecule/default/converge.yml @@ -4,6 +4,8 @@ roles: - ansible-role-gitlab_runner vars: + gitlab_runner_env_variables: + TEST: toto gitlab_runner_runners: - name: test url: https://gitlab.example.com diff --git a/molecule/default/tests/test_default.py b/molecule/default/tests/test_default.py index 54bbe9e..847de11 100644 --- a/molecule/default/tests/test_default.py +++ b/molecule/default/tests/test_default.py @@ -4,6 +4,15 @@ def test_packages(host): package = host.package('gitlab-runner') assert package.is_installed +def test_env_file(host): + path = host.file('/etc/systemd/system/gitlab-runner.service.d/ansible.conf') + assert path.exists + assert path.is_file + assert path.user == 'root' + assert path.group == 'root' + assert path.mode == 0o644 + assert path.contains('Environment="TEST=toto"') + def test_config_file(host): config = host.file('/etc/gitlab-runner/config.toml') assert config.exists diff --git a/tasks/main.yml b/tasks/main.yml index b98dc53..a9dfcce 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -17,6 +17,25 @@ GITLAB_RUNNER_DISABLE_SKEL: 'true' tags: gitlab-runner +- name: create system directory + ansible.builtin.file: + path: /etc/systemd/system/gitlab-runner.service.d + owner: root + group: root + mode: 0755 + state: directory + tags: gitlab-runner + +- name: add environment variables + ansible.builtin.template: + src: environment.conf.j2 + dest: /etc/systemd/system/gitlab-runner.service.d/ansible.conf + owner: root + group: root + mode: 0644 + notify: restart gitlab-runner + tags: gitlab-runner + - name: register runners gitlab_runner: name: '{{ item.name }}' diff --git a/templates/environment.conf.j2 b/templates/environment.conf.j2 new file mode 100644 index 0000000..121af2f --- /dev/null +++ b/templates/environment.conf.j2 @@ -0,0 +1,6 @@ +# {{ ansible_managed }} + +[Service] +{% for env, value in gitlab_runner_env_variables.items() %} +Environment="{{ env }}={{ value }}" +{% endfor %}