[INFO] Créer le dépôt

This commit is contained in:
2022-10-21 17:46:00 +02:00
parent aa882a7951
commit 120f7aa01f
7 changed files with 168 additions and 2 deletions

28
tasks/configuration.yml Normal file
View File

@@ -0,0 +1,28 @@
---
# tasks file for drone_cli
- name: Récupérer les informations
ansible.builtin.command:
cmd: drone {{ item.type }} info {{ item.target }} {{ item.name }}
environment:
DRONE_SERVER: "{{ drone_cli_server_url }}"
DRONE_TOKEN: "{{ drone_cli_server_token }}"
register: info
changed_when: info.rc != 0
diff: false
- name: Déterminer qu'il faut mettre à jour
ansible.builtin.set_fact:
cmd_action: update
when:
- info.rc == 0
- item.type in cmd_updatable
- name: Exécuter les commandes
ansible.builtin.command:
cmd: drone {{ item.type }} {{ cmd_action }} {{ item.target }} {{ item.name }} {{ item.data }}
environment:
DRONE_SERVER: "{{ drone_cli_server_url }}"
DRONE_TOKEN: "{{ drone_cli_server_token }}"
changed_when: info.rc != 0
diff: false

32
tasks/installation.yml Normal file
View File

@@ -0,0 +1,32 @@
---
# tasks file for drone_cli
- name: Récupérer le contenu du fichier de version
ansible.builtin.uri:
url: "{{ drone_cli_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_cli_architecture) |
map(attribute='browser_download_url')
}}
- name: Extraire le runner
ansible.builtin.unarchive:
src: "{{ browser_download_url | first }}"
dest: /opt/
remote_src: true
list_files: true
mode: u=rwX,g=rX,o=rX
become: true
notify: Installer la commande
- name: Exécuter les handlers
ansible.builtin.meta: flush_handlers

16
tasks/main.yml Normal file
View File

@@ -0,0 +1,16 @@
---
# tasks file for drone_cli
- name: Importer les tâches d'installation
tags: installation
ansible.builtin.import_tasks: installation.yml
- name: Inclure les tâches de configuration
tags: configuration
ansible.builtin.include_tasks: configuration.yml
when:
- drone_cli_server_url | length > 0
- drone_cli_server_token | length > 0
- drone_cli_commands | length > 0
loop: "{{ drone_cli_commands }}"
run_once: true