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を取得
Vagrantfileを作る
mkdir
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も追加されてる。
削除する
vagrant halt vagrant destroy
消えた!
.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に登録しておこう!