Question Puppet File Source peut-il provenir d’un service Web?


Existe-t-il un moyen (simple) d’utiliser un fichier disponible sur Internet pour la propriété Source d’un fichier?

par exemple:

file { "/home/text.txt":
  source => [
    "http://www.example.com/text.txt",
  ]
}

9
2017-10-27 14:15


origine


Si vous valorisez l'intégrité de vos serveurs, utilisez au moins https. Et utilisez un domaine plus digne de confiance, car vous ne savez pas qui pourrait contrôler celui-là ... hum ... Il devient de plus en plus trouble à partir d'ici. - mc0e


Réponses:


J'écris une réponse mise à jour pour informer les futurs lecteurs que la ressource File implémente bien la source HTTP.

De les docs:

la source

Un fichier source, qui sera copié sur le système local. Cet attribut est mutuellement exclusif avec le contenu et la cible. Les valeurs autorisées sont:

  • puppet: les URI, qui pointent vers des fichiers de modules ou des points de montage du serveur de fichiers de Puppet.
  • Chemins d'accès complets aux fichiers disponibles localement (y compris les fichiers sur des partages NFS ou des lecteurs mappés Windows).
  • file: les URI, qui se comportent comme les chemins de fichiers locaux.
  • http: URI, qui pointent vers des fichiers servis par des serveurs Web courants

Vous pouvez donc utiliser la construction telle que vous l'avez écrite:

file { "/home/text.txt":
  source => "http://www.example.com/text.txt",
}

2
2017-10-27 09:45



à partir de la version 4.4.0 de Puppet (via ticket tickets.puppetlabs.com/browse/PUP-1072) - KJH


C'était demandé comme fonctionnalité pendant des années ... Mais vous auriez besoin d'une fonction personnalisée pour cela ... ou pour utiliser curl ou wget. Voir Forge de marionnettes.

Qu'y a-t-il dans text.txt?


4
2017-10-27 14:20



txt.txt n'est qu'un exemple. En fait, je souhaite l'utiliser pour extraire des clients Freeradius d'un système d'administration. - gunwin


Ce n'est pas possible hors de la boîte pour le moment:

la source:

...

Les schémas d'URI disponibles sont marionnette et fichier. Les URI de marionnettes   récupérer des fichiers du serveur de fichiers intégré de Puppet

J'ai fini par utiliser define J'ai trouvé sur internet:

define remote_file($remote_location=undef, $mode='0644'){
  exec{ "retrieve_${title}":
    command => "/usr/bin/wget -q ${remote_location} -O ${title}",
    creates => $title,
  }

  file{$title:
    mode    => $mode,
    require => Exec["retrieve_${title}"],
  }
}

remote_file{'/home/text.txt':
  remote_location => 'http://www.example.com/text.txt'
}

3
2017-10-27 14:34