概要
スマートフォンのテザリング環境でvagrantを使ってローカルでCentOS7の検証をしていたのですが、新しいVMを作成してyum updateを実行するごとに月の残容量がガリガリ削られて検証することが億劫になっていました。vagrant-digitaloceanを使ってリモートのDigitalOcean上にVMを作りそこで検証すれば、月の通信残量にはほとんど影響がなくなります。
Mac(Mavericks)でvagrant-digitaloceanを利用してDigitalOceanでCentOS7を起動するための手順です。Vagrantfileはvagrant-docker-digitaloceanを参考にしています。(2015年1月現在の方法です)
事前準備
- Vagrantインストール
- 最新バージョン推奨。古いとプラグインを入れるときにNokogiriのインストールでコケます。
- VagrantインストールまではDocker Hello Worldを参照してください。
- DigitalOceanにアカウントを作成
作業内容
プラグインのインストール
### vagrant-digitaloceanのインストール
$ vagrant plugin install vagrant-digitalocean
### 共有ディレクトリを利用するためのプラグインインストール(任意)
$ vagrant plugin install vagrant-vbguest
SSH鍵の作成と登録
DigitalOceanに公開鍵を登録します。
ここでは「MyMac vagrant-digitalocean.pem.pub」という名前で登録しました。
### SSH鍵の作成
$ ssh-keygen -t rsa -b 4096 -f ~/.ssh/vagrant-digitalocean.pem
$ chmod 600 ~/.ssh/vagrant-digitalocean.pem
$ chmod 644 ~/.ssh/vagrant-digitalocean.pem.pub
### catして表示される内容を登録
$ cat ~/.ssh/vagrant-digitalocean.pem.pub
===============================================
ssh-rsa AAAA(中略)4Rw== ftakao2007@ftakao2007mac
===============================================
証明書の作成
Vagrantfileのprovider.ca_pathに設定します。
### 証明書の作成
$ ruby -ropenssl -e "p OpenSSL::X509::DEFAULT_CERT_FILE"
===============================================
"/usr/local/etc/openssl/cert.pem"
===============================================
Vagrantfile作成
### 作業ディレクトリを作成して移動。任意の場所でOK。
$ mkdir -p ~/work/vagrant/vagrant-digitalocean
$ cd ~/work/vagrant/vagrant-digitalocean
### Vagrantfileを作成
$ vi Vagrantfile
===========================================
Vagrant.configure('2') do |config|
config.vm.hostname = 'ftakao2007.foobar.com' # 好きなhostnameに変更
config.vm.provider :digital_ocean do |provider, override|
provider.client_id = '90(中略)b3' # https://cloud.digitalocean.com/api_access で取得したclient_id(Client ID)を指定
provider.api_key = '92(中略)84' # https://cloud.digitalocean.com/api_access で取得したapi_key(API Key)を指定
provider.ssh_key_name = 'MyMac vagrant-digitalocean.pem.pub' # https://cloud.digitalocean.com/ssh_keys で設定したSSH鍵名を指定
provider.token = '4d(中略)bd' # https://cloud.digitalocean.com/settings/applications で設定したtoken(Personal Access TokensのGenerate New Tokenで作成したもの)を指定
override.ssh.private_key_path = '~/.ssh/vagrant-digitalocean.pem'
override.vm.box = 'digital_ocean'
override.vm.box_url = "https://github.com/smdahlen/vagrant-digitalocean/raw/master/box/digital_ocean.box"
provider.image = 'centos-7-0-x64'
provider.region = 'sgp1'
provider.size = '512MB'
provider.ca_path = '/usr/local/etc/openssl/cert.pem'
end
end
===========================================
Dropletを起動
$ vagrant up --provider=digital_ocean
===========================================
Bringing machine 'default' up with 'digital_ocean' provider...
==> default: Using existing SSH key: MyMac vagrant-digitalocean.pem.pub
==> default: Creating a new droplet...
==> default: Assigned IP address: 128.199.XXX.XXX
==> default: Private IP address: 10.130.XXX.XXX
==> default: Modifying sudoers file to remove tty requirement...
==> default: Rsyncing folder: /Users/ftakao2007/work/vagrant/vagrant-digitalocean/ => /vagrant...
===========================================
$ vagrant status
===========================================
Current machine states:
default active (digital_ocean)
active
===========================================
$ vagrant ssh
[root@ftakao2007 ~]# cat /etc/redhat-release
===========================================
CentOS Linux release 7.0.1406 (Core)
===========================================
Webから確認
Droplet削除
[root@ftakao2007 ~]# exit
$ vagrant destroy
===========================================
default: Are you sure you want to destroy the 'default' VM? [y/N] y
==> default: Destroying the droplet...
===========================================
$ vagrant status
===========================================
Current machine states:
default not_created (digital_ocean)
not_created
===========================================