Я работал над учебником, посвященным размышлениям о проблемах в графах, используя свой футбольный граф, и я хотел развернуть его на локальной бродячей виртуальной машине в качестве основы для его развертывания в реальной среде. Мой Vagrant-файл для виртуальной машины выглядит так:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
|
# -*- mode: ruby -*- # vi: set ft=ruby : Vagrant::Config.run do |config| config.vm.box = "precise64" config.vm.define :neo01 do |neo| neo.vm.network :hostonly, "192.168.33.101" neo.vm.host_name = 'neo01.local' neo.vm.forward_port 7474 , 57474 neo.vm.forward_port 80 , 50080 end config.vm.provision :puppet do |puppet| puppet.manifests_path = "puppet/manifests" puppet.manifest_file = "site.pp" puppet.module_path = "puppet/modules" end end |
Я переадресовываю порты 80 и 7474 на 50080 и 57474 соответственно, чтобы получить доступ к веб-приложению и консоли neo4j из моего браузера. Существует множество кукольных кодов для настройки машины в указанном месте. Поскольку веб-приложение написано на Ruby / Sinatra, наиболее простым инструментом развертывания, вероятно, является capistrano, и я нашел учебник на веб-сайте beanstalk действительно полезным для настройки. Мой файл config / deploy.rb, который я настроил для чтения в Capistrano, выглядит следующим образом:
01
02
03
04
05
06
07
08
09
10
11
|
require 'capistrano/ext/multistage' set :application, "thinkingingraphs" set :scm, :git set :repository, "[email protected]:markhneedham/thinkingingraphs.git" set :scm_passphrase, "" set :ssh_options, {:forward_agent => true } set :default_run_options, {:pty => true } set :stages, [ "vagrant" ] set :default_stage, "vagrant" |
В моем файле config / deploy / vagrant.rb у меня есть следующее:
1
2
3
|
set :user, "vagrant" server "192.168.33.101" , :app, :web, :db, :primary => true set :deploy_to, "/var/www/thinkingingraphs" |
Так что IP там тот же, который я назначил в Vagrantfile. Если вы этого не сделали, вам нужно будет использовать vagrant ssh, чтобы перейти на виртуальную машину, а затем ifconfig, чтобы получить IP-адрес. Я подумал, что, вероятно, нужно было сделать еще один шаг, чтобы сообщить Capistrano, откуда ему взять бродячий открытый ключ, но я подумал, что в любом случае я попытаюсь развернуть его, чтобы посмотреть, что произойдет.
1
|
$ bundle exec cap deploy |
Он попросил меня ввести пароль пользователя vagrant, который по умолчанию является «vagrant», и я в конечном итоге нашел сообщение в StackOverflow, в котором предлагалось изменить ssh_options на следующее:
1
|
set :ssh_options, {:forward_agent => true , keys: [ '~/.vagrant.d/insecure_private_key' ]} |
И с этим развертывание работало без нареканий! Счастливые дни.