cloud founryインストール手順

40
CloudFoundry V2 環境構築手順書 (第 1 版) 富士通株式会社

Upload: kotaro-noyama

Post on 15-Jul-2015

358 views

Category:

Documents


11 download

TRANSCRIPT

Page 1: Cloud founryインストール手順

CloudFoundry V2

環境構築手順書

(第 1版)

富士通株式会社

Page 2: Cloud founryインストール手順

更新履歴

Ver 更新年月日 更新者 更新内容

1 2014/09/25 若林 新規作成

iCOPYRIGHT FUJITSU LIMITED 2014

Page 3: Cloud founryインストール手順

はじめに本ドキュメントは CroudFoudy V2環境を構築する手順を記述したドキュメントである。

本ドキュメントは以下の環境での作業を想定している。

クラウド基盤 Cloudstack Ver4.2.1

VM Ubuntu 12.04

ストレージ領域 プライマリストレージ:約 350GB

セカンダリストレージ:約 150GB

本作業で必要なユーザーの種類・権限は以下の通り。

環境 ユーザーの種類 権限 本ドキュメントで使用するユーザー

インスタンス Linuxユーザー 管理者 root

一般

本ドキュメントでは、特に指定がない限り管理者(root)を使用すること。

iiCOPYRIGHT FUJITSU LIMITED 2014

Page 4: Cloud founryインストール手順

目次

目次 i i i

1 .前提1

2.インセプションサーバの構築 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2.1.Ubuntuイメージの起動.................................................................................................................................................2

2.2.インセプションサーバ上での各設定変更.........................................................................................................2

2.2.1.rootログイン設定........................................................................................................................................................2

2.2.2.内部作業領域のサイズ拡張..................................................................................................................................3

2.2.3.プロキシサーバの設定...........................................................................................................................................3

2.3.インセプションサーバへのインストール.........................................................................................................3

2.3.1.パッケージリポジトリの追加と upgradeの実行............................................................................................3

2.3.2.acpiphpカーネルモジュールのアクティブ化..................................................................................................4

2.3.3.関連ツールのインストール..................................................................................................................................4

2.3.4.Rubyインストール....................................................................................................................................................4

3.BOSHインストール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3.1.BOSHのインストールとMicroBOSHの実行......................................................................................................6

3.1.1.BOSHのインストール..............................................................................................................................................6

3.1.2.依存 gemのインストール.........................................................................................................................................6

3.1.3.stemcelの作成..................................................................................................................................................................6

3.1.4.Proxyサーバの非参照設定......................................................................................................................................8

3.1.5.キーペアファイルの作成.......................................................................................................................................8

3.1.6.マニフェストファイルの作成............................................................................................................................10

3.1.7.ソースコードの修正...............................................................................................................................................12

3.1.8.マイクロボッシュのデプロイ............................................................................................................................14

3.2.BOSHデプロイの準備...............................................................................................................................................15

3.2.1.Proxyサーバの設定..................................................................................................................................................15

3.2.2.不足領域の追加........................................................................................................................................................15

3.2.3.cf-releaseの設定.............................................................................................................................................................17

3.2.4.stemcellのアップロード...........................................................................................................................................17

4.CloudFounryの展開 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4.1.CloudFoundryデプロイの準備...................................................................................................................................20

4.1.1.Cloudstackインスタンスの帯域制限の解除.....................................................................................................20

4.1.2.デプロイ用マニフェストの作成......................................................................................................................22

4.1.3.マニフェスト内容の修正内容...........................................................................................................................32

4.2.CloudFoundryのデプロイ............................................................................................................................................32

4.2.1.デプロイの実行........................................................................................................................................................32

iiiCOPYRIGHT FUJITSU LIMITED 2014

Page 5: Cloud founryインストール手順

4.2.2.cfコマンドのインストール.................................................................................................................................32

5.DBサービス(MySQLサービス)の展開 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

5.1.ソースの取得................................................................................................................................................................33

5.2.Upload Releaseの実行.....................................................................................................................................................33

5.3.マニフェストの作成.................................................................................................................................................33

5.4.MySQLサービスのデプロイ..................................................................................................................................34

5.5.cfサービスの設定.......................................................................................................................................................35

ivCOPYRIGHT FUJITSU LIMITED 2014

Page 6: Cloud founryインストール手順

1. 前提

CloudFoundry環境を動作させる(構築する)環境として、以下をあらかじめ準備しておく。

・Cloudstack環境(KVM使用)

・UbuntuOSイメージ(Ver12.04)

・以下のコンピュータオファリング

○ コンピュータオファリング

コンピュータオファリング名 CPU メモリ

m1.small 1core 500MB

m1.medium2 1core 2GB

m1.large 2core 2GB

m1.large2 2core 4GB

○ ディスクオファリング

ディスクオファリング名 サイズ

disk2gb 2GB

disk10gb 10GB

disk20gb 20GB

1COPYRIGHT FUJITSU LIMITED 2014

Page 7: Cloud founryインストール手順

2. インセプションサーバの構築

CloudFoundryのインストールにあたり、BOSHによるデプロイを行うための最初の BOSH(Micro

BOSH)サーバ(インセプションサーバ)を Cloudstack上に UbuntuVMを起動して構築します。

2.1. Ubuntuイメージの起動

あらかじめ Cloudstack上に準備した Ubuntu12のイメージを利用してインセプションサーバとなる

Ubuntuの VMを起動します。

※使用コンピュータオファリング:m1.small

2.2. インセプションサーバ上での各設定変更

起動した Ubuntuの VM上で、以下の各設定を行います。

2.2.1. rootログイン設定

インセプションサーバに rootユーザでのログインとリモートでの rootログイン許可の設定を行い

ます。

(1) rootでログインし、パスワードの設定を行う

$ sudo su –

# passwd

(2) rootでの ssh接続を許可する設定

設定ファイル(sshd_config)を修正

# vi /etc/ssh/sshd_config

PermitRootLogin without-password

PermitRootLogin yes

-----

#PasswordAuthentication yes

PasswordAuthentication yes

(3) 設定更新

上記修正後プロセス再起動

# initctl restart ssh

2COPYRIGHT FUJITSU LIMITED 2014

Page 8: Cloud founryインストール手順

2.2.2. 内部作業領域のサイズ拡張

作業時に内部で使用される領域(/tmp)に対して、領域不足にならないようにあらかじめ Cloudstack

上でストレージを作成しアタッチ・マウントしておく。

(1)ストレージの作成

アタッチするストレージ(20GB)を GUIから作成しアタッチする。

(2)領域のマウント

作成したストレージを/tmpにマウントする。

# mount /dev/vdb /tmp

※ アタッチしたボリュームが/dev/vdbの場合

2.2.3. プロキシサーバの設定

以下のコマンドを例に、インセプションサーバの環境変数(http_proxy、https_proxy)へプロキシサー

バを設定する。

設定例)

export http_proxy=http://mp067159:[email protected]:8080/

export https_proxy=http://mp067159:[email protected]:8080/

2.3. インセプションサーバへのインストール

2.3.1. パッケージリポジトリの追加と upgradeの実行

apt-get実行用に、Japanese Teamのパッケージリポジトリを以下のコマンドを例に追加する。

# wget -q https://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-key add -

# wget -q https://www.ubuntulinux.jp/ubuntu-jp-ppa-keyring.gpg -O- | sudo apt-key add -

# wget https://www.ubuntulinux.jp/sources.list.d/precise.list -O /etc/apt/sources.list.d/ubuntu-ja.list

# apt-get update

パッケージの更新(upgrade)を行う

3COPYRIGHT FUJITSU LIMITED 2014

Page 9: Cloud founryインストール手順

# apt-get upgrade

2.3.2. acpiphpカーネルモジュールのアクティブ化

以下のコマンドを例に、acpiphpカーネルモジュールのアクティブ化を行う。

# modprobe acpiphp

# sh -c "echo acpiphp >> /etc/modules"

2.3.3. 関連ツールのインストール

必要となる関連ツール(パッケージ)のインストールを以下のコマンドを例に行う。

(1) gitインストール

# apt-add-repository ppa:git-core/ppa

# apt-get update

# sudo apt-get install git-core

(2) Ruby、Gems関連の事前インストール

# apt-get install g++ make libxslt-dev libxml2-dev libsqlite3-dev zlib1g-dev libreadline-dev libssl-dev libcurl4-openssl-dev

(3) stemcell関連のインストール

# apt-get install libsqlite3-dev genisoimage libmysqlclient-dev libpq-dev debootstrap kpartx

2.3.4. Rubyインストール

(1) プロキシサーバの設定

gitインストールのために以下のコマンドを例にプロキシサーバを gitの configに設定する。

# git config --global http.proxy http://mp067159:[email protected]:8080/

# git config --global https.proxy http://mp067159:[email protected]:8080/

(2) rbenvのインストール

rbenvおよび関連パッケージを以下のコマンドを例にインストールする。

# apt-get install build-essential bison libreadline6-dev curl git-core zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-

dev libxslt1-dev autoconf libncurses5-dev

4COPYRIGHT FUJITSU LIMITED 2014

Page 10: Cloud founryインストール手順

# git clone http://github.com/sstephenson/rbenv.git .rbenv

# git clone http://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

(3) profileの設定

rbenv を使うために必要な設定を ~/.bash_profile に記述する。

$ vi ~/.bash_profile

export PATH="$HOME/.rbenv/bin:$PATH"

eval "$(rbenv init -)"

保存後に反映する。

$ source ~/.bash_profile

(4) Rubyインストール

rbenvを利用し、Rubyのインストールリストを表示する。

# rbenv install --list

リストされたバージョンを参照して Rubyのインストールを行う。

# rbenv install 1.9.3-p547

# rbenv global 1.9.3-p547

# ruby --version

ruby 1.9.3p547 (2014-05-14 revision 45962) [x86_64-linux]

5COPYRIGHT FUJITSU LIMITED 2014

Page 11: Cloud founryインストール手順

3. BOSHインストール

3.1. BOSHのインストールとMicroBOSHの実行

3.1.1. BOSHのインストール

以下のコマンドを例に、gitを使用してBoshのインストールを行う。

# git clone https://github.com/cloudfoundry-community/bosh-cloudstack-cpi.git ~/bosh

# cd ~/bosh

3.1.2. 依存 gemのインストール

以下のコマンドを例に、依存 gemをインストールする

# gem install bundler

# bundle

3.1.3. stemcelの作成

(1) ベースイメージ作成

Boshで使用する VMイメージ(stemcell)を作成する。

# bundle exec rake stemcell:build_os_image[ubuntu,precise,/tmp/ubuntu_base_image.tgz]

オプション説明:ubuntu … OS名を指定する。

       :precise … OSのバージョンを指定(ubuntuの場合、preciseや lucid)

       :/tmp/ubuntu_base_image.tgz … 作成ファイル名

(2) ソース(bosh-stemcell)内のカーネルバージョン指定箇所修正

 上記コマンドで一時的に作成されるイメージファイル作成用ディレクトリ

(/mnt/stemcells/null/null/ubuntu/work/work/chroot)もしくは作成した圧縮イメージファイル内の「/boot」内

に格納されているカーネルファイル( initrd.img-xxx-virtual、vmlinuz-xxx-virtual)のバージョンを確認し 、

/root/bosh/bosh-stemcell/spec/stemcells/ubuntu_precise_spec.rbの 3行目から 14行目(describe ~ end まで)に記載

されている各カーネルバージョンを確認したバージョンに合わせて修正する。

# ls /mnt/stemcells/null/null/ubuntu/work/work/chroot/boot

System.map-3.2.0-70-virtual config-3.2.0-70-virtual initrd.img-3.2.0-70-virtual

abi-3.2.0-70-virtual grub vmlinuz-3.2.0-70-virtual

※作成した ubuntuのカーネルバージョンが「3.2.0-70」であることを確認

# vi /root/bosh/bosh-stemcell/spec/stemcells/ubuntu_precise_spec.rb

6COPYRIGHT FUJITSU LIMITED 2014

Page 12: Cloud founryインストール手順

(略)

describe 'Ubuntu 12.04 stemcell', stemcell_image: true do

context 'installed by image_install_grub' do

describe file('/boot/grub/grub.conf') do

it { should be_file }

it { should contain 'default=0' }

it { should contain 'timeout=1' }

it { should contain 'title Ubuntu 12.04.5 LTS (3.2.0-68-virtual)' }

it { should contain ' root (hd0,0)' }

it { should contain ' kernel /boot/vmlinuz-3.2.0-68-virtual ro root=UUID=' }

it { should contain ' selinux=0' }

it { should contain ' initrd /boot/initrd.img-3.2.0-68-virtual' }

end

(略)

↓ 以下のように修正

(略)

describe 'Ubuntu 12.04 stemcell', stemcell_image: true do

context 'installed by image_install_grub' do

describe file('/boot/grub/grub.conf') do

it { should be_file }

it { should contain 'default=0' }

it { should contain 'timeout=1' }

it { should contain 'title Ubuntu 12.04.5 LTS (3.2.0-70-virtual)' }

it { should contain ' root (hd0,0)' }

it { should contain ' kernel /boot/vmlinuz-3.2.0-70-virtual ro root=UUID=' }

it { should contain ' selinux=0' }

it { should contain ' initrd /boot/initrd.img-3.2.0-70-virtual' }

end

(略)

(3) stemcellイメージの作成

以下のコマンドを実行し、(1)で作成したベースイメージから stemcellイメージを生成する。

# bundle exec rake stemcell:build_with_local_os_image[cloudstack,ubuntu,precise,ruby,/tmp/ubuntu_base_image.tgz]

7COPYRIGHT FUJITSU LIMITED 2014

Page 13: Cloud founryインストール手順

3.1.4. Proxyサーバの非参照設定

内部のローカルアドレス(インセプションサーバやインセプションサーバから起動される Firstbosh

サーバ)を Proxyサーバなしで参照するように「no_proxy」環境変数を指定する。

# export no_proxy=172.16.10.224,172.16.10.227,172.16.10.228

※管理サーバの IP、ルータ VMの IPとインセプションサーバ自身の IPを除外対象に指定

3.1.5. キーペアファイルの作成

(1) スクリプトファイル作成

Cloudstackの APIを使用して SSHキーペアファイルを作成するため、以下のスクリプトファイルを

作成する。

# cat kick_api.sh

-----------------------------------------

#!/bin/bash

#

# kick_api.sh

#

# please set your host

address="http://172.16.10.224:8080" # Cloudstack管理サーバの URL

# please set your api key (CloudStackGUIであらかじめ作成しておく)

api_key="QBbqiA_mGMp23w8lX1zadH_PCruxaqj55iTtQgCQst5Pd5aJ1TrXKErTX3UKIvmx4Ok5WaJZNPwY0o

1Y_ORP2A"

# please set your secret key(CloudStackGUIであらかじめ作成しておく)

secret_key="oN5z4NafX9OrwknE39f9sT_rhSrfdCa1CRuoCjO3iD214wzM4JGLIT2TjwmvBerWLuM9OOdnCEtyV

pPy02rOkg"

api_path="/client/api?"

if [ $# -lt 1 ]; then

echo "usage: $0 command=... paramter=... parameter=..."; exit;

elif [[ $1 != "command=" ]]; then*

echo "usage: $0 command=... paramter=... parameter=..."; exit;

elif [ $1 == "command=" ]; then

echo "usage: $0 command=... paramter=... parameter=..."; exit;

fi

data_array=("$@" "apikey=${api_key}")

temp1=$(echo -n ${data_array[@]} | \

tr " " "\n" | \ sort -fd -t'=' | \

8COPYRIGHT FUJITSU LIMITED 2014

Page 14: Cloud founryインストール手順

perl -pe's/([ -_.~A-Za-z0-9=\s])/sprintf("%%%02X", ord($1))/seg'| \^

tr "A-Z" "a-z" | \ tr "\n" "&" )

signature=$(echo -n ${temp1[@]})

signature=${signature%&}

signature=$(echo -n $signature | \

openssl sha1 -binary -hmac $secret_key | \

openssl base64 )

signature=$(echo -n $signature | \

perl -pe's/([ -_.~A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg')^

url=${address}${api_path}$(echo -n $@ | tr " " "&")"&"apikey=$api_key"&"signature=$signature

echo " SEND URL: $url"

curl ${url}

(2) キーペア作成

上記で作成したスクリプトファイルを以下のコマンドのとおりに実行し、キーペアを作成する。

(name=はキー名として任意の名前を指定可能)

コマンド:./kick_api.sh command=createSSHKeyPair name=<キー名>

例)

# ./kick_api.sh command=createSSHKeyPair name=cfmykey

SEND URL: http://172.16.10.224:8080/client/api?

command=createSSHKeyPair&name=cfmykey&apikey=QBbqiA_mGMp23w8lX1zadH_PCruxaqj55iTtQgCQst5Pd5aJ1

TrXKErTX3UKIvmx4Ok5WaJZNPwY0o1Y_ORP2A&signature=gPmSPYqd2fIaSf5%2BX2K%2FvEdgaD8%3D

<?xml version="1.0" encoding="UTF-8"?><createsshkeypairresponse cloud-stack-

version="4.2.1"><keypair><privatekey>-----BEGIN RSA PRIVATE KEY-----

MIICXAIBAAKBgQCqPLtCyjC3GeLwJODEI9eJLnaanRzxpvU2BWfuUTMem5/s8hwe

FN2cr7ZC5deW9cR1P394OFtWVarOdvDymHntUsZeJMxGY3ad5WlNL5OBLy1aqSIk

T7p7S7ZHfFpEZ8Qx6M13E3xc27T9o+DJMPV300vjSL3sJy+vAcrIGyusQQIDAQAB

AoGAE/mwV3P2J2YINPl+zkUOY3BqRlYtMUXP/BjCSzqH7w1/xIPcPMNiBaKwlkT1

+Sa5eLCMuoSSYx0GP9fBChZOKBPScMrC/77s03U8lLDSaDPid45st8U9dQy6Id97

ny1D3+hU2NNvaVPCZYqtvsGhhLhQ3Hj7YnmbqEJN7I8pTUkCQQDRXknbOkjjm1uX

rqter6jU8r1TS9a3HpJIgbxWD+9qNZmBDJJIb7dB+6NXg3/oljJynB48LRgDlU5Y

cfwCAGlTAkEA0CdGyBRFNWaqKpLR1wugN0CPDrh4AkwSOCne64ReJiLDaLohcCjr

ASHF/ShwyQ/lX/fZfo4u/Nld3c5IO9ydmwJBAK024Muq8Nq9kY1wSP9RPNDQ8qmT

ONTPSh8KlpJtJJouNg16JRwgsPC6C20/sfbvLFV9q9YFSLTONb8ermvJg1kCQCsw

9COPYRIGHT FUJITSU LIMITED 2014

Page 15: Cloud founryインストール手順

WxFck1eXK6uVtxBliyKrtIMbZ1siqY0ZsvUvC9Hh2KW8KP/6nXgop8n1QCGXuMIG

zQvjOICiIUXKbVZuWg0CQEqhaJ1xWZkxd2EuDcPr+JPBJSS/DyOOtdqNQBTpoJLz

fVkHNwwStJIU4x9/CULbRtvqedyTsIYmnfSKWZtoVJ0=

-----END RSA PRIVATE KEY-----

</privatekey><name>cfmykey</name><fingerprint>db:12:1e:5c:79:0c:ba:06:35:51:7e:4c:21:a9:c9:94</fingerprint>

</keypair></createsshkeypairresponse>root@ubuntu14:~#

(3) キーファイル保存

表示された実行結果の「-----BEGIN RSA PRIVATE KEY-----」から「-----END RSA PRIVATE KEY-----」の

間の内容について、キーファイルを作成して保存します

# vi /root/cfmykey

-----BEGIN RSA PRIVATE KEY-----

MIICXAIBAAKBgQCqPLtCyjC3GeLwJODEI9eJLnaanRzxpvU2BWfuUTMem5/s8hwe

FN2cr7ZC5deW9cR1P394OFtWVarOdvDymHntUsZeJMxGY3ad5WlNL5OBLy1aqSIk

T7p7S7ZHfFpEZ8Qx6M13E3xc27T9o+DJMPV300vjSL3sJy+vAcrIGyusQQIDAQAB

AoGAE/mwV3P2J2YINPl+zkUOY3BqRlYtMUXP/BjCSzqH7w1/xIPcPMNiBaKwlkT1

+Sa5eLCMuoSSYx0GP9fBChZOKBPScMrC/77s03U8lLDSaDPid45st8U9dQy6Id97

ny1D3+hU2NNvaVPCZYqtvsGhhLhQ3Hj7YnmbqEJN7I8pTUkCQQDRXknbOkjjm1uX

rqter6jU8r1TS9a3HpJIgbxWD+9qNZmBDJJIb7dB+6NXg3/oljJynB48LRgDlU5Y

cfwCAGlTAkEA0CdGyBRFNWaqKpLR1wugN0CPDrh4AkwSOCne64ReJiLDaLohcCjr

ASHF/ShwyQ/lX/fZfo4u/Nld3c5IO9ydmwJBAK024Muq8Nq9kY1wSP9RPNDQ8qmT

ONTPSh8KlpJtJJouNg16JRwgsPC6C20/sfbvLFV9q9YFSLTONb8ermvJg1kCQCsw

WxFck1eXK6uVtxBliyKrtIMbZ1siqY0ZsvUvC9Hh2KW8KP/6nXgop8n1QCGXuMIG

zQvjOICiIUXKbVZuWg0CQEqhaJ1xWZkxd2EuDcPr+JPBJSS/DyOOtdqNQBTpoJLz

fVkHNwwStJIU4x9/CULbRtvqedyTsIYmnfSKWZtoVJ0=

-----END RSA PRIVATE KEY-----

3.1.6. マニフェストファイルの作成

インセプションサーバから最初の BOSHサーバ(firstbosh)をデプロイする際に使用するマニフェ

ストファイル(micro_bosh.yml)を作成する。

・micro_bosh.ymlファイルを準備します

# mkdir -p ~/deployments/firstbosh

# vi ~/deployments/firstbosh/micro_bosh.yml

10COPYRIGHT FUJITSU LIMITED 2014

Page 16: Cloud founryインストール手順

以下の内容で作成します。

name: firstbosh

logging:

level: DEBUG

network:

type: dynamic

ip: 172.16.10.227

#インセプションサーバの IPアドレス

resources:

persistent_disk: 20512

cloud_properties:

instance_type: m1.large2

# VMタイプ(コンピュータオファリング)

cloud:

plugin: cloudstack

properties:

cloudstack:

endpoint: http://172.16.10.224:8080/client/api

# Cloudstackの管理サーバのアドレスに、/client/api を付与したものを指定

api_key:

QBbqiA_mGMp23w8lX1zadH_PCruxaqj55iTtQgCQst5Pd5aJ1TrXKErTX3UKIvmx4Ok5WaJZNPwY0o1Y_ORP2

A

# キーペア作成時に指定したもの

secret_access_key:

oN5z4NafX9OrwknE39f9sT_rhSrfdCa1CRuoCjO3iD214wzM4JGLIT2TjwmvBerWLuM9OOdnCEtyVpPy02rOkg

# キーペア作成時に指定したもの

default_key_name: cfmykey

# キーペア作成時に指定したキーペア名

private_key: /root/cfmykey # キーペア作成時に出力内容を保存したキーファイル名

state_timeout: 600

state_timeout_volume: 1200

stemcell_public_visibility: true

default_zone: zone01 # Zone name of your instaption server

11COPYRIGHT FUJITSU LIMITED 2014

Page 17: Cloud founryインストール手順

# Only for Basic Zone users. Delete these lines on Advanced Zone

default_security_groups: ["default"]

# TCP、UDPでの全ての通信が可能なセキュリティグループ名を[""]で括って指定

registry:

endpoint: http://admin:[email protected]:25889

# インセプションサーバの IPを指定

user: admin

password: admin

3.1.7. ソースコードの修正

(1) デバイスアタッチ処理関連

デバイスアタッチの不具合対応として、以下のソースコードの修正を行っておく。

ファイル名:~/bosh/bosh_cloudstack_cpi/lib/cloud/cloudstack/cloud.rb

コード最下部の以下の部分を修正

-----------------------------------------

def volume_device_name(device_id)

# assumes device name begins with "dev/sd" and volume_name is numeric

cloud_error("Unkown device id given") if device_id.nil?

suf f ix = ('a'..'z'). to_a[dev ice_id]

cloud_error("too many disks attached") if suffix.nil?

"/dev/ sd#{suf f ix}"

end

-----------------------------------------

↓以下に修正

-----------------------------------------

def volume_device_name(device_id)

# assumes device name begins with "dev/sd" and volume_name is numeric

cloud_error("Unkown device id given") if device_id.nil?

suf f ix = ('a'..'z'). to_a[device_id-1]

cloud_error("too many disks attached") if suffix.nil?

12COPYRIGHT FUJITSU LIMITED 2014

Page 18: Cloud founryインストール手順

"/dev/vd#{suf f ix}"

end

-----------------------------------------

(2) stemcellテンプレート VMのイメージサイズ変更

stemcellはクラウドにテンプレート登録する際に rsyncされるので、その時点でルートのサイズを決め

られます。

以下のソース修正をすることで、使用するストレージ領域の状況に合わせて stemcellテンプレート

のイメージサイズを調整することが可能です。

■ firstbosh(MicroBOSH)の VMサイズ変更方法

# vi ~/bosh/bosh_cloudstack_cpi/lib/cloud/cloudstack/cloud.rb

100行目:

# disk_size = stemcell_properties["disk"] || (1024 10)*

disk_size = stemcell_properties["disk"] || (1024 5)*

⇒ bosh micro deploy <path_to_stemcell>

■ cfのデプロイ時 VM(各 job用)のサイズ変更方法

firstboshサーバにログイン

該当ソースを検索

# find /var/vcap -name cloud.rb | grep cloudstack

/var/vcap/data/packages/director/5c21b3ba0f4303ff3a767092b55e6cf446a9b42b/..中略../cloudstack/cloud.rb

上記と同様に 100行目付近を編集

# disk_size = stemcell_properties["disk"] || (1024 10)*

disk_size = stemcell_properties["disk"] || (1024 5)*

sed で編集するとき

# sed -i -e "s/(1024 \ 10)/(1024 \ 5)/g" <cloud.rb* * のパス>

⇒ upload stemcell <path_to_stemcell>

13COPYRIGHT FUJITSU LIMITED 2014

Page 19: Cloud founryインストール手順

3.1.8. マイクロボッシュのデプロイ

(1) Proxyサーバの無効化

デプロイ処理のため、proxyの設定を一度無効にしておく。

# unset http_proxy

# unset https_proxy

(2) Micro BOSHによるデプロイ

以下のコマンドを例に、デプロイを実行する。

# cd ~/deployments

# BUNDLE_GEMFILE=~/bosh/Gemfile bundle exec bosh micro deployment firstbosh

# BUNDLE_GEMFILE=~/bosh/Gemfile bundle exec bosh micro deploy /tmp/<3.1.3.(3)で作成した stemcellファイ

ル名>

(3) firstboshのアドレスの確認

デプロイが正常に行われると、デプロイ実行用の最初のインスタンス(firstbosh)が起動される。

インスタンスの IP アドレスを /root/deployments/firstbosh/bosh_micro_deploy.logファイルの targetへの接続

ログから確認する。

(4) ターゲットの指定

上記で確認した IPを使用して、新たに起動されたインスタンスをターゲットとして指定する

# BUNDLE_GEMFILE=~/bosh/Gemfile bundle exec bosh target https://172.16.10.229:25555

※ ユーザー名/パスワードは admin/admin

※ ログインし直す場合は、

# BUNDLE_GEMFILE=~/bosh/Gemfile bundle exec bosh login

  でログインする

(5) ステータスの確認

上記でデプロイした bosh環境の状況を以下のコマンドで確認する。

14COPYRIGHT FUJITSU LIMITED 2014

Page 20: Cloud founryインストール手順

# BUNDLE_GEMFILE=~/bosh/Gemfile bundle exec bosh status

-----------------------------------------

Config

/root/.bosh_config

Director

Name firstbosh

URL https://172.16.10.230:25555

Version 1.2063.0 (release:c8e032de bosh:c8e032de)

User admin

UUID f90c0235-6a22-401a-a0b0-2e619fb8f31a

CPI cloudstack

dns enabled (domain_name: microbosh)

compiled_package_cache disabled

snapshots disabled

Deployment

not set

3.2. BOSHデプロイの準備

3.2.1. Proxyサーバの設定

環境変数へ proxyの再設定を行い、Cloudstack管理サーバ、インセプションサーバ、

Firstbosh(ターゲット)の各 IPアドレスを no_proxy環境変数へ追加して設定する

# export no_proxy=172.16.10.224,172.16.10.227,172.16.10.228,172.16.10.230,172.16.10.229,192.168.3.224

3.2.2. 不足領域の追加

次項の bosh upload release を行う際に、Firstboshの VMで領域不足エラー「Error 500001: Uploading release

archive failed. Insufficient space on BOSH director in /var/vcap/data/tmp/director/release20140910-2239-1mz1yey」が発

生するため、FirstboshVMへログインして対象ディレクトリに追加ディスクをマウントして領域の確

保を行う。

(1) 追加ストレージの準備

CloudstackGUIで追加用のボリューム(disk20gb)を作成し、FirstboshVMにアタッチしておく

15COPYRIGHT FUJITSU LIMITED 2014

Page 21: Cloud founryインストール手順

(2) FirstboshVMへのログイン

キーファイルを使用して FirstboshVMへのログインを行う。

# ssh -i cfmyke [email protected]

password:c1oudc0w

(3.1.5.で作成したキーペアを指定する)

(3)ストレージ領域の作成とマウント

以下のコマンドを例に、FirstboshVM内からアタッチしたボリュームのマウントを行う。

○マウント実行例

$ ls /dev/vd*

/dev/vda /dev/vda1 /dev/vdb /dev/vdb1 /dev/vdc

$ sudo mkfs -t ext4 /dev/vdc

mke2fs 1.41.11 (14-Mar-2010)

Filesystem label=

OS type: Linux

(略)

Creating journal (32768 blocks): done

Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 20 mounts or

180 days, whichever comes first. Use tune2fs -c or -i to override.

$ sudo ls /mnt

$ sudo mount /dev/vdc /mnt

$ sudo cp -r /var/vcap/data/tmp/ /mnt*

$ ls /mnt

director lost+found

$ ls tmp/

director

$ sudo umount /mnt

$ sudo mount /dev/vdc /var/vcap/data/tmp

$ ls /var/vcap/data/tmp

director lost+found

$ df -h

Filesystem Size Used Avail Use% Mounted on

/dev/vda1 10G 5.1G 4.5G 54% /

16COPYRIGHT FUJITSU LIMITED 2014

Page 22: Cloud founryインストール手順

none 480M 168K 480M 1% /dev

none 486M 0 486M 0% /dev/shm

none 486M 56K 486M 1% /var/run

none 486M 0 486M 0% /var/lock

none 486M 0 486M 0% /lib/init/rw

/dev/loop0 127M 7.8M 118M 7% /tmp

/dev/vdb1 30G 621M 28G 3% /var/vcap/store

/dev/vdc 20G 431M 19G 3% /var/vcap/data/tmp

3.2.3. cf-releaseの設定

(1) cf-releaseのインストール

以下のコマンドを実行し、cf-releaseのインストールを行う。

# git clone https://github.com/cloudfoundry/cf-release.git ~/cf-release

# cd ~/cf-release

(2) cf-releaseのアップロード

/root/cf-release/releases内で一番新しい cf-xxx.ymlファイルを確認して、以下のコマンドの通りに指定して

アップロードを実行する。

# BUNDLE_GEMFILE=~/bosh/Gemfile bundle exec bosh upload release releases/cf-183.yml

※時間がかなりかかる

※実行後「Release uploaded」の表示で完了。完了せず終わった場合には再実行する

3.2.4. stemcellのアップロード

以下のコマンドを例に stemcellのアップロードを行う

コマンド:BUNDLE_GEMFILE=~/bosh/Gemfile bundle exec bosh upload stemcell /tmp/<3.1.3.(3)で作成した

stemcellファイル名>

例)

# BUNDLE_GEMFILE=~/bosh/Gemfile bundle exec bosh upload stemcell /tmp/bosh-stemcell-3-cloudstack-kvm-ubuntu-

precise.tgz

Verifying stemcell...

File exists and readable OK

17COPYRIGHT FUJITSU LIMITED 2014

Page 23: Cloud founryインストール手順

Verifying tarball...

Read tarball OK

Manifest exists OK

Stemcell image file OK

Stemcell properties OK

Stemcell info

-------------

Name: bosh-cloudstack-kvm-ubuntu

Version: 3

Checking if stemcell already exists...

No

Uploading stemcell...

bosh-stemcell: 100% |ooooooooooooooooooooooooooooooooooooooooooooooooooo| 444.2MB 205.8KB/s Time:

00:36:49

Director task 3

Started update stemcell

Started update stemcell > Extracting stemcell archive. Done (00:00:22)

Started update stemcell > Verifying stemcell manifest. Done (00:00:00)

Started update stemcell > Checking if this stemcell already exists. Done (00:00:00)

Started update stemcell > Uploading stemcell bosh-cloudstack-kvm-ubuntu/2063 to the cloud. Done (00:05:18)

Started update stemcell > Save stemcell bosh-cloudstack-kvm-ubuntu/2063 (3a514c5b-1c41-471f-95ad-459ac64dfb79).

Done (00:00:01)

Done update stemcell (00:05:41)

Task 3 done

Started 2014-09-11 01:42:33 UTC

Finished 2014-09-11 01:48:14 UTC

Duration 00:05:41

Stemcell uploaded and created.

18COPYRIGHT FUJITSU LIMITED 2014

Page 24: Cloud founryインストール手順

19COPYRIGHT FUJITSU LIMITED 2014

Page 25: Cloud founryインストール手順

4. CloudFounryの展開4.1. CloudFoundryデプロイの準備

4.1.1. Cloudstackインスタンスの帯域制限の解除

起動されたインスタンスに対して Cloudstackで帯域制限が掛けられているため、全てのインスタン

スの制限を以下のコマンド実行例を参考にあらかじめ解除しておく。

(1) kvmホストにログイン

(2) インスタンスのネットワークデバイス名を確認

# cat /var/run/libvirt/qemu/i-2-21-VM.xml | grep "<target dev='vnet"

<target dev='vnet9'/>

(3) 帯域制限を確認

# tc -s qdisc | grep vnet9 -A1

qdisc htb 1: dev vnet9 root refcnt 2 r2q 10 default 1 direct_packets_stat 0

Sent 6095754871 bytes 12742204 pkt (dropped 0, overlimits 3292486 requeues 0)

--

qdisc ingress ffff: dev vnet9 parent ffff:fff1 ----------------

Sent 19413493186 bytes 19071637 pkt (dropped 3642733, overlimits 0 requeues 0)

(4) 帯域制限を解除

解除前の制限一覧:

# tc qdisc show

qdisc mq 0: dev eth1 root

qdisc mq 0: dev eth2 root

qdisc mq 0: dev eth3 root

qdisc pfifo_fast 0: dev vnet0 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1

qdisc pfifo_fast 0: dev vnet1 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1

qdisc pfifo_fast 0: dev vnet2 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1

qdisc pfifo_fast 0: dev vnet3 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1

qdisc pfifo_fast 0: dev vnet4 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1

qdisc pfifo_fast 0: dev vnet5 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1

qdisc pfifo_fast 0: dev vnet6 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1

qdisc htb 1: dev vnet7 root refcnt 2 r2q 10 default 1 direct_packets_stat 0

qdisc ingress ffff: dev vnet7 parent ffff:fff1 ----------------

qdisc pfifo_fast 0: dev vnet8 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1

20COPYRIGHT FUJITSU LIMITED 2014

Page 26: Cloud founryインストール手順

qdisc htb 1: dev vnet9 root refcnt 2 r2q 10 default 1 direct_packets_stat 0

qdisc ingress ffff: dev vnet9 parent ffff:fff1 ----------------

qdisc htb 1: dev vnet10 root refcnt 2 r2q 10 default 1 direct_packets_stat 0

qdisc ingress ffff: dev vnet10 parent ffff:fff1 ----------------

解除:

# tc qdisc del dev vnet10 root

# tc qdisc del dev vnet10 ingress

解除後の制限一覧:

# tc qdisc show

qdisc mq 0: dev eth1 root

qdisc mq 0: dev eth2 root

qdisc mq 0: dev eth3 root

qdisc pfifo_fast 0: dev vnet0 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1

qdisc pfifo_fast 0: dev vnet1 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1

qdisc pfifo_fast 0: dev vnet2 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1

qdisc pfifo_fast 0: dev vnet3 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1

qdisc pfifo_fast 0: dev vnet4 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1

qdisc pfifo_fast 0: dev vnet5 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1

qdisc pfifo_fast 0: dev vnet6 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1

qdisc htb 1: dev vnet7 root refcnt 2 r2q 10 default 1 direct_packets_stat 0

qdisc ingress ffff: dev vnet7 parent ffff:fff1 ----------------

qdisc pfifo_fast 0: dev vnet8 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1

qdisc pfifo_fast 0: dev vnet9 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1

qdisc htb 1: dev vnet10 root refcnt 2 r2q 10 default 1 direct_packets_stat 0

qdisc ingress ffff: dev vnet10 parent ffff:fff1 ----------------

(5) 解除を確認

# tc -s qdisc | grep vnet9 -A1

qdisc pfifo_fast 0: dev vnet9 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1

Sent 66374090 bytes 982435 pkt (dropped 0, overlimits 0 requeues 0)

21COPYRIGHT FUJITSU LIMITED 2014

Page 27: Cloud founryインストール手順

4.1.2. デプロイ用マニフェストの作成

以下の内容でデプロイ用のマニフェストファイル(cf.yml)を作成する。

※以下の内容はデフォルト値。追加の修正内容は以降に記載

name: cf

director_uuid: 884aab78-3b73-494c-aa6f-b7fe9b2d7e1b # UUID shown by the bosh status command ●●確認して記

述●●

releases:

- name: cf

version: 147 # Verison number of the uploded release ●● 現環境で使用しているのは 183 ●●

networks:

- name: default

type: dynamic

cloud_properties:

# Only for Basic Zone users

security_groups:

## - bosh # Securiy group which opens all TCP and UDP ports

- default # default● で全 port開けているのでそのまま指定●

## # Only for Advanced Zone users

## network_name: <network_name> # subnetwork ●無効化●

# Only for Advanced Zone users

# Network with floating IP addresses

- name: floating

type: vip

cloud_properties: {}

compilation:

22COPYRIGHT FUJITSU LIMITED 2014

Page 28: Cloud founryインストール手順

workers: 6

network: default

reuse_compilation_vms: true

cloud_properties:

instance_type: m1.medium # VM type

ephemeral_volume: Datadisk 40GB # Data disk offering name of additonal disk

update:

canaries: 1

canary_watch_time: 30000-60000

update_watch_time: 30000-60000

max_in_flight: 4

resource_pools:

- name: small

network: default

size: 8

stemcell:

name: bosh-cloudstack-kvm-ubuntu

version: latest

cloud_properties:

instance_type: m1.small # VM type

ephemeral_volume: Datadisk 40GB # Data disk offering name of additonal disk

- name: large

network: default

size: 1

stemcell:

name: bosh-cloudstack-kvm-ubuntu

version: latest

cloud_properties:

instance_type: m1.large # VM type

ephemeral_volume: Datadisk 40GB # Data disk offering name of additional disk

jobs:

- name: nats

release: cf

template:

23COPYRIGHT FUJITSU LIMITED 2014

Page 29: Cloud founryインストール手順

- nats

instances: 1

resource_pool: small

networks:

- name: default

default: [dns, gateway]

- name: syslog_aggregator

release: cf

template:

- syslog_aggregator

instances: 1

resource_pool: small

persistent_disk: 65536

networks:

- name: default

default: [dns, gateway]

- name: postgres

release: cf

template:

- postgres

instances: 1

resource_pool: small

persistent_disk: 65536

networks:

- name: default

default: [dns, gateway]

properties:

db: databases

- name: nfs_server

release: cf

template:

- debian_nfs_server

instances: 1

resource_pool: small

persistent_disk: 65536

24COPYRIGHT FUJITSU LIMITED 2014

Page 30: Cloud founryインストール手順

networks:

- name: default

default: [dns, gateway]

- name: uaa

release: cf

template:

- uaa

instances: 1

resource_pool: small

networks:

- name: default

default: [dns, gateway]

- name: cloud_controller

release: cf

template:

- cloud_controller_ng

instances: 1

resource_pool: small

networks:

- name: default

default: [dns, gateway]

properties:

ccdb: ccdb

- name: router

release: cf

template:

- gorouter

instances: 1

resource_pool: small

networks:

- name: default

default: [dns, gateway]

# Only for Advanced zone users

# You can set floating addresses to jobs

25COPYRIGHT FUJITSU LIMITED 2014

Page 31: Cloud founryインストール手順

# Acquire Public IP addresses on your Web UI before deploying

# (Don't remove default network above even if floating is added)` ` ` `

- name: floating

static_ips:

- <IP address for Router>

- name: health_manager

release: cf

template:

- health_manager_next

instances: 1

resource_pool: small

networks:

- name: default

default: [dns, gateway]

- name: dea

release: cf

template: dea_next

instances: 1

resource_pool: large

networks:

- name: default

default: [dns, gateway]

properties:

domain: your.domain.name # replace these values with your domain name

system_domain: your.domain.name

system_domain_organization: your.domain.name

app_domains:

- your.domain.name

networks:

apps: default

management: default

nats:

26COPYRIGHT FUJITSU LIMITED 2014

Page 32: Cloud founryインストール手順

address: 0.nats.default.cf.microbosh

port: 4222

user: nats

password: c1oudc0w

authorization_timeout: 5

router:

port: 8081

status:

port: 8080

user: gorouter

password: c1oudcow

dea: &dea

memory_mb: 2048

disk_mb: 20000

directory_server_protocol: http

dea_next: dea*

syslog_aggregator:

address: 0.syslog-aggregator.default.cf.microbosh

port: 54321

nfs_server:

address: 0.nfs-server.default.cf.microbosh

network: " .cf.microbosh"*

idmapd_domain: your.domain.name

debian_nfs_server:

no_root_squash: true

databases: &databases

db_scheme: postgres

address: 0.postgres.default.cf.microbosh

port: 5524

roles:

- tag: admin

27COPYRIGHT FUJITSU LIMITED 2014

Page 33: Cloud founryインストール手順

name: ccadmin

password: c1oudc0w

- tag: admin

name: uaaadmin

password: c1oudc0w

databases:

- tag: cc

name: ccdb

citext: true

- tag: uaa

name: uaadb

citext: true

ccdb: &ccdb

db_scheme: postgres

address: 0.postgres.default.cf.microbosh

port: 5524

roles:

- tag: admin

name: ccadmin

password: c1oudc0w

databases:

- tag: cc

name: ccdb

citext: true

ccdb_ng: ccdb*

uaadb:

db_scheme: postgresql

address: 0.postgres.default.cf.microbosh

port: 5524

roles:

- tag: admin

name: uaaadmin

password: c1oudc0w

databases:

- tag: uaa

28COPYRIGHT FUJITSU LIMITED 2014

Page 34: Cloud founryインストール手順

name: uaadb

citext: true

cc_api_version: v2

cc: &cc

logging_level: debug

external_host: api

srv_api_uri: http://api.your.domain.name

cc_partition: default

db_encryption_key: c1oudc0w

bootstrap_admin_email: [email protected]

bulk_api_password: c1oudc0w

uaa_resource_id: cloud_controller

staging_upload_user: uploaduser

staging_upload_password: c1oudc0w

resource_pool:

resource_directory_key: cc-resources

# Local provider when using NFS

fog_connection:

provider: Local

packages:

app_package_directory_key: cc-packages

droplets:

droplet_directory_key: cc-droplets

default_quota_definition: runaway

ccng: cc*

login:

enabled: false

uaa:

url: http://uaa.your.domain.name

spring_profiles: postgresql

no_ssl: true

catalina_opts: -Xmx768m -XX:MaxPermSize=256m

resource_id: account_manager

29COPYRIGHT FUJITSU LIMITED 2014

Page 35: Cloud founryインストール手順

jwt:

signing_key: |

-----BEGIN RSA PRIVATE KEY-----

MIICXAIBAAKBgQDHFr+KICms+tuT1OXJwhCUmR2dKVy7psa8xzElSyzqx7oJyfJ1

JZyOzToj9T5SfTIq396agbHJWVfYphNahvZ/7uMXqHxf+ZH9BL1gk9Y6kCnbM5R6

0gfwjyW1/dQPjOzn9N394zd2FJoFHwdq9Qs0wBugspULZVNRxq7veq/fzwIDAQAB

AoGBAJ8dRTQFhIllbHx4GLbpTQsWXJ6w4hZvskJKCLM/o8R4n+0W45pQ1xEiYKdA

Z/DRcnjltylRImBD8XuLL8iYOQSZXNMb1h3g5/UGbUXLmCgQLOUUlnYt34QOQm+0

KvUqfMSFBbKMsYBAoQmNdTHBaz3dZa8ON9hh/f5TT8u0OWNRAkEA5opzsIXv+52J

duc1VGyX3SwlxiE2dStW8wZqGiuLH142n6MKnkLU4ctNLiclw6BZePXFZYIK+AkE

xQ+k16je5QJBAN0TIKMPWIbbHVr5rkdUqOyezlFFWYOwnMmw/BKa1d3zp54VP/P8

+5aQ2d4sMoKEOfdWH7UqMe3FszfYFvSu5KMCQFMYeFaaEEP7Jn8rGzfQ5HQd44ek

lQJqmq6CE2BXbY/i34FuvPcKU70HEEygY6Y9d8J3o6zQ0K9SYNu+pcXt4lkCQA3h

jJQQe5uEGJTExqed7jllQ0khFJzLMx0K6tj0NeeIzAaGCQz13oo2sCdeGRHO4aDh

HH6Qlq/6UOV5wP8+GAcCQFgRCcB+hrje8hfEEefHcFpyKH+5g1Eu1k0mLrxK2zd+

4SlotYRHgPCEubokb2S1zfZDWIXW3HmggnGgM949TlY=

-----END RSA PRIVATE KEY-----

verification_key: |

-----BEGIN PUBLIC KEY-----

MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDHFr+KICms+tuT1OXJwhCUmR2d

KVy7psa8xzElSyzqx7oJyfJ1JZyOzToj9T5SfTIq396agbHJWVfYphNahvZ/7uMX

qHxf+ZH9BL1gk9Y6kCnbM5R60gfwjyW1/dQPjOzn9N394zd2FJoFHwdq9Qs0wBug

spULZVNRxq7veq/fzwIDAQAB

-----END PUBLIC KEY-----

cc:

client_secret: c1oudc0w

admin:

client_secret: c1oudc0w

batch:

username: batchuser

password: c1oudc0w

client:

autoapprove:

- cf

clients:

cf:

override: true

authorized-grant-types: password,implicit,refresh_token

30COPYRIGHT FUJITSU LIMITED 2014

Page 36: Cloud founryインストール手順

authorities: uaa.none

scope: cloud_controller.read,cloud_controller.write,openid,password.write,cloud_controller.admin,scim.read,scim.write

access-token-validity: 7200

refresh-token-validity: 1209600

scim:

users:

- admin|c1oudc0w|scim.write,scim.read,openid,cloud_controller.admin

- services|c1oudc0w|scim.write,scim.read,openid,cloud_controller.admin

31COPYRIGHT FUJITSU LIMITED 2014

Page 37: Cloud founryインストール手順

4.1.3. マニフェスト内容の修正内容

上記 4.1.2.で作成したマニフェストの内容を修正し保存する。

-----------------------------------------

修正詳細は実際に使用したファイル「cf.yml」を参照してください。

-----------------------------------------

4.2. CloudFoundryのデプロイ

4.2.1. デプロイの実行

以下のコマンドを例に、マニフェストファイルを使用してBOSHデプロイを実行します。

# BUNDLE_GEMFILE=~/bosh/Gemfile bundle exec bosh deployment ~/cf.yml

# BUNDLE_GEMFILE=~/bosh/Gemfile bundle exec bosh deploy

※デプロイされた VMの確認コマンド

# BUNDLE_GEMFILE=~/bosh/Gemfile bundle exec bosh vms

4.2.2. cfコマンドのインストール

Githubから cf-cliの debファイルをダウンロード

https://github.com/cloudfoundry/cli#downloads

「Debian64bit」

# pkgd -i cf-cli_amd64.deb

32COPYRIGHT FUJITSU LIMITED 2014

Page 38: Cloud founryインストール手順

5. DBサービス(MySQLサービス)の展開以下に DBサービスとしてMySQLサービス(cf-mysql)のデプロイ実行手順を示す。

5.1. ソースの取得

# git clone https://github.com/cloudfoundry/cf-mysql-release

# ./update

# git checkout v14

# git submodule update --recursive

5.2. Upload Releaseの実行

# BUNDLE_GEMFILE=~/bosh/Gemfile bundle exec bosh upload release releases/cf-mysql-14.yml

※実行前に、Proxyサーバの設定(http_proxy環境変数の設定)が必要

※インセプションサーバのルートディスクに、空き容量が 500MB以上必要

5.3. マニフェストの作成

MySQLサービスのデプロイ用にマニフェストファイルを作成する。

# vi ~/cf-mysql-release/cf-mysql-cloudstack.yml

nats※ の ip は bosh vms で調べて記入

lifecycle: errand ※ の jobはとりあえずコメントアウト

※デプロイ前は VMの ip が分からないため mysql/0,1 haproxy の ip設定部分はコメントアウトしてお

○ cf-mysql-cloudstack.ymlファイルの内容

name: mysql

networks:

#dynamic_ips:

# - 172.16.10.244

# - 172.16.10.245

properties:

#cluster_ips:

# - 172.16.10.244

# - 172.16.10.245

#haproxy_ips:

33COPYRIGHT FUJITSU LIMITED 2014

Page 39: Cloud founryインストール手順

# - 172.16.10.243

name: haproxy

properties:

#mysql_ips:

#- 172.16.10.244

#- 172.16.10.245

name: cf-mysql-broker

properties:

mysql_node:

#host: 172.16.10.243 <- haproxyの ip

5.4. MySQLサービスのデプロイ

(1) 仮デプロイの実行

以下のコマンドを実行し、MySQLサービスの仮デプロイを行う。

# BUNDLE_GEMFILE=~/bosh/Gemfile bundle exec bosh deployment cf-mysql-cloudstack.yml

# BUNDLE_GEMFILE=~/bosh/Gemfile bundle exec bosh deploy

(2) IPアドレスの確認

上記(1)の実行で VMが作成されたのち、エラー「cluster_ipsが設定されていない」で止まるため、新し

い VMの IPアドレスを以下のコマンドで確認する。

# BUNDLE_GEMFILE=~/bosh/Gemfile bundle exec bosh vms

(3) 再デプロイ

先ほどのコメントアウト部分に正しい IPアドレスを書き込んで再度デプロイを行う。

# vi ~/cf-mysql-release/cf-mysql-cloudstack.yml

# BUNDLE_GEMFILE=~/bosh/Gemfile bundle exec bosh deploy

デプロイ後 VMディスク使用量:

# BUNDLE_GEMFILE=~/bosh/Gemfile bundle exec bosh vms cf-cloudstack-mysql --vitals

+-------------------+---------+---------------+---------------+..+------------+------------+------------+

| Job/index | State | Resource Pool | IPs |..| System | Ephemeral | Persistent |

34COPYRIGHT FUJITSU LIMITED 2014

Page 40: Cloud founryインストール手順

| | | | |..| Disk Usage | Disk Usage | Disk Usage |

+-------------------+---------+---------------+---------------+..+------------+------------+------------+

| cf-mysql-broker/0 | running | small | 172.16.10.231 |..| 26% | 81% | n/a |

| haproxy/0 | running | small | 172.16.10.243 |..| 26% | 5% | n/a |

| mysql/0 | running | large | 172.16.10.245 |..| 26% | 13% | 28% |

| mysql/1 | running | large | 172.16.10.244 |..| 26% | 13% | 28% |

+-------------------+---------+---------------+---------------+..+------------+------------+------------+

# BUNDLE_GEMFILE=~/bosh/Gemfile bundle exec bosh vms cf-cloudstack-mysql --vitals

+-------------------+---------+---------------+---------------+..+------------+------------+------------+

| Job/index | State | Resource Pool | IPs |..| System | Ephemeral | Persistent |

| | | | |..| Disk Usage | Disk Usage | Disk Usage |

+-------------------+---------+---------------+---------------+..+------------+------------+------------+

| cf-mysql-broker/0 | running | small | 172.16.10.231 |..| 26% | 81% | n/a |

| haproxy/0 | running | small | 172.16.10.243 |..| 26% | 5% | n/a |

| mysql/0 | running | large | 172.16.10.245 |..| 26% | 13% | 28% |

| mysql/1 | running | large | 172.16.10.244 |..| 26% | 13% | 28% |

+-------------------+---------+---------------+---------------+..+------------+------------+------------+

5.5. cfサービスの設定

参照している DNSサーバに mysql-brokerの IPアドレスを「p-mysql.ssl.osscloud」で登録し、以下のコマンド

を実行して cfサービスの設定を行う。

# cf create-service-broker p-mysql admin password http://p-mysql.ssl.osscloud

# cf enable-service-access p-mysql

確認

# cf service-access

35COPYRIGHT FUJITSU LIMITED 2014