orenoblog

エンジニアになりたいExcel方眼紙erの物語

vagrant-digitaloceanを使う

気になっていたSSD搭載VPS digitalocean

vagrant pluginがあったので試してみました。

  • 起動設定

事前にdigitaloceanのコンパネでAPIキーの設定, SSH公開鍵のインポート, 決済設定を済ませておきます。

ギッハブを参考に書きます

Vagrant.configure('2') do |config|

  config.vm.provider :digital_ocean do |provider, override|
    override.ssh.private_key_path = '~/.ssh/id_rsa'
    override.vm.box = 'digital_ocean'
    override.vm.box_url = "https://github.com/smdahlen/vagrant-digitalocean/raw/master/box/digital_ocean.box"

    provider.client_id = 'YOUR CLIENT ID'
    provider.api_key = 'YOUR API KEY'
  end
end

失敗した・・・('A`)

orenomac$  vagrant up --provider=digital_ocean
Bringing machine 'default' up with 'digital_ocean' provider...
==> default: Using existing SSH key: Vagrant
The result collection for images:

[{"id"=>1601, "name"=>"CentOS 5.8 x64", "slug"=>"centos-5-8-x64", "distribution"=>"CentOS", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}, {"id"=>1602, "name"=>"CentOS 5.8 x32", "slug"=>"centos-5-8-x32", "distribution"=>"CentOS", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}, {"id"=>12573, "name"=>"Debian 6.0 x64", "slug"=>"debian-6-0-x64", "distribution"=>"Debian", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}, {"id"=>12575, "name"=>"Debian 6.0 x32", "slug"=>"debian-6-0-x32", "distribution"=>"Debian", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}, {"id"=>14097, "name"=>"Ubuntu 10.04 x64", "slug"=>"ubuntu-10-04-x64", "distribution"=>"Ubuntu", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}, {"id"=>14098, "name"=>"Ubuntu 10.04 x32", "slug"=>"ubuntu-10-04-x32", "distribution"=>"Ubuntu", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}, {"id"=>350424, "name"=>"Arch Linux 2013.05 x64", "slug"=>"arch-linux-2013-05-x64", "distribution"=>"Arch Linux", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}, {"id"=>361740, "name"=>"Arch Linux 2013.05 x32", "slug"=>"arch-linux-2013-05-x32", "distribution"=>"Arch Linux", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}, {"id"=>376568, "name"=>"CentOS 6.4 x32", "slug"=>"centos-6-4-x32", "distribution"=>"CentOS", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}, {"id"=>562354, "name"=>"CentOS 6.4 x64", "slug"=>"centos-6-4-x64", "distribution"=>"CentOS", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}, {"id"=>3100616, "name"=>"Ubuntu 12.04.4 x32", "slug"=>"ubuntu-12-04-x32", "distribution"=>"Ubuntu", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}, {"id"=>3101045, "name"=>"Ubuntu 12.04.4 x64", "slug"=>"ubuntu-12-04-x64", "distribution"=>"Ubuntu", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}, {"id"=>3101580, "name"=>"Ubuntu 13.10 x32", "slug"=>"ubuntu-13-10-x32", "distribution"=>"Ubuntu", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}, {"id"=>3101918, "name"=>"Ubuntu 13.10 x64", "slug"=>"ubuntu-13-10-x64", "distribution"=>"Ubuntu", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}, {"id"=>3102721, "name"=>"Fedora 19 x32", "slug"=>"fedora-19-x32", "distribution"=>"Fedora", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}, {"id"=>3102879, "name"=>"Fedora 19 x64", "slug"=>"fedora-19-x64", "distribution"=>"Fedora", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}, {"id"=>3104282, "name"=>"Ubuntu 12.10 x64 Desktop", "slug"=>"ubuntu-12-10-x64-desktop", "distribution"=>"Ubuntu", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}, {"id"=>3104894, "name"=>"Docker 0.10 on Ubuntu 13.10 x64", "slug"=>nil, "distribution"=>"Ubuntu", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}, {"id"=>3118235, "name"=>"MEAN on Ubuntu 12.04.4", "slug"=>"mean-ubuntu-12.04", "distribution"=>"Ubuntu", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}, {"id"=>3118238, "name"=>"GitLab 6.6.5 CE", "slug"=>"gitlab-ubuntu-13.10", "distribution"=>"Ubuntu", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}, {"id"=>3120115, "name"=>"LAMP on Ubuntu 12.04", "slug"=>"lamp-ubuntu-12.04", "distribution"=>"Ubuntu", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}, {"id"=>3121555, "name"=>"Ghost 0.4.2 on Ubuntu 12.04", "slug"=>"ghost-ubuntu-12.04", "distribution"=>"Ubuntu", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}, {"id"=>3135725, "name"=>"Wordpress on Ubuntu 13.10", "slug"=>"wordpress-ubuntu-13.10", "distribution"=>"Ubuntu", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}, {"id"=>3137635, "name"=>"Ruby on Rails on Ubuntu 12.10 (Nginx + Unicorn)", "slug"=>"rails-unicorn-nginx-ubuntu-12.10", "distribution"=>"Ubuntu", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}, {"id"=>3137903, "name"=>"Redmine on Ubuntu 12.04", "slug"=>"redmine-ubuntu-12.04", "distribution"=>"Ubuntu", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}, {"id"=>3240033, "name"=>"Ubuntu 14.04 x32", "slug"=>"ubuntu-14-04-x32", "distribution"=>"Ubuntu", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}, {"id"=>3240036, "name"=>"Ubuntu 14.04 x64", "slug"=>"ubuntu-14-04-x64", "distribution"=>"Ubuntu", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}, {"id"=>3243143, "name"=>"Fedora 20 x32", "slug"=>"fedora-20-x32", "distribution"=>"Fedora", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}, {"id"=>3243145, "name"=>"Fedora 20 x64", "slug"=>"fedora-20-x64", "distribution"=>"Fedora", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}, {"id"=>3288841, "name"=>"Dokku v0.2.3 on Ubuntu 14.04", "slug"=>"dokku-ubuntu-14.04", "distribution"=>"Ubuntu", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}, {"id"=>3445812, "name"=>"Debian 7.0 x64", "slug"=>"debian-7-0-x64", "distribution"=>"Debian", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}, {"id"=>3445920, "name"=>"Debian 7.0 x32", "slug"=>"debian-7-0-x32", "distribution"=>"Debian", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}, {"id"=>3447910, "name"=>"Ubuntu 12.10 x32", "slug"=>"ubuntu-12-10-x32", "distribution"=>"Ubuntu", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}, {"id"=>3447912, "name"=>"Ubuntu 12.10 x64", "slug"=>"ubuntu-12-10-x64", "distribution"=>"Ubuntu", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}, {"id"=>3448641, "name"=>"CentOS 6.5 x64", "slug"=>"centos-6-5-x64", "distribution"=>"CentOS", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}, {"id"=>3448674, "name"=>"CentOS 6.5 x32", "slug"=>"centos-6-5-x32", "distribution"=>"CentOS", "public"=>true, "regions"=>[1, 2, 3, 4, 5, 6], "region_slugs"=>["nyc1", "ams1", "sfo1", "nyc2", "ams2", "sgp1"]}]

Contained no object with the value "Ubuntu 12.04.3 x64" for the the
key "name".

Please ensure that the configured value exists in the collection.
  • 解決方法

Vagrantfileの記述内容が不足していたみたいです。

DigitalOcean使うときのVagrantfileが面倒なことについてを参考に修正します。

# -*- mode: ruby -*-
# vi: set ft=ruby :

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure('2') do |config|

  config.vm.provider :digital_ocean do |provider, override|
    override.ssh.private_key_path = '<SSH_PRIVATE_KEY>'
    override.vm.box = 'digital_ocean'
    override.vm.box_url = 'https://github.com/smdahlen/vagrant-digitalocean/raw/master/box/digital_ocean.box'
    provider.image = 'CentOS 6.5 x64'
    provider.region = 'New York 2'
    provider.size = '512MB'
    provider.client_id = '<Client_ID>'
    provider.api_key = '<API_KEY>'
  end
end
  • 起動リトライ

rsyncが無いため/vagrantディレクトリの同期ができないとエラーが出てますがひとまず無視

orenomac$ vagrant up --provider=digital_ocean
Bringing machine 'default' up with 'digital_ocean' provider...
==> default: Using existing SSH key: Vagrant
==> default: Creating a new droplet...
==> default: Assigned IP address: 107.170.142.183
==> default: Modifying sudoers file to remove tty requirement...
==> default: Rsyncing folder: /Users/ore/Documents/dev/oreoreocean/ => /vagrant...
There was an error when attemping to rsync a share folder.
Please inspect the error message below for more info.

Host path: /Users/ore/Documents/dev/oreoreocean/
Guest path: /vagrant
Error: Warning: Permanently added '107.170.142.183' (RSA) to the list of known hosts.
bash: rsync: コマンドが見つかりません
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: remote command not found (code 127) at /SourceCache/rsync/rsync-42/rsync/io.c(452) [sender=2.6.9]
  • 気をつけること

AWSはSGがあるから半裸全裸好きにできますが、VPSで全裸は大変危険です。

boot時に服を着せましょうね

[root@default ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination