IDCF テックブログ

IDCF テックブログ

クラウド・データセンターを提供するIDCフロンティアの公式テックブログ

vagrant-cloudstack用 CentOS 6.5 テンプレート公開

※この記事は公開されてから1年半以上経過しています。情報が古い可能性がありますのでご注意ください。

こんにちは、梶川です。

先日公開された「Vagrantを使ってCloudStack上の環境構築をしてみよう」はご覧いただけましたか?前回の記事では、Vagrantを使ってセルフクラウド上の仮想マシンを作る手順を紹介していますが、記事で利用しているテンプレートは「Ubuntu Server 12.04 LTS」でのご紹介でした。

これを見てCentOSのテンプレートを使って試された方もいるかもしれませんが、CentOSの場合sudo(vagrnatはsudoを使う)のデフォルト設定が「Defaults requiretty」となっているため、ttyを持たないsshによるコマンド実行などができません。

そこで今回vagrantからの利用に適した、CentOS6.5のテンプレートを公開いたします。

 

通常のCentOS6.5からの変更点としては、vagrantユーザーの追加、vagrantユーザーへのssh公開鍵の設定(通常通りrootへも設定されます。)、vagrantユーザーのsudo設定(!requirettyとNOPASSWD: ALL)が変わっています。

Vagrantfile

こちらのテンプレートに合わせたVagrantfileも公開していますのでご利用ください。

※ vagrant-1.4.3 + vagrant-cloudstack-0.2.0 にて確認しています。(display_name,groupの指定は0.2.0以降でないと指定できませんのでご注意ください。)

 VAGRANTFILE_API_VERSION = "2"

 Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
   config.vm.provider :cloudstack do |cloudstack, override|
     override.vm.box = "dummy"
     override.vm.box_url = "https://github.com/klarna/vagrant-cloudstack/raw/master/dummy.box"

     cloudstack.instance_ready_timeout = 1800

     cloudstack.scheme = "https"
     cloudstack.host = "api.noahcloud.jp"
     cloudstack.path = "/portal/client/api"

     cloudstack.api_key = "YOUR API KEY"
     cloudstack.secret_key = "YOUR SECRET KEY"

     # Zone 1=jp-east-t1v(Tokyo), 2=jp-east-f2v(Shirakawa)
     cloudstack.zone_id = "1"
     # TemplateID 6204=[LATEST][Vagrant Box] CentOS6.5 64-bit for vagrant-cloudstack
     cloudstack.template_id = "6204"
     # ServiceOfferings XS=24,S2=30,S4=22,M4=21,M8=20,L4=31,L8=18,L16=17,L32=16,XL12=26,XL16=15,XL32=52
     cloudstack.service_offering_id = "30"
     cloudstack.keypair = "YOUR SSH KEY"

     cloudstack.pf_ip_address_id = "IP ADDRESS ID"
     cloudstack.pf_public_port = "22"
     cloudstack.pf_private_port = "22"

     cloudstack.display_name = "DISPLAY NAME"
     cloudstack.group = "GROUP NAME"

 #    override.ssh.username = "vagrant"
     override.ssh.private_key_path = "~/.ssh/id_rsa"
 #    override.ssh.port = "22"
   end
 end

赤字の部分は必ず環境に合わせて設定する必要があります。確認方法は下記を参照してください。一部前回の内容とかぶりますが、GUI上での確認する方法を載せておきます。

cloudstack.api_key
APIキーの確認
cloudstack.secret_key
API秘密鍵の確認
cloudstack.keypair
仮想マシンに登録する公開鍵を指定
cloudstack.pf_ip_address_id
cloudstack.display_name
仮想マシン表示名の指定(不要であればコメントアウト)

cloudstack.group
仮想マシングループ名の指定(不要であればコメントアウト)

override.ssh.private_key_path
cloudstack.keypairで指定したSSH公開鍵と対になるSSH秘密鍵を指定


その他の部分はデフォルトでも起動はできますが、必要に応じて設定してください。


cloudstack.zone_id
仮想マシンを作成するゾーンを指定。コメントにありますが、1=東京, 2=白河となります。

cloudstack.template_id
作成する仮想マシンに利用するテンプレートの指定になります。コメントにもありますが、今回提供のvagrant対応CentOS6.5のテンプレートのIDは6204となります。

cloudstack.service_offering_id
仮想マシンタイプの指定。課金に直結する部分となります。目的のタイプを選択してください。実際の仮想マシンタイプとID番号はコメントに記載してありますが「XS=24,S2=30,S4=22,M4=21,M8=20,L4=31,L8=18,L16=17,L32=16,XL12=26,XL16=15,XL32=52」となります。

cloudstack.pf_public_port


cloudstack.pf_private_port
ポートフォワーディングの設定

override.ssh.port
sshする際の接続先ポートを指定。cloudstack.pf_public_portでポート番号を変更している場合などは、合わせて変更してください。

これでUbuntu,CentOSどちらもvagrant-cloudstackから利用できるようになりました。vagrantを使って楽々セルフクラウドを利用しましょう!

vagrant-cloudstackのおさらい

基本的には前回説明していますが、以下にvagrant-cloudstackを利用してセルフクラウドで仮想マシンを起動するまでの流れを説明します。

Vagrantのインストール

まずは自分の環境にVagrantをインストールしましょう。

DOWNLOAD VAGRANT

 $ vagrant -v
 Vagrant 1.4.3

 $

vagrant-cloudstackのインストール

 $ vagrant plugin install vagrant-cloudstack
 Installing the 'vagrant-cloudstack' plugin. This can take a few minutes...
 Installed the plugin 'vagrant-cloudstack (0.2.0)'!

 $ vagrant plugin list
 vagrant-cloudstack (0.2.0)

 $

作業ディレクトリとVagrantfileを準備

 $ mkdir idcf-cloud
 $ cd idcf-cloud
 $ vi Vagrantfile  <=上記で説明したVagrnatfileを用意
 $ ls
 Vagrantfile

 $

仮想マシンの起動

 $ vagrant up --provider=cloudstack  <=--provider=cloudstackを忘れずに!!
 Bringing machine 'default' up with 'cloudstack' provider...
 [default] Warning! The Cloudstack provider doesn't support any of the Vagrant
 high-level network configurations (`config.vm.network`). They
 will be silently ignored.
 [default] Launching an instance with the following settings...
 [default]  -- Display Name: display_name
 [default]  -- Group: group_name
 [default]  -- Service offering UUID: 30
 [default]  -- Service offering UUID: 30
 [default]  -- Template UUID: 6103
 [default]  -- Zone UUID: 2
 [default]  -- Keypair: your_ssh_key_name
 [default] Waiting for instance to become "ready"...
 [default] Creating a port forwarding rule for this instance ...
 [default]  -- IP address ID: xxxxx
 [default]  -- IP address: xxx.xxx.xxx.xxx
 [default]  -- Public port: 22
 [default]  -- Private port: 22
 [default] Waiting for SSH to become available...
 [default] Machine is booted and ready for use!
 [default] Rsyncing folder: /Users/N1302A005/vagrant/test/ => /vagrant

 $

仮想マシンへssh

 $ vagrant ssh
     ________  ______   ______                 __  _
    /  _/ __ \/ ____/  / ____/________  ____  / /_(_)__  _____
    / // / / / /      / /_  / ___/ __ \/ __ \/ __/ / _ \/ ___/
  _/ // /_/ / /___   / __/ / /  / /_/ / / / / /_/ /  __/ /
 /___/_____/\____/  /_/   /_/   \____/_/ /_/\__/_/\___/_/

 [vagrant@i-xxxx-xxxxx-VM ~]$

不要になったら削除

 $ vagrant destroy
 Are you sure you want to destroy the 'default' VM? [y/N] y
 [default] Deleting the port forwarding rule ...
 [default] Terminating the instance...
 [default] Waiting for instance to be deleted
 [default] Waiting for instance to be deleted
 [default] Waiting for instance to be deleted
 [default] Waiting for instance to be deleted
 [default] Waiting for instance to be deleted
 [default] Waiting for instance to be deleted
 [default] Waiting for instance to be deleted
 [default] Waiting for instance to be deleted
 [default] Waiting for instance to be deleted
 [default] Waiting for instance to be deleted

 $

それでは、Vagrantでセルフクラウドをお楽しみください。

<連載記事>

Copyright © IDC Frontier Inc.