Koch deploy_resource privaten repo -, ssh-Schlüssel bereitstellen und ssh_wrapper

Ich bin mit Lasten von Mühe, mein Chef Rezept-Klon ein eigenes repo. Gut, ich hatte ihn die Arbeit gestern, aber nach 'cheffin' mein Vagrant box ein halbes Dutzend mal, ich habe es gebrochen. Ich bin ein Koch-Neuling, wie man sich vorstellen kann.

Folgenden die deploy_resource Anleitung hier, habe ich mein bereitstellen.rb Rezept (gekürzt):

deploy_branch "/var/www/html/ps" do
  repo              git@github.com:simonmorley/private-v2.git
  ssh_wrapper       "/tmp/.ssh/chef_ssh_deploy_wrapper.sh"
  branch            "rails4"
  migrate           false
  environment       "RAILS_ENV" => node[:ps][:rails_env] 
  purge_before_symlink %w{conf data log tmp public/system public/assets}
  create_dirs_before_symlink []
  symlinks(                        # the arrow is sort of reversed:
    "conf"   => "conf",            # current/conf          -> shared/conf
    "data"   => "data",            # current/data          -> shared/data
    "log"    => "log",             # current/log           -> shared/log
    "tmp"    => "tmp",             # current/tmp           -> shared/tmp
    "system" => "public/system",   # current/public/system -> shared/system
    "assets" => "public/assets"    # current/public/assets -> shared/assets
  )
  scm_provider Chef::Provider::Git # is the default, for svn: Chef::Provider::Subversion
  notifies :restart, "service[ps]"
  notifies :restart, "service[nginx]"
end

Standardeinstellungen, ich habe Folgendes zu erstellen, der dirs etc.

directory "/tmp/.ssh" do
  action :create
  owner node[:base][:username]
  group node[:base][:username]
  recursive true
end

template "/tmp/.ssh/chef_ssh_deploy_wrapper.sh" do
  source "chef_ssh_deploy_wrapper.sh.erb"
  owner node[:base][:username]
  mode 0770
end

# Put SSH private key to be used with SSH wrapper
template "/tmp/.ssh/id_deploy" do
  source "id_rsa.pub.erb"
  owner node[:base][:username]
  mode 0600
end

Und in die wrapper:

#!/bin/sh
exec ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i "/tmp/.ssh/id_deploy" "$@"

Und ich haben einen öffentlichen Schlüssel hochgeladen und diese auf github.

Wenn ich bereitstellen das Rezept, es gibt mir eine Fehlermeldung:

 deploy_branch[/var/www/html/ps] action deployEnter passphrase for key '/tmp/.ssh/id_deploy': 

Obvs, ich habe kein Passwort eingestellt... Der private Schlüssel muss daher fehlt..

Nur durch Zufall, habe ich entfernt, die id_deploy Schlüssel aus dem Rezept, die Ordner gelöscht und es lief wieder. Niedrige und siehe da, es begann... Der Grund dafür ist, dass die id_rsa.pub && id_rsa Dateien wurden in /root/.ein.ssh aus, wenn ich manuell erzeugt, Sie zu testen.

Verstehe ich nicht, was ich falsch mache hier. Meine Fragen sind daher:

  • Brauche ich einen privaten und öffentlichen Schlüssel auf jedem Knoten ich bereitstellen? Die docs nicht erwähnen.
  • Sollte dies nicht implementieren als nicht-root-Benutzer? Ich habe einen user in meine Rollen Datei..
  • Warum ist die ssh_wrapper nicht tut, was es soll
InformationsquelleAutor simonmorley | 2013-08-22
Schreibe einen Kommentar