4 KiB
Les types des variables
Une variable a un type.
Ce type permet de définir les valeurs acceptées par cette variable.
Les types de base
| valeur | Commentaires | Exemples |
|---|---|---|
| string | chaine de caractère (type par défaut) | test "1" "true" |
| number | un nombre | 1 |
| float | un chiffre flottant | 1.2 |
| boolean | Un booléen, si aucune valeur n'est défini la valeur par défaut de cette variable sera "true", la variable sera également obligatoire par défaut | true false |
| secret | un secret (comme un mot de passe, une clef privée, ...) | hO_'hi |
| une adresse mail | test@rougail.example | |
| filename | nom de fichier au sens Unix | /etc/passwd |
| date | une date au format "%Y-%m-%d" | 2021-01-30 |
| unix_user | nom d'utilisateur au sens Unix | test |
| ip | n'importe quelle adresse IPv4 | 1.2.3.4 |
| cidr | n'importe quelle adresse IPv4 au format CIDR | 1.2.3.4/24 |
| local_ip | adresse IPv4 sur un réseau local, si l'adresse IPv4 n'est pas local, un warning sera afficher mais la valeur sera accepté tout de même | 192.168.1.1 |
| netmask | masque d'une adresse IPv4 | 255.255.255.0 |
| network | adresse réseau | 192.168.1.0 |
| network_cidr | adresse réseau au format CIDR | 192.168.1.0/24 |
| broadcast | adresse de diffusion | 255.255.255.255 |
| netbios | nom netbios | machine |
| domainname | nom de domaine | rougail.example |
| hostname | nom d'hôte | machine |
| web_address | adresse web | http://rougail.example |
| port | port | 8080 |
| mac | adresse MAC | 11:11:11:11:11:11 |
| unix_permissions | droit d'accès au fichier, répertoire, ... | 644 |
Une variable à choix
Il est possible d'imposer une liste de valeur pour une variable particulière :
---
version: '1.0'
my_variable:
type: choice
choices:
- val1
- val2
- val3
Dans ce cas, seules les valeurs proposées sont possibles pour cette variable. Cette variable n'est pas obligatoire donc il est possible de mettre la valeur "None".
Si la variable est obligatoire ou si une valeur est précisée (la variable passe obligatoire) alors la valeur "None" n'est plus autorisé :
---
version: '1.0'
my_variable:
type: choice
choices:
- val1
- val2
- val3
default: val1
Une variable à choix est typée :
Les choix sont typés :
---
version: '1.0'
my_variable:
type: choice
choices:
- val1
- 3
- true
default: val1
dans ce cas, le chiffre 3 est autorisé mais pas la chaine de caractère "3".
Redéfinir une option à choix
Si on veut supprimer un choix ou redéfinir complètement la liste, il faut redéfinir cette variable et ajouter l'attribut "remove_choice" à "True" :
---
version: '1.0'
my_variable:
redefine: true
choices:
- val1
- val2
Dans ce cas toutes les anciens choix ne seront plus possible. Seuls les nouveaux le seront.
Un variable à choix provenant de variable
Les choix d'une variable peuvent provenir d'une autre variable multiple :
---
version: '1.0'
source_variable:
multi: true
default:
- val1
- val2
my_variable:
type: choice
choices:
type: variable
variable: rougail.source_variable
Ou de plusieurs autres variables :
---
version: '1.0'
source_variable_1:
default: val1
source_variable_2:
default: val2
my_variable:
type: choice
choices:
- type: variable
variable: rougail.source_variable_1
- type: variable
variable: rougail.source_variable_2
Dans ce cas, toutes les valeurs de la variable ou des variables seront des choix utilisables par l'utilisateur.
Un variable à choix provenant d'une fonction jinja
Faisons d'abord une fonction trange dans le fichier functions.py :
def trange(min, max):
return range(min, ma
On va récupérer ici les valeurs de 0 à 9 :
---
version: '1.0'
my_variable:
type: choice
default: 9
choices:
type: jinja
jinja: |+
{% for item in trange(0, 10) %}
{{ item }}
{%- endfor %}
return_type: number