Marionnette: Comment puis-je envelopper une commande en deux ligne si >80 caractères?
Dans marionnette, si define command > 80 caractères, comment puis-je regrouper en deux ligne pour le faire?
exec { 'create_domain':
command => "some command exceed 80 character...........................................................how to do how to do?.......",
}
Vous devez vous connecter pour publier un commentaire.
C'est un peu moche, mais si le dernier caractère dans une chaîne de caractères est un '\' suivi par un saut de ligne, alors la chaîne est continue sur la ligne suivante. Mon exemple.pp manifeste est ci-dessous:
L'exécution de ce avec des " marionnettes appliquer l'échantillon.pp' sur une Ubuntu 11.10 avec de Marionnettes 2.7.1 donne le résultat suivant
Et cat le fichier créé montre les lignes ont enveloppé:
Voir https://github.com/puppetlabs/puppet/blob/9fbb36de/lib/puppet/parser/lexer.rb#L537 (comme des Marionnettes v2.7.0)
Aussi c'est un problème connu: http://projects.puppetlabs.com/issues/5022
# lint:ignore:140chars
, comme indiqué dans le puppet-lint.com/controlcommentsComme des Marionnettes 3.5, vous avez quelques options que j'ai utilisé. Ruby permet la concaténation de chaînes de caractères sur plusieurs lignes.
Une autre option, comme des Marionnettes de 3,5 ils ont ajouté HereDoc fonctionnalité. Cela vous permettra de mettre la chaîne dans une section d'un fichier de code source qui est traité comme s'il s'agissait d'un fichier distinct.
La marionnette de la documentation est ici: https://docs.puppet.com/puppet/4.9/lang_data_string.html#heredocs
Pour de grandes quantités de données, heredocs sont le meilleur moyen de traiter avec les longues lignes dans Marionnette se manifeste. Le
/L
interpolation option est particulièrement utile./L
causes\
à la fin d'une ligne à supprimer les retours à la ligne. Par exemple, la suivante est-ce que vous attendez, le décapage de l'indentation et les retours à la ligne, y compris la fuite de saut de ligne.Si vous vous souciez vraiment de la 80cols limite, vous pouvez toujours l'abus d'un modèle à atteindre cet objectif
Ensuite, mettre la commande dans ce fichier de modèle
Des crédits devraient aller à Jan Vansteenkiste à la figure
$module_name
et pas$module
(au moins pour les Marionnettes 3.7).