Forum général.général SaltStack : pb avec les modules.

Posté par . Licence CC by-sa
Tags :
1
20
mai
2015

Bonjour,

Dans le cadre d'un stage, on m'a demandé de choisir entre différents logiciel d'automatisation comme Puppet, Chef, CFEngine, Ansible, SaltStack …

J'ai commencé à regarder SaltStack (notamment par se que il est écrit en python), mais j'ai du mal à comprendre la notion de « module ».

Ces modules sont un ensemble de fichier de configuration permettent de déployer un paquet, par exemple Apache ou owncloud ou même openstack.

Mais ce que je n'ai pas compris c'est comment décrire la configuration que l'on veut de ce paquet ?
Visiblement, c'est avec un fichier pillar mais j'avoue que là je suis perdu…

Si quelqu'un connaît SalStack et pourrait rapidement m'expliquer … ca m’arrangerais beaucoup !

Merci par avance.

  • # Pas un pillar…

    Posté par (page perso) . Évalué à 3.

    Les fichiers pillar ne sont là que pour contenir des données que tu ne veux pas mettre dans tes formules (genre le nom de la communauté snmp que tu vas mettre dans snmpd.conf, ce genre de choses) ou des données qui vont être réutilisées dans différentes formules ou sur lesquelles tu vas boucler.

    {% for login, user in pillar.get('users', {}).items() %}
      {{login}}:
        user.present:
          - home: /home/{{login}}
          - createhome: True
          - fullname: {{user.fullname}}
    {% endfor %}
    

    Tu dois créer des formules, éventuellement en utilisant les données des pillar, et éventuellement en utilisant le langage de template Jinja.

    Pour installer apache, une formule pour Debian serait

    install-apache:
      pkg.installed:
        - name: apache2
    

    Peut-être que la présentation de Salt que j'avais faite pourrait t'être utile : https://slides.fiat-tux.fr/slides_salt/index.html

    It's a fez. I wear a fez now. Fezes are cool !

    • [^] # Re: Pas un pillar…

      Posté par . Évalué à 1.

      Ok merci pour l'explication, mais du coups, je poursuis avec mon exemple apache, comment je peux spécifier à salt que je voudrais que le site soit : unexemple.fr et qu'il soit en ssl ?

      Quand on regarde dans le fichier pillar.exemple du module Apache et surtout dans le code des fichers .sls on voit que l'on peut spécifier le nom du serveur / du site que l'on veut, on peut même activer des modules dont le ssl.

      Mais où indique t on cela ?
      On créer un nouveau fichier se basant sur le fichier (/srv/formulas/apache-formula/apache/vhosts/standard.tmpl)?
      Mais si oui comment lui indique t on qu'il doit utiliser le fichier monsite.tmpl plutôt que standard.tmpl ?

      Merci encore pour l'aide.

      • [^] # Re: Pas un pillar…

        Posté par (page perso) . Évalué à 3.

        Tu copies le fichier pillar.exemple dans ton /srv/pillar (n'oublie pas d'autoriser ton minion à y accéder dans ton /srv/pillar/top/sls) et tu le modifies selon tes besoins. C'est là-dedans que tu vas donner le nom de ton site (l36, ServerName: mysupersite.org, les autres trucs de conf sont pareils, à changer dans les pillars).

        Éventuellement, tu peux effectivement créer un mytemplate.tmpl en pompant standard.tmpl, histoire d'avoir un template moins verbeux et qui correspond mieux à tes besoins.

        Pour lui dire d'utiliser mytemplate.tmpl, regardes ligne 21 de l'exemple de pillar.

        Perso, je n'utilise pas les salt-formulas qui sont sur https://github.com/saltstack-formulas/, je préfère faire mes formules moi-même (ce qui n'empèche absolument pas de s'en inspirer).

        It's a fez. I wear a fez now. Fezes are cool !

        • [^] # Re: Pas un pillar…

          Posté par . Évalué à 1.

          donc si j'ai bien compris, on a :
          /srv/formulas pour l’installation de paquet avec github ou /srv/salt pour nos formules
          et /srv/pillar pour leur conf
          ?

          On a 3 top.sls là, il me semblait qu'il devait y en avoir qu'un (celui de la premier salt).

          Ou alors je suis encore carrément à coté de la plaque!!!

          • [^] # Re: Pas un pillar…

            Posté par (page perso) . Évalué à 3.

            • /srv/salt pour nos formules => oui
            • /srv/pillar pour leur conf => si par conf tu entends données à placer aux bons endroits, oui
            • /srv/formulas pour l’installation de paquet avec github => là je suis pas sûr de ce que tu veux dire. C'est pour utiliser des formules toutes prêtes, qu'on peut récupérer depuis github ou non

            Et oui, trois top.sls. Moi je n'ai que /srv/salt et /srv/pillar donc je n'en ai que deux, mais je pense qu'il est normal que /srv/formulas ait aussi son top.sls.

            It's a fez. I wear a fez now. Fezes are cool !

            • [^] # Re: Pas un pillar…

              Posté par . Évalué à 1. Dernière modification le 21/05/15 à 10:20.

              par exemple (tjs dans le cas de apache):

              /srv/salt:
              {% if grains['os_family']=="Debian" %}
              le nom du paquet est apache est apache2,
              {% if grains['os_family']=="RedHat" %}
              le nom du paquet est apache est httpd,

              et

              /srv/pillar
              (peut importe l'OS aka on a réglé ca dans /srv/salt)
              dans mes machines du groupe dev :
              je veux que un vhost qui écoute sur le port 81, nommé test.exemple.fr
              et un autre sur le port 8080 nommé azerty.fr

              dans mes machines du groupe dev :
              je veux que un vhost qui écoute sur le port 81, nommé monentreprise.fr

              En tout cas merci je commence à comprendre un peu mieux ce schmilblick!!!

              • [^] # Re: Pas un pillar…

                Posté par . Évalué à 1.

                EDITE: heu pour les noms de paquets, je viens de voir que la doc officielle gère ça dans un pillar alors que par exemple il me semble que le apache-formula gére ça. -_-"

                PS: on a un temps minimum pour éditer un message ?

                • [^] # Re: Pas un pillar…

                  Posté par (page perso) . Évalué à 3.

                  PS: on a un temps minimum pour éditer un message ?

                  5 minutes je crois

                  It's a fez. I wear a fez now. Fezes are cool !

        • [^] # Re: Pas un pillar…

          Posté par . Évalué à 1.

          une autre petite question, comment autorise tu un ou pls des minions au pillar ?
          j'ai mis il me prend pas en compte les modification que j'apporte grâce à mon /srv/pillar/top.sls ??

          base :
            '*':
              - apache
          

          ca serait si tout le contenu de mon du pillar qui est dans /srv/pillar/top.sls serait dans /srv/pillar/apache.sls non ?

          • [^] # Re: Pas un pillar…

            Posté par . Évalué à 1.

            oui autosatisfaction récursive!

            non sans dec, ci dessous, ce que j'ai compris,

            En gros vous avez bien la branche
            /srv/salt/
            avec le fichier top.sls qui décrit votre "infrastructure", qui contient par exemple :

                base:
                  '*':
                    - packetdebase
                dev:
                  'web':
                    - apache
            

            Et les dossiers packetdebase et apache qui contient les deux un dossier init.sls dans lequel on gère l’installation des paquets

            et la branche /srv/pillar/ qui contient aussi un fichier top.sls avec une arborescence pour la conf.

            Perso, j'ai bien toute cette structure, la branche pillar fonctionne, pour preuve

            salt '*' pillar.data
            me met bien ma configuration personnelle, avec le bon nom pour le vhost et tout. Cependant je n'ai pas les fichiers de conf correspondant sur le minion.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.