Vagrant+DigitalOceanで使い捨て即席サーバを作成する

January 05, 2015

Vagrantでローカルの環境を作るのも良いけれど、Macのリソース消費がきついので最近使い始めたDigital Oceanと連携させてみた。既に解説が幾つもあって、作業自体はとても簡単に出来た。先達に感謝です。ただ、Digital OceanのAPIがv2になって若干変わっている部分もあるので、自分なりにまとめてみました。

必要なもの

  • Homebrew
  • Vagrant
  • Digital Oceanにアカウントがあること

vagrant-digitaloceanのインストール

vagrant plugin install vagrant-digitalocean

brewでopensslの再インストール

curl-ca-bundleを入れようと思ったけれど、既にbrewのパッケージから消えてしまったとういこと。opensslをインストールするとついてくるらしいので、opensslを再インストールする。

参考: brewでcurl-ca-bundle入れようとすると怒られる - Qiita

brew reinstall openssl

Digital OceanからPersonal Access Tokenを取得

Digital ocean token

Vagrantfileを作る

mkdir cd touch Vagrantfile

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.token = '<YOUR PERSONAL TOKEN>'
provider.image = 'centos-7-0-x64'
provider.region = 'sgp1'
provider.size = '512mb'

end end

インスタンスの作成

vagrant up —provider=digital_ocean

Done!

入ってみる。

vagrant ssh

Dropletsも追加されてる。

Droplets

削除する

vagrant halt vagrant destroy

No droplets

消えた!

.envで設定情報を分離する

.envはVagrantfileと同じ階層に作成する

vagrant plugin install dotenv touch .env

Vagrantfile

Dotenv.load

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.token = ENV\['PERSONAL\_TOKEN'\]
provider.image = 'centos-7-0-x64'
provider.region = 'sgp1'
provider.size = '512mb'

end end

.env

PERSONAL_TOKEN=”

構成管理はまた次回

AnsibleやChefを使っての構成管理もできます。それに関しては次回書いていきたいと思います。イイね!

とりあえず、bitbucketに登録しておこう!

参考


Profile picture

Written by morizotter who lives and works in Tokyo building useful things. You should follow them on Twitter