Stations de travail en ligne OnWorks Linux et Windows

Logo

Hébergement gratuit en ligne pour les postes de travail

<Précédent | Table des matières | Suivant>

10.2.3. États salins et autres fonctionnalités‌


Bien que l'exécution à distance soit un élément important, ce n'est qu'une infime fraction de ce que SaltStack peut faire.

Lors de la configuration d'une nouvelle machine, vous exécutez souvent de nombreuses commandes et tests pour déterminer les détails du système avant l'installation. Ces opérations peuvent être formalisées dans des modèles de configuration réutilisables appelés fichiers d'état. Les opérations décrites dans les fichiers d'état peuvent alors être effectuées avec un seul état.appliquer commande sel.

Pour gagner du temps, vous pouvez vous appuyer sur de nombreux fichiers d'état prêts à l'emploi qui ont été créés par la communauté et qui sont distribués dans des « formules Salt » :

https://docs.saltstack.com/en/latest/topics/development/conventions/formulas. html

De nombreuses autres fonctionnalités peuvent être combinées :

• Exécution planifiée des actions

• Définir des actions en réponse à des événements déclenchés par des serviteurs

• Collecte de données sur les sbires

• Orchestration d'une séquence d'opérations sur plusieurs serviteurs

• Application d'états via SSH sans installer le service salt-minion

• Provisionner les systèmes sur les infrastructures cloud et les mettre sous gestion

• Et plus

SaltStack est assez vaste et nous ne pouvons pas couvrir toutes les fonctionnalités ici. En fait, il existe des livres entièrement dédiés à SaltStack et la documentation en ligne est également très complète. Consultez-le si vous souhaitez en savoir plus sur ses fonctionnalités :

https://docs.saltstack.com/en/latest/

Si vous gérez un nombre important de machines, vous feriez bien d'en savoir plus sur SaltStack car vous pouvez gagner un temps considérable lors du déploiement de nouvelles machines et vous serez en mesure de maintenir une configuration cohérente sur l'ensemble de votre réseau.

Pour vous donner un avant-goût de ce à quoi cela ressemble de travailler avec des fichiers d'état, nous aborderons un exemple simple : comment activer le référentiel APT et installer un package que vous créez dans la section 10.3.3, « Créer un référentiel de packages pour APT » [page 269] et section 10.3.2, « Création de packages de configuration» [page 263]. Vous enregistrerez également une clé SSH dans le compte root afin de pouvoir vous connecter à distance en cas de problème.

Par défaut, les fichiers d'état sont stockés dans /srv/sel sur le maître ; ce sont des fichiers structurés YAML avec un .sls extension. Tout comme pour exécuter des commandes, l'application d'un état repose sur de nombreux modules d'état :

https://docs.saltstack.com/en/latest/topics/tutorials/starting_states.html

https://docs.saltstack.com/en/latest/ref/states/all/

Votre /srv/salt/offsec.sls file appellera trois de ces modules :


offsec_repository : pkgrepo.managed :

- nom : deb http://pkgrepo.offsec.com offsec-internal main

- fichier : /etc/apt/sources.list.d/offsec.list

- key_url : salt://offsec-apt-key.asc

- require_in :

- pkg : valeurs par défaut offsec


offsec-defaults : pkg.installed


ssh_key_for_root : ssh_auth.present :

- utilisateur : root

- nom : ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali

offsec_repository : pkgrepo.managed :

- nom : deb http://pkgrepo.offsec.com offsec-internal main

- fichier : /etc/apt/sources.list.d/offsec.list

- key_url : salt://offsec-apt-key.asc

- require_in :

- pkg : valeurs par défaut offsec


offsec-defaults : pkg.installed


ssh_key_for_root : ssh_auth.present :

- utilisateur : root

- nom : ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali


L'exposition offsec_repository l'État s'appuie sur le pkgrepo module d'état. L'exemple utilise le gérés

fonction dans ce module d'état pour enregistrer un référentiel de packages. Avec le URL_clé attribut, vous

faites savoir à salt que la clé GPG (armure ASCII) requise pour vérifier la signature du référentiel peut être récupérée à partir de /srv/salt/offsec-apt-key.asc sur le maître du sel. Les exiger_dans L'attribut garantit que cet état est traité avant le offsec-par défaut, puisque ce dernier a besoin du référentiel correctement configuré pour pouvoir installer le package.

L'exposition offsec-par défaut state installe le package du même nom. Cela montre que le nom de la clé est souvent une valeur importante pour les états, bien qu'il puisse toujours être remplacé par un nom attribut (comme pour l'ancien état). Pour des cas simples comme celui-ci, c'est à la fois lisible et concis.

Le dernier état (ssh_key_for_root) ajoute la clé SSH donnée dans le nom attribuer à /root/.ssh/authorized_keys (l'utilisateur cible est défini dans le utilisateur attribut). Notez que nous avons raccourci la clé ici pour plus de lisibilité, mais vous devez mettre la clé complète dans l'attribut name.

Ce fichier d'état peut ensuite être appliqué à un minion donné :


serveur# sel kali-scratch state.apply offsec

kali-scratch :

----------

ID : offsec_repository Fonction : pkgrepo.managed

Nom : deb http://pkgrepo.offsec.com offsec-internal main Résultat : True

Commentaire : Repo de package configuré 'deb http://pkgrepo.offsec.com offsec-internal

principale'

Commencé: 06:00:15.767794

Durée : 4707.35 ms Modifications :

----------

dépôt :

deb http://pkgrepo.offsec.com offsec-interne principal

----------

ID : offsec-defaults Fonction : pkg.installed

Résultat : vrai

Commentaire : Les packages suivants ont été installés/mis à jour : offsec-defaults Démarré : 06:00:21.325184

Durée : 19246.041 ms Modifications :

----------

offsec-defaults :

----------

Nouveau:

1.0

vieille:

----------

ID : ssh_key_for_root Fonction : ssh_auth.present

serveur# sel kali-scratch state.apply offsec

kali-scratch :

----------

ID : offsec_repository Fonction : pkgrepo.managed

Nom : deb http://pkgrepo.offsec.com offsec-internal main Résultat : True

Commentaire : Repo de package configuré 'deb http://pkgrepo.offsec.com offsec-internal

principale'

Commencé: 06:00:15.767794

Durée : 4707.35 ms Modifications :

----------

dépôt :

deb http://pkgrepo.offsec.com offsec-interne principal

----------

ID : offsec-defaults Fonction : pkg.installed

Résultat : vrai

Commentaire : Les packages suivants ont été installés/mis à jour : offsec-defaults Démarré : 06:00:21.325184

Durée : 19246.041 ms Modifications :

----------

offsec-defaults :

----------

Nouveau:

1.0

vieille:

----------

ID : ssh_key_for_root Fonction : ssh_auth.present


Nom : ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali Résultat : Vrai

Commentaire : La clé d'hôte autorisée AAAAB3NzaC1yc2...89C4N pour l'utilisateur root a été ajoutée. Démarré : 06:00:40.582539

Durée : 62.103 ms Modifications :

---------- AAAAB3NzaC1yc2...89C4N:

New


Résumé pour kali-scratch

------------

Réussi : 3 (modifié=3)

Échoué: 0

------------

Nombre total d'états exécutés : 3

Temps d'exécution total : 24.015 s

Nom : ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali Résultat : Vrai

Commentaire : La clé d'hôte autorisée AAAAB3NzaC1yc2...89C4N pour l'utilisateur root a été ajoutée. Démarré : 06:00:40.582539

Durée : 62.103 ms Modifications :

---------- AAAAB3NzaC1yc2...89C4N:

New


Résumé pour kali-scratch

------------

Réussi : 3 (modifié=3)

Échoué: 0

------------

Nombre total d'états exécutés : 3

Temps d'exécution total : 24.015 s


Il peut également être associé de façon permanente au serviteur en l'enregistrant dans le /srv/sel/top.sls

fichier, qui est utilisé par le état.haut état commande pour appliquer tous les états pertinents en une seule passe :


serveur# chat /srv/sel/top.sls

base:

kali-scratch :

- hors-sec

serveur# sel kali-scratch state.highstate

kali-scratch :

----------

ID : offsec_repository Fonction : pkgrepo.managed

Nom : deb http://pkgrepo.offsec.com offsec-internal main Résultat : True

Commentaire : repo de package 'deb http://pkgrepo.offsec.com offsec-internal main' déjà

configuré Commencé : 06:06:20.650053

Durée : 62.805 ms Modifications :

----------

ID : offsec-defaults Fonction : pkg.installed

Résultat : vrai

Commentaire : Le package offsec-defaults est déjà installé. Démarré : 06 : 06 : 21.436193

Durée : 385.092 ms Modifications :

----------

ID : ssh_key_for_root

serveur# chat /srv/sel/top.sls

base:

kali-scratch :

- hors-sec

serveur# sel kali-scratch state.highstate

kali-scratch :

----------

ID : offsec_repository Fonction : pkgrepo.managed

Nom : deb http://pkgrepo.offsec.com offsec-internal main Résultat : True

Commentaire : repo de package 'deb http://pkgrepo.offsec.com offsec-internal main' déjà

configuré Commencé : 06:06:20.650053

Durée : 62.805 ms Modifications :

----------

ID : offsec-defaults Fonction : pkg.installed

Résultat : vrai

Commentaire : Le package offsec-defaults est déjà installé. Démarré : 06 : 06 : 21.436193

Durée : 385.092 ms Modifications :

----------

ID : ssh_key_for_root


Fonction : ssh_auth.present

Nom : ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali Résultat : Vrai

Commentaire : La clé hôte autorisée AAAAB3NzaC1yc2...89C4N est déjà présente pour

utilisateur root

Commencé: 06:06:21.821811

Durée : 1.936 ms Modifications :


Résumé pour kali-scratch

------------

Réussi : 3

Échoué: 0

------------

Nombre total d'états exécutés : 3

Temps d'exécution total : 449.833 XNUMX ms

Fonction : ssh_auth.present

Nom : ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali Résultat : Vrai

Commentaire : La clé hôte autorisée AAAAB3NzaC1yc2...89C4N est déjà présente pour

utilisateur root

Commencé: 06:06:21.821811

Durée : 1.936 ms Modifications :


Résumé pour kali-scratch

------------

Réussi : 3

Échoué: 0

------------

Nombre total d'états exécutés : 3

Temps d'exécution total : 449.833 XNUMX ms


Meilleur système d'exploitation Cloud Computing chez OnWorks :