У меня есть проект, и мы используем Vagrant для нашей разработки env. В Mac/Unix инициализация работает отлично, за исключением Windows, проблема в том, что экспедитор не работает в Windows, и поэтому я не могу получить доступ к частным репозиториям GitHub.
Я исправил это, добавив это в Vagrantfile
:
# Windows github ssh keys fix
if Vagrant::Util::Platform.windows?
# You MUST have a ~/.ssh/github_rsa (GitHub specific) SSH key to copy to VM
if File.exists?(File.join(Dir.home, ".ssh", "github_rsa"))
# Read local machine's GitHub SSH Key (~/.ssh/github_rsa)
github_ssh_key = File.read(File.join(Dir.home, ".ssh", "github_rsa"))
# Copy it to VM as the /root/.ssh/id_rsa key
config.vm.provision :shell, :inline => "echo 'Windows-specific: Copying local GitHub SSH Key to VM for provisioning...' && mkdir -p /root/.ssh && echo '#{github_ssh_key}' > /root/.ssh/id_rsa && chmod 600 /root/.ssh/id_rsa"
else
# Else, throw a Vagrant Error. Cannot successfully startup on Windows without a GitHub SSH Key!
raise Vagrant::Errors::VagrantError, "\n\nERROR: GitHub SSH Key not found at ~/.ssh/github_rsa (required on Windows).\nYou can generate this key manually OR by installing GitHub for Windows (http://windows.github.com/)\n\n"
end
end
Клонирование выполняется с помощью этого сценария Puppet (который, наконец, работает в Windows), когда вышеуказанный сценарий добавляется в Vagrantfile
:
class install_repos {
vcsrepo { '/home/vagrant/git_project':
ensure => present,
provider => git,
source => 'git@github.com:proj_path',
require => Class['known_hosts']
}
}
В этом же файле у меня есть следующее в Gemfile, где некоторые гемы указываются для репозиториев GitHub:
exec { 'install_project':
command => 'bundle install',
cwd => '/vagrant',
provider => 'shell',
require => [
Class['install_ruby'],
Class['known_hosts'],
Class['install_repos'],
]
}
Установка bundle install
продолжает сбой, если я открываю SSH для vagrant-экземпляра и проверяю соединение Github ssh -T git@github.com
я получаю следующее:
Warning: Permanently added the RSA host key for IP address '192.30.252.130' to the list of known hosts.
Permission denied (publickey).
Что бы я ни пытался, я не могу заставить его работать на Windows, и я не уверен, что на самом деле происходит.