※この記事は公開されてから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をインストールしましょう。
$ 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でセルフクラウドをお楽しみください。
<連載記事>
- Vagrantを使ってCloudStack上の環境構築をしてみよう
- vagrant-cloudstack用 CentOS 6.5 テンプレート公開