tl;dr;
https://gist.github.com/sue445/dd1ab749f9cf364777acbe66d34576e4
前置き
itamaeプラグインのCIを回してたら DigitalOceanで「centos-7-0-x64なんてイメージはないぞ!」ってエラーになりました
+ vagrant up centos70 --provider=digital_ocean Bringing machine 'centos70' up with 'digital_ocean' provider... ==> centos70: Using existing SSH key: wercker-itamae-plugin-recipe-consul There was an issue with the request made to the DigitalOcean API at: Path: /v2/droplets URI Params: {:size=>"512MB", :region=>"nyc3", :image=>"centos-7-0-x64", :name=>"itamae-consul-centos70-59d3b5938e888f0001b27d75", :ssh_keys=>[1874082], :private_networking=>false, :ipv6=>false} The response status from the API was: Status: 422 Response: {"id"=>"unprocessable_entity", "message"=>"You specified an invalid image for Droplet creation."}
Vagrabtfileだと下記のように provider.image
で設定してたのですが、どうも消えた模様。
config.vm.define :centos70 do |c| c.vm.box = "centos/7" c.vm.provider :digital_ocean do |provider, override| provider.image = "centos-7-0-x64" end c.vm.hostname = 'itamae-consul-centos70' c.vm.hostname += "-#{ENV['WERCKER_RUN_ID']}" if ENV['WERCKER_RUN_ID'] end
実際に使えるイメージ一覧を自分のgistには乗っけてはいたんですが、ググれる場所にあった方が便利なのでブログに記載
使い方
はじめに https://cloud.digitalocean.com/settings/api/tokens でAPIトークンを取得
あとはこんな感じに実行したらjsonがとれます。下記のslugをVagrantfileに渡してやればよさそう
$ export DIGITALOCEAN_ACCESS_TOKEN="xxxxxxxxxxxxxxx" $ curl -s "https://api.digitalocean.com/v2/images?filter=global&per_page=100" -H "Authorization: Bearer $DIGITALOCEAN_ACCESS_TOKEN" | jq . { "images": [ { "id": 27983450, "name": "1520.4.0 (beta)", "distribution": "CoreOS", "slug": "coreos-beta", "public": true, "regions": [ "nyc1", "sfo1", "nyc2", "ams2", "sgp1", "lon1", "nyc3", "ams3", "fra1", "tor1", "sfo2", "blr1" ],
slugで検索したい場合はこんな感じ
$ curl -s "https://api.digitalocean.com/v2/images?filter=global&per_page=100" -H "Authorization: Bearer $DIGITALOCEAN_ACCESS_TOKEN" | jq -r ".images[].slug" | grep centos centos-6-5-x32 centos-6-5-x64 centos-6-x32 centos-6-x64 centos-7-x64
jsonはここに置いてるのでページ内検索でも探せます
https://gist.github.com/sue445/dd1ab749f9cf364777acbe66d34576e4