I'm using the vcsrepo module to clone a git repo as a particular user, and I'm getting a puzzling error:
Debug: Executing '/usr/bin/su myuser -c "/usr/local/bin/git clone g...@git.myhostname.com:repos/myrepo.git /home/myuser/myrepo"'
Error: Execution of '/usr/bin/su myuser -c "/usr/local/bin/git clone g...@git.myhostname.com:repos/myrepo.git /home/myuser/myrepo"' returned 127: su: /usr/local/bin/git clone g...@git.myhostname.com:repos/myrepo.git /home/myuser/myrepo: No such file or directory
When I copy and paste the exact command and run it, it works fine. I can't figure out what would be complaining about "No such file or directory". Every executable and path mentioned in the command exists.
My relevant classes look like this:
class sshd {
file { "/etc/ssh/sshd_config":
source => "puppet:///modules/sshd/sshd_config",
notify => Service["sshd"]
}
file { "/etc/ssh/ssh_config":
source => "puppet:///modules/sshd/ssh_config",
notify => Service["sshd"]
}
service { "sshd":
ensure => "running",
}
}
class myuser {
file { "/home/myuser/.ssh":
ensure => "directory",
mode => "0700",
owner => "myuser",
group => "myuser",
}
file { "/home/myuser/.ssh/known_hosts":
source => "puppet:///modules/myuser/.ssh/known_hosts",
owner => "myuser",
group => "myuser",
}
file { "/home/myuser/.ssh/id_rsa":
source => "puppet:///modules/myuser/.ssh/id_rsa",
mode => "0600",
owner => "myuser",
group => "myuser",
}
vcsrepo { "/home/myuser/myrepo":
require => Class["sshd"],
ensure => present,
provider => git,
source => 'g...@git.myhostname.com:repos/myrepo.git',
revision => 'master',
user => 'myuser'
}
}
Any pointers?