2017-08-07 22 views
0

avec cuisine Je suis en train de définir un attribut avec une variable d'environnement utilisant plusieurs lignes .kitchen.yml tels que:environnement multi-ligne de la variable de

attributes: 
    foo: 
    ssh: 
     key_private: <%= ENV['CHEF_SSH_KEY_PRIVATE'] %> 

Le multi-ligne CHEF_SSH_KEY_PRIVATE variables ressemble à:

-----BEGIN RSA PRIVATE KEY----- 
... 
... 
-----END RSA PRIVATE KEY----- 

Cette méthode fonctionne parfaitement avec les variables à une ligne, mais le fichier ne peut pas être analysé avec une variable à plusieurs lignes. Je soupçonne que le fichier "compilé" n'a pas d'indentation correcte, mais je ne peux pas définir l'indentation directement sur la variable car elle peut être utilisée dans d'autres fichiers YAML nécessitant un niveau d'indentation différent. Comment puis-je utiliser correctement une variable d'environnement multiligne dans YAML sans problèmes d'analyse?

+1

serait-il suffisant de stocker une valeur à guillemets simples d'une ligne dans la variable? comme '" --- BEGIN --- \ n ... \ n ... \ n --- FIN --- "' – flyx

+0

Bravo, fonctionne comme un charme merci! Il me manquait les doubles citations. Si vous publiez cette solution comme réponse, je l'accepterai. –

Répondre

3

Vous pouvez définir la variable d'environnement pour contenir une chaîne unique en ligne à double cité avec les nouvelles lignes échappées, comme

"-----BEGIN RSA PRIVATE KEY-----\n...\n...\n-----END RSA PRIVATE KEY-----" 

C'est sûr d'inclure à toute position d'un document YAML où un nœud de contenu est prévu .