2015-12-02 1 views
0

J'utilise la ressource de fichier et spécifie le contenu du fichier à l'attribut de contenu. Cependant, le contenu est énorme et je ne peux pas déclarer le contenu directement dans l'attribut de fichier.Ressource «fichier» Chef avec un contenu énorme

file "/var/django/.ssh/id_rsa" do 
    content "huge content" 
    owner "django" 
    group "django" 
    mode 00600 
end 

S'il vous plaît suggérer s'il y a une meilleure façon de déclarer le contenu (lorsque le contenu est énorme).

+0

Déclarer 'content' sur une ressource de fichier n'est généralement approprié que lorsque le contenu est généré dynamiquement dans votre livre de recettes quelque part. Si c'est statique, vous devriez utiliser 'cookbook_file' et stocker le fichier comme le suggère @coderanger. –

Répondre

0

Bien que vous ayez mentionné que vous ne vouliez pas de fichier séparé, la manière correcte de créer une clé SSH privée serait d'utiliser des sacs de données cryptés. Le moyen le plus simple de gérer les sacs de données cryptés est de faire appel à la chambre forte du chef. Vous pouvez en savoir plus sur la procédure d'installation avec Chef Vault ici: http://jtimberman.housepub.org/blog/2013/09/10/managing-secrets-with-chef-vault/.

vault_ssh = ChefVault::Item.load("secrets", "vaultuser-ssh-private") 

directory "/home/vaultuser/.ssh" do 
    owner "vaultuser" 
    group "vaultuser" 
    mode 0700 
end 

file "/home/vaultuser/.ssh/id_rsa" do 
    content vault_ssh["vaultuser-ssh-private"] 
    owner "vaultuser" 
    group "vaultuser" 
    mode 0600 
end 

Si vous voulez sauter le sac de données que vous pouvez simplement définir la valeur de l'attribut vault_ssh [ « vaultuser-ssh-privé »] à la clé, ou l'ont mis à un attribut de noeud dans votre rôle/livre de recettes.

1

Placez le contenu dans un fichier sous files/ dans le livre de recettes et utilisez une ressource cookbook_file.

+0

En fait, je ne veux pas utiliser cookbook_file parce que de cette façon, je devrai inclure un fichier séparé. Je veux que tout fasse partie de la chaîne seulement. – meallhour

+2

Vous ne pouvez pas demander un meilleur moyen et ensuite dire que vous voulez le faire exactement comme vous l'avez demandé de ne pas faire. – coderanger