LoginSignup
11
10

More than 5 years have passed since last update.

vagrant-digitaloceanを利用してDigitalOceanでCentOS7を起動したい

Last updated at Posted at 2015-01-18

概要

スマートフォンのテザリング環境で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から確認

スクリーンショット 2015-01-18 19.29.48.png

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
===========================================

リンク

11
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
10