# Tasks et Fact Collectors

## Introduction

Muppy se connecte en **SSH** sur des **Hosts** pour exécuter des **Tasks** et/ou collecter des **Facts**.&#x20;

Les **Tasks**:&#x20;

* permettent d'exécuter des commandes sur les Hosts. Muppy gère 2 types de Tasks:&#x20;
  * **Internal** ; ce sont des fonctions écrites en Python dans des **Scripts** internes à Muppy
  * **Shell Script** ; ce sont des scripts shell écrits directement dans l'interface de Muppy&#x20;
* sont "analysées" et exposées dans l'interface graphique de Muppy qui permet à tous types d'utilisateurs de les lancer ou de les planifier&#x20;
* sont exécutées au travers d'un système de Jobs asynchrones qui trace toutes les exécutions et maintient une main courante de toutes les opérations réalisées par les tâches.&#x20;

Les **Task Internal** sont "Debuggables" et concises; peu de code par rapport aux commandes "shell" d'origine.

Les **Facts** sont des données de configuration nécessaires à l'exécution des **Tasks** collectés en exécutant des tâches particulières les **Fact Collectors**.  Les Fact Collectors sont toujours des "Internal" Tasks.

POSTGRESQL\_INSTALLED\_VERSIONS = \[12,13] est un exemple de **Fact**

Un **Addon Muppy** regroupe un ensemble de **Tasks** ainsi qu'une une Interface Utilisateur spécifique qui permet de les exploiter.

### Exemple de Task "Internal" et de Fact Collector

![Exemple de Tasks et de Fact Collector - Intallation de glances](/files/6pow3u0HzwWSmhipiw0Z)

## Fonctionnalités Muppy relatives aux Tasks

L'objet **Task Run** permet de gérer l'exécution des Tasks.

{% content-ref url="/pages/Vj7fKHrsy3jVh60h4iQI" %}
[Exécution des Tasks (Task Runs)](/guides/muppy-core/tasks-et-fact-collectors/execution-des-tasks-task-runs.md)
{% endcontent-ref %}

Chaque fois qu'un **Script** (ou un **Addon Muppy**) est installé/désinstallé ou que la signature d'une **Task** est modifiée il est nécessaire d'utiliser:&#x20;

{% content-ref url="/pages/hFLTwEAjLnSPHOXPWs4T" %}
[Synchronisation des Tasks et Scripts](/guides/muppy-core/tasks-et-fact-collectors/synchronisation-des-tasks-et-scripts.md)
{% endcontent-ref %}

Les fonctionnalités suivantes permettent d'inspecter les objects liés aux **Tasks**

{% content-ref url="/pages/Cvvp913CysIaruLFjcDV" %}
[Liste des Scripts](/guides/muppy-core/tasks-et-fact-collectors/liste-des-scripts.md)
{% endcontent-ref %}

{% content-ref url="/pages/uAn22oGUDVivQMbHB59G" %}
[Liste des Tasks](/guides/muppy-core/tasks-et-fact-collectors/liste-des-tasks.md)
{% endcontent-ref %}

{% content-ref url="/pages/Mau0GS3Oy4n7qNRkEDrK" %}
[Liste des Fact Definitions](/guides/muppy-core/tasks-et-fact-collectors/liste-des-fact-definitions.md)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.muppy.io/guides/muppy-core/tasks-et-fact-collectors.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
