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

Vagrant+DigitalOceanで使い捨て即席サーバを作成する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 <DIRECTORY FOR VAGRANTFILE>
cd <DIRECTORY FOR VAGRANTFILE>
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="<YOUR PERSONAL TOKEN>"

構成管理はまた次回

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

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

参考

Pocket
LINEで送る

You may also like...