Развертывание частного репо в Chef: Что я делаю неправильно с моим ключом развертывания?

Я использую шеф-повар для развертывания приложения rails/ node. Все развертывается нормально, когда я развертываю из публичного репозитория github. Однако я хотел бы использовать из частного репозитория github, и у меня возникают проблемы с этим. Вот что я сейчас делаю

cd ~/.ssh                        # change directory to my .ssh directory
ssh-keygen -f'deploy_key' -N ''  # create a deploy_key key pair without a passphrase
cat deploy_key.pub | pbcopy      # copy the public key into my clipboard

-go to https://github.com/HairyMezican/PrivateRepoName/admin/keys
-click on 'Add another deploy key'
-type 'deploy_key' into 'Title' field
- ⌘V (paste command) into 'Key' field
-click 'Add Key'

tr "\n" "#" < deploy_key | sed 's/#/\\n/g' | pbcopy      #copy the private key into my clipboard, except with all of the newlines replaced with a slash-n
cd ~/chef-repo                                           #change over the the chef repo directory

mate data_bags/apps/my_app.json                          #edit the appropriate data bag in TextMate
--set the following couple of lines before saving
-"repository": "https://[email protected]/HairyMezican/PrivateRepoName.git",
-"deploy_key": "⌘V (paste command into here)",

knife data bag from file apps data_bags/apps/my_app.json                        #upload the databag to my chef server
ssh [email protected] "mkdir ~/.ssh"                                            #create a ssh directory on my remote server
scp ~/.ssh/id_dsa [email protected]:.ssh/                                       #copy my private key over to the ssh directory on the remote server
cat ~/.ssh/id_dsa.pub | ssh [email protected] 'cat - >> ~/.ssh/authorized_keys' #add my public key into the authorized keys list on the remote server
knife bootstrap 12.34.56.789 -dubuntu10.04-gems -rrole[myapp]                   #tell my chef server to bootstrap the remote server

Все идет хорошо, пока процесс начальной загрузки не попытается развернуть из частного репозитория. и он отображает это:

12.34.56.789 [Sat, 03 Dec 2011 01:41:42 +0000] INFO: Processing deploy_revision[myapp] action deploy (application::rails line 155)
12.34.56.789 Password:

а затем практически замораживается (технически, я все еще могу напечатать, но ничего, что я набираю, влияет на script), до 10 минут спустя

12.34.56.789 [Sat, 03 Dec 2011 01:51:51 +0000] ERROR: deploy_revision[myapp] (application::rails line 155) has had an error
12.34.56.789 [Sat, 03 Dec 2011 01:51:51 +0000] ERROR: deploy_revision[myapp] (/var/chef/cache/cookbooks/application/recipes/rails.rb:155:in `from_file') had an error:
12.34.56.789 deploy_revision[myapp] (application::rails line 155) had an error: command timed out:

Затем он выводит пустой вывод в stdout и stderr, а трассировка стека пытается запустить команду

Что я делаю неправильно и как я могу развернуть из частного репозитория?

Ответ 1

Если это частное репо, вы должны использовать SSH-путь к вашему репозиторию git, который начинается с git @github.com.

[email protected]:HairyMezican/PrivateRepoName.git

Ответ 2

Вам нужно создать ключ развертывания в github, который позволит вам вытащить из вашего частного репо без ввода кодовой фразы.

См. документацию по адресу: http://help.github.com/deploy-keys/

Ответ 3

Вы делаете это правильно. Отметьте строку 85 кулинарных книг/приложение/рецепты/rails.rb: not_if do ::File.exists?("#{app['deploy_to']}/id_deploy"); end

т.е. попробуйте вручную войти в этот экземпляр и удалить файл (предположительно пустой) id_deploy, а затем повторно инициализировать процесс.

^ _ ^