Projet

Général

Profil

Saltstack » Historique » Version 8

Version 7 (Bruno Boiget, 06/12/2016 18:02) → Version 8/9 (Lohysia MOUETTE, 01/02/2017 11:55)

h1. Saltstack

h2. Personnalisation de recettes

h3. Inclusion

Pour utiliser une recette existante dans une recette:

<pre>
include:
- action.recette1 recette1
- action.recette2 recette2
</pre>



h3. Pré-requis

Pour forcer l'exécution d'une recette avant une autre :

<pre>
include:
- recette

mkdir:
file.directory:
- name: /tmp/stuff/subdir
- user: eole
- group: adm
- file_mode: 744
- dir_mode: 755
- require:
- sls: recette
</pre>

h3. héritage

recette 'eole' (/srv/salt/eole.sls) :

<pre>
eole:
file.directory:
- name: /tmp/stuff/substuf
- user: eole
- group: adm
- file_mode: 744
- dir_mode: 755
</pre>

extension (/srv/salt/local.sls) :

<pre>
include:
- eole

extend:
eole:
file.directory:
- makedirs: True
</pre>

L'appel à la première recette échoue si le répertoire /tmp/stuff n'existe pas :

salt 'local' state.sls eole

La recette étendue le crée automatiquement



h2. Solutions possibles

h3. gestion par eole

Les recettes EOLE seront dans le répertoire :

<pre>
/usr/share/eole/sls/eole/
</pre>

Les utilisateurs auront la possibilité de redéfinir une recette en créant un fichier dans :

<pre>
/usr/share/eole/sls/
</pre>

La recette devra avoir le même nom que la recette "EOLE".

Dans cette recette, les utilisateurs pourront redéfinir la recette d'origine de la manière suivante :

dans /usr/share/eole/sls/mkdir.sls

<pre>
include:
- eole/mkdir

extend:
mkdir:
file.directory:
- user: eole
</pre>

Les recettes seront copiés au reconfigure dans le répertoire /srv/salt.

S'il y a des recettes personnalisés, la recette EOLE est copiée dans /srv/salt/eole.

h3. application de plusieurs fichiers state avec state.apply

fichier *mkdir_eole.sls*
<pre>
mkdir:
file.directory:
- name: /tmp/stuff/subdir
- user: eole
- group: adm
- file_mode: 744
- dir_mode: 755

titi:
file.directory:
- name: /tmp/titi
- user: eole
- group: root
- file_mode: 744
- dir_mode: 755
</pre>

fichier *mkdir_local.sls*
<pre>
include:
- mkdir_eole

extend:
mkdir:
file.directory:
- name: /tmp/pouet2
</pre>

*exécution*

<pre>
oot@eolebase:/srv/salt# salt '*' state.apply "mkdir_*"
local:
----------
ID: mkdir
Function: file.directory
Name: /tmp/pouet2
Result: True
Comment: Directory /tmp/pouet2 updated
Started: 17:51:19.335846
Duration: 9.165 ms
Changes:
----------
/tmp/pouet2:
New Dir
----------
ID: titi
Function: file.directory
Name: /tmp/titi
Result: True
Comment: Directory /tmp/titi updated
Started: 17:51:19.345197
Duration: 1.412 ms
Changes:
----------
/tmp/titi:
New Dir

Summary for local
------------
Succeeded: 2 (changed=2)

</pre>

* lancement d'une recette avec l'environnement correspondant

<pre>
salt 'local' state.sls schedule.manage saltenv=ead
</pre>