[INFO] Création du rôle

This commit is contained in:
2022-10-17 13:06:34 +02:00
parent c72627538b
commit fe0ce8f986
10 changed files with 429 additions and 4 deletions

69
tasks/configuration.yml Normal file
View File

@@ -0,0 +1,69 @@
---
# tasks file for drone_runner_exec
- name: Créer le dossier de configuration
ansible.builtin.file:
state: directory
path: "{{ drone_runner_exec_config_base_path }}"
owner: "{{ drone_runner_exec_user }}"
group: "{{ drone_runner_exec_user }}"
mode: u=rwX,g=rX,o=rX
become: true
- name: Créer le dossier de journalisation
ansible.builtin.file:
state: directory
path: /var/log/drone-runner-exec
owner: "{{ drone_runner_exec_user }}"
group: "{{ drone_runner_exec_user }}"
mode: u=rwX,g=rX,o=rX
become: true
- name: Configurer le runner
ansible.builtin.template:
src: config.j2
dest: "{{ drone_runner_exec_config_base_path }}/config"
owner: "{{ drone_runner_exec_user }}"
group: "{{ drone_runner_exec_user }}"
mode: u=rwX,g=rX,o=rX
become: true
notify: Redémarrer drone-runner-exec.service
- name: Récupérer les faits sur les services
ansible.builtin.service_facts:
- name: Installer drone-runner.service
ansible.builtin.command:
cmd: >-
/opt/drone-runner-exec/drone-runner-exec service install
--config="{{ drone_runner_exec_config_base_path }}/config"
when: "'drone-runner-exec.service' not in ansible_facts.services"
become: true
notify: Redémarrer drone-runner-exec.service
- name: Créer le dossier de surcharge du service
ansible.builtin.file:
state: directory
path: /etc/systemd/system/drone-runner-exec.service.d
mode: u=rwX,g=rX,o=rX
become: true
- name: Définir l'utilisateur du service
ansible.builtin.template:
src: override.conf.j2
dest: /etc/systemd/system/drone-runner-exec.service.d/override.conf
owner: root
group: root
mode: u=rwX,g=rX,o=rX
become: true
notify: Redémarrer drone-runner-exec.service
- name: Déployer le script permettant d'exécuter un pipeline depuis une autre
ansible.builtin.copy:
src: drone-downstream.bash
dest: /opt/drone-runner-exec/drone-downstream.bash
owner: root
group: root
mode: u=rwx,g=rx,o=rx
become: true
diff: false

46
tasks/installation.yml Normal file
View File

@@ -0,0 +1,46 @@
---
# tasks file for drone_runner_exec
- name: Installer les prérequis
ansible.builtin.package:
name: "{{ item }}"
become: true
loop: "{{ drone_runner_exec_prerequisites }}"
- name: Créer le dossier dédié
ansible.builtin.file:
path: /opt/drone-runner-exec
state: directory
owner: root
group: root
mode: u=rwX,g=rX,o=rX
become: true
- name: Récupérer le contenu du fichier de version
ansible.builtin.uri:
url: "{{ drone_runner_exec_url }}"
return_content: true
follow_redirects: all
register: releases
- name: Extraire l'URL du paquet
ansible.builtin.set_fact:
browser_download_url: >
{{
releases.json.assets |
selectattr('browser_download_url', 'search', 'linux') |
selectattr('browser_download_url', 'search', drone_runner_exec_architecture) |
map(attribute='browser_download_url')
}}
- name: Extraire le runner
ansible.builtin.unarchive:
src: "{{ browser_download_url | first }}"
dest: /opt/drone-runner-exec
remote_src: true
list_files: true
owner: root
group: root
mode: u=rwX,g=rX,o=rX
become: true
notify: Redémarrer drone-runner-exec.service

10
tasks/main.yml Normal file
View File

@@ -0,0 +1,10 @@
---
# tasks file for drone_runner_exec
- name: Importer les tâches d'installation
tags: installation
ansible.builtin.import_tasks: installation.yml
- name: Importer les tâches de configuration
tags: configuration
ansible.builtin.import_tasks: configuration.yml