SlideShare uma empresa Scribd logo
1 de 40
CloudFoundry V2
環境構築手順書
(第 1 版)
富士通株式会社
更新履歴
Ver 更新年月日 更新者 更新内容
1 2014/09/25 若林 新規作成
i
COPYRIGHT FUJITSU LIMITED 2014
はじめに
本ドキュメントは CroudFoudy V2 環境を構築する手順を記述したドキュメントである。
本ドキュメントは以下の環境での作業を想定している。
クラウド基盤 Cloudstack Ver4.2.1
VM Ubuntu 12.04
ストレージ領域 プライマリストレージ:約 350GB
セカンダリストレージ:約 150GB
本作業で必要なユーザーの種類・権限は以下の通り。
環境 ユーザーの種類 権限 本ドキュメントで使用するユーザー
インスタンス Linux ユーザー 管理者 root
一般
本ドキュメントでは、特に指定がない限り管理者(root)を使用すること。
ii
COPYRIGHT FUJITSU LIMITED 2014
目次
目次 iii
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
iii
COPYRIGHT FUJITSU LIMITED 2014
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
iv
COPYRIGHT FUJITSU LIMITED 2014
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
1
COPYRIGHT FUJITSU LIMITED 2014
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
2
COPYRIGHT FUJITSU LIMITED 2014
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:8160584683@rep.proxy.nic.fujitsu.com:8080/
export https_proxy=http://mp067159:8160584683@rep.proxy.nic.fujitsu.com: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)を行う
3
COPYRIGHT FUJITSU LIMITED 2014
# 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:8160584683@rep.proxy.nic.fujitsu.com:8080/
# git config --global https.proxy http://mp067159:8160584683@rep.proxy.nic.fujitsu.com: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
4
COPYRIGHT FUJITSU LIMITED 2014
# 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]
5
COPYRIGHT FUJITSU LIMITED 2014
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
6
COPYRIGHT FUJITSU LIMITED 2014
(略)
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]
7
COPYRIGHT FUJITSU LIMITED 2014
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'=' | 
8
COPYRIGHT FUJITSU LIMITED 2014
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
9
COPYRIGHT FUJITSU LIMITED 2014
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
10
COPYRIGHT FUJITSU LIMITED 2014
以下の内容で作成します。
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
11
COPYRIGHT FUJITSU LIMITED 2014
# Only for Basic Zone users. Delete these lines on Advanced Zone
default_security_groups: ["default"]
# TCP、UDP での全ての通信が可能なセキュリティグループ名を[""]で括って指定
registry:
endpoint: http://admin:admin@172.16.10.227: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?
suffix = ('a'..'z').to_a[device_id]
cloud_error("too many disks attached") if suffix.nil?
"/dev/sd#{suffix}"
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?
suffix = ('a'..'z').to_a[device_id-1]
cloud_error("too many disks attached") if suffix.nil?
12
COPYRIGHT FUJITSU LIMITED 2014
"/dev/vd#{suffix}"
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>
13
COPYRIGHT FUJITSU LIMITED 2014
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 環境の状況を以下のコマンドで確認する。
14
COPYRIGHT FUJITSU LIMITED 2014
# 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 にアタッチしておく
15
COPYRIGHT FUJITSU LIMITED 2014
(2) FirstboshVM へのログイン
キーファイルを使用して FirstboshVM へのログインを行う。
# ssh -i cfmyke vcap@172.16.10.xxx
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% /
16
COPYRIGHT FUJITSU LIMITED 2014
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
17
COPYRIGHT FUJITSU LIMITED 2014
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.
18
COPYRIGHT FUJITSU LIMITED 2014
19
COPYRIGHT FUJITSU LIMITED 2014
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
20
COPYRIGHT FUJITSU LIMITED 2014
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)
21
COPYRIGHT FUJITSU LIMITED 2014
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:
22
COPYRIGHT FUJITSU LIMITED 2014
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:
23
COPYRIGHT FUJITSU LIMITED 2014
- 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
24
COPYRIGHT FUJITSU LIMITED 2014
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
25
COPYRIGHT FUJITSU LIMITED 2014
# 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:
26
COPYRIGHT FUJITSU LIMITED 2014
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
27
COPYRIGHT FUJITSU LIMITED 2014
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
28
COPYRIGHT FUJITSU LIMITED 2014
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: admin@your.domain.name
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
29
COPYRIGHT FUJITSU LIMITED 2014
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
30
COPYRIGHT FUJITSU LIMITED 2014
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
31
COPYRIGHT FUJITSU LIMITED 2014
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
32
COPYRIGHT FUJITSU LIMITED 2014
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:
33
COPYRIGHT FUJITSU LIMITED 2014
# - 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 |
34
COPYRIGHT FUJITSU LIMITED 2014
| | | | |..| 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
35
COPYRIGHT FUJITSU LIMITED 2014

Mais conteúdo relacionado

Mais procurados

マスタリング DEA/NG 第2版
マスタリング DEA/NG 第2版マスタリング DEA/NG 第2版
マスタリング DEA/NG 第2版i_yudai
 
すごいBOSHたのしく学ぼう
すごいBOSHたのしく学ぼうすごいBOSHたのしく学ぼう
すごいBOSHたのしく学ぼうi_yudai
 
Using Kubernetes on Google Container Engine
Using Kubernetes on Google Container EngineUsing Kubernetes on Google Container Engine
Using Kubernetes on Google Container EngineEtsuji Nakai
 
CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1Kotaro Noyama
 
めんどうくさくないWardenハンズオン
めんどうくさくないWardenハンズオンめんどうくさくないWardenハンズオン
めんどうくさくないWardenハンズオンi_yudai
 
cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうけるcf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうけるTakeshi Morikawa
 
Pgcon2012 ori-20120224
Pgcon2012 ori-20120224Pgcon2012 ori-20120224
Pgcon2012 ori-20120224Manabu Ori
 
Cloud Foundry V2を、もうちょっと深掘りしよう
Cloud Foundry V2を、もうちょっと深掘りしようCloud Foundry V2を、もうちょっと深掘りしよう
Cloud Foundry V2を、もうちょっと深掘りしようKazuto Kusama
 
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:ボリューム操作編
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:ボリューム操作編H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:ボリューム操作編
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:ボリューム操作編irix_jp
 
Kubernetes超入門 with java
Kubernetes超入門 with javaKubernetes超入門 with java
Kubernetes超入門 with javaYasunari Tanaka
 
GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化
GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化
GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化Shigeru Tsubota
 
Open Stack Day - Ansibleによる環境構築の自動化
Open Stack Day - Ansibleによる環境構築の自動化Open Stack Day - Ansibleによる環境構築の自動化
Open Stack Day - Ansibleによる環境構築の自動化shirou wakayama
 
自前CF環境を整えよう 2013年11月版
自前CF環境を整えよう 2013年11月版自前CF環境を整えよう 2013年11月版
自前CF環境を整えよう 2013年11月版Kazuto Kusama
 
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002Takeshi Kuramochi
 
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:ハンズオンNo1OpenStackクラウド基盤構築ハンズオンセミナー 第2日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:ハンズオンNo1Etsuji Nakai
 
【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化Yuki Kanazawa
 
Kubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Kubernetes、Flannel、CNIでWindows Container ClusterオーケストレーションKubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Kubernetes、Flannel、CNIでWindows Container ClusterオーケストレーションTakashi Kanai
 
OpenStackを一発でデプロイ – Juju/MAAS - OpenStack最新情報セミナー 2015年2月
OpenStackを一発でデプロイ – Juju/MAAS  - OpenStack最新情報セミナー 2015年2月OpenStackを一発でデプロイ – Juju/MAAS  - OpenStack最新情報セミナー 2015年2月
OpenStackを一発でデプロイ – Juju/MAAS - OpenStack最新情報セミナー 2015年2月VirtualTech Japan Inc.
 

Mais procurados (20)

マスタリング DEA/NG 第2版
マスタリング DEA/NG 第2版マスタリング DEA/NG 第2版
マスタリング DEA/NG 第2版
 
すごいBOSHたのしく学ぼう
すごいBOSHたのしく学ぼうすごいBOSHたのしく学ぼう
すごいBOSHたのしく学ぼう
 
Docker Swarm入門
Docker Swarm入門Docker Swarm入門
Docker Swarm入門
 
Using Kubernetes on Google Container Engine
Using Kubernetes on Google Container EngineUsing Kubernetes on Google Container Engine
Using Kubernetes on Google Container Engine
 
CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1
 
めんどうくさくないWardenハンズオン
めんどうくさくないWardenハンズオンめんどうくさくないWardenハンズオン
めんどうくさくないWardenハンズオン
 
cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうけるcf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
 
Pgcon2012 ori-20120224
Pgcon2012 ori-20120224Pgcon2012 ori-20120224
Pgcon2012 ori-20120224
 
Cloud Foundry V2を、もうちょっと深掘りしよう
Cloud Foundry V2を、もうちょっと深掘りしようCloud Foundry V2を、もうちょっと深掘りしよう
Cloud Foundry V2を、もうちょっと深掘りしよう
 
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:ボリューム操作編
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:ボリューム操作編H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:ボリューム操作編
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:ボリューム操作編
 
Kubernetes超入門 with java
Kubernetes超入門 with javaKubernetes超入門 with java
Kubernetes超入門 with java
 
GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化
GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化
GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化
 
Open Stack Day - Ansibleによる環境構築の自動化
Open Stack Day - Ansibleによる環境構築の自動化Open Stack Day - Ansibleによる環境構築の自動化
Open Stack Day - Ansibleによる環境構築の自動化
 
自前CF環境を整えよう 2013年11月版
自前CF環境を整えよう 2013年11月版自前CF環境を整えよう 2013年11月版
自前CF環境を整えよう 2013年11月版
 
VyOSでMPLS
VyOSでMPLSVyOSでMPLS
VyOSでMPLS
 
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
 
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:ハンズオンNo1OpenStackクラウド基盤構築ハンズオンセミナー 第2日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:ハンズオンNo1
 
【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化
 
Kubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Kubernetes、Flannel、CNIでWindows Container ClusterオーケストレーションKubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Kubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
 
OpenStackを一発でデプロイ – Juju/MAAS - OpenStack最新情報セミナー 2015年2月
OpenStackを一発でデプロイ – Juju/MAAS  - OpenStack最新情報セミナー 2015年2月OpenStackを一発でデプロイ – Juju/MAAS  - OpenStack最新情報セミナー 2015年2月
OpenStackを一発でデプロイ – Juju/MAAS - OpenStack最新情報セミナー 2015年2月
 

Destaque

OpenStack QuickStart - havana
OpenStack QuickStart - havanaOpenStack QuickStart - havana
OpenStack QuickStart - havanaHideki Saito
 
RDOを使ったOpenStack Havana - Neutron 構築編
RDOを使ったOpenStack Havana - Neutron 構築編RDOを使ったOpenStack Havana - Neutron 構築編
RDOを使ったOpenStack Havana - Neutron 構築編VirtualTech Japan Inc.
 
PCF Installation Guide
PCF Installation GuidePCF Installation Guide
PCF Installation Guideseungdon Choi
 
エンジニア向け夏期特別講座 〜 Red Hat OpenStack徹底解説! 第二部 OpenStackの内部構造
エンジニア向け夏期特別講座 〜 Red Hat OpenStack徹底解説! 第二部 OpenStackの内部構造エンジニア向け夏期特別講座 〜 Red Hat OpenStack徹底解説! 第二部 OpenStackの内部構造
エンジニア向け夏期特別講座 〜 Red Hat OpenStack徹底解説! 第二部 OpenStackの内部構造Etsuji Nakai
 
富士通におけるCloud Foundry活用の取り組み
富士通におけるCloud Foundry活用の取り組み富士通におけるCloud Foundry活用の取り組み
富士通におけるCloud Foundry活用の取り組みToshio Takeda
 
Openv switchの使い方とか
Openv switchの使い方とかOpenv switchの使い方とか
Openv switchの使い方とかkotto_hihihi
 
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No1
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No1OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No1
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No1Etsuji Nakai
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No1OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No1Etsuji Nakai
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2Etsuji Nakai
 
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2Etsuji Nakai
 
たまにはOpenShiftも触ってみよう
たまにはOpenShiftも触ってみようたまにはOpenShiftも触ってみよう
たまにはOpenShiftも触ってみようKazuto Kusama
 
Cloud Foundryで学ぶ、PaaSのしくみ講座
Cloud Foundryで学ぶ、PaaSのしくみ講座Cloud Foundryで学ぶ、PaaSのしくみ講座
Cloud Foundryで学ぶ、PaaSのしくみ講座Kazuto Kusama
 

Destaque (12)

OpenStack QuickStart - havana
OpenStack QuickStart - havanaOpenStack QuickStart - havana
OpenStack QuickStart - havana
 
RDOを使ったOpenStack Havana - Neutron 構築編
RDOを使ったOpenStack Havana - Neutron 構築編RDOを使ったOpenStack Havana - Neutron 構築編
RDOを使ったOpenStack Havana - Neutron 構築編
 
PCF Installation Guide
PCF Installation GuidePCF Installation Guide
PCF Installation Guide
 
エンジニア向け夏期特別講座 〜 Red Hat OpenStack徹底解説! 第二部 OpenStackの内部構造
エンジニア向け夏期特別講座 〜 Red Hat OpenStack徹底解説! 第二部 OpenStackの内部構造エンジニア向け夏期特別講座 〜 Red Hat OpenStack徹底解説! 第二部 OpenStackの内部構造
エンジニア向け夏期特別講座 〜 Red Hat OpenStack徹底解説! 第二部 OpenStackの内部構造
 
富士通におけるCloud Foundry活用の取り組み
富士通におけるCloud Foundry活用の取り組み富士通におけるCloud Foundry活用の取り組み
富士通におけるCloud Foundry活用の取り組み
 
Openv switchの使い方とか
Openv switchの使い方とかOpenv switchの使い方とか
Openv switchの使い方とか
 
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No1
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No1OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No1
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No1
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No1OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No1
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
 
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2
 
たまにはOpenShiftも触ってみよう
たまにはOpenShiftも触ってみようたまにはOpenShiftも触ってみよう
たまにはOpenShiftも触ってみよう
 
Cloud Foundryで学ぶ、PaaSのしくみ講座
Cloud Foundryで学ぶ、PaaSのしくみ講座Cloud Foundryで学ぶ、PaaSのしくみ講座
Cloud Foundryで学ぶ、PaaSのしくみ講座
 

Semelhante a Cloud founryインストール手順

CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1Kotaro Noyama
 
オトナのDocker入門
オトナのDocker入門オトナのDocker入門
オトナのDocker入門Tsukasa Kato
 
Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)Yasuhiro Arai
 
環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介Etsuji Nakai
 
20130803 OSC@Kyoto CloudStackユーザー会
20130803 OSC@Kyoto CloudStackユーザー会20130803 OSC@Kyoto CloudStackユーザー会
20130803 OSC@Kyoto CloudStackユーザー会samemoon
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Masahito Zembutsu
 
はじめてのコンテナーDocker & Windows & Linux
はじめてのコンテナーDocker & Windows & LinuxはじめてのコンテナーDocker & Windows & Linux
はじめてのコンテナーDocker & Windows & LinuxKazushi Kamegawa
 
Gluster fs and_swiftapi_20120429
Gluster fs and_swiftapi_20120429Gluster fs and_swiftapi_20120429
Gluster fs and_swiftapi_20120429Etsuji Nakai
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストールYasuhiro Arai
 
Getting started with Windows Containers
Getting started with Windows ContainersGetting started with Windows Containers
Getting started with Windows ContainersKazuki Takai
 
Windows Server 2019 で Container を使ってみる
Windows Server 2019 で Container を使ってみるWindows Server 2019 で Container を使ってみる
Windows Server 2019 で Container を使ってみるKazuki Takai
 
Building production server on docker
Building production server on dockerBuilding production server on docker
Building production server on dockerHiroshi Miura
 
Building production server on docker
Building production server on dockerBuilding production server on docker
Building production server on dockerHiroshi Miura
 
ownCloud 負荷測定検証レポート FUJITSU Storage ETERNUS CD10000
ownCloud 負荷測定検証レポート FUJITSU Storage ETERNUS CD10000ownCloud 負荷測定検証レポート FUJITSU Storage ETERNUS CD10000
ownCloud 負荷測定検証レポート FUJITSU Storage ETERNUS CD10000Tetsurou Yano
 
The road of Apache CloudStack Contributor (Translation and Patch)
The road of Apache CloudStack Contributor (Translation and Patch)The road of Apache CloudStack Contributor (Translation and Patch)
The road of Apache CloudStack Contributor (Translation and Patch)Kimihiko Kitase
 
LagopusとAzureとIPsecとDPDK
LagopusとAzureとIPsecとDPDKLagopusとAzureとIPsecとDPDK
LagopusとAzureとIPsecとDPDKShuheiUda
 
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Masahito Zembutsu
 

Semelhante a Cloud founryインストール手順 (20)

CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1
 
Windows Azure PHP Tips
Windows Azure PHP Tips Windows Azure PHP Tips
Windows Azure PHP Tips
 
オトナのDocker入門
オトナのDocker入門オトナのDocker入門
オトナのDocker入門
 
Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)
 
環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介
 
20130803 OSC@Kyoto CloudStackユーザー会
20130803 OSC@Kyoto CloudStackユーザー会20130803 OSC@Kyoto CloudStackユーザー会
20130803 OSC@Kyoto CloudStackユーザー会
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
 
自宅k8s/vSphere入門
自宅k8s/vSphere入門自宅k8s/vSphere入門
自宅k8s/vSphere入門
 
はじめてのコンテナーDocker & Windows & Linux
はじめてのコンテナーDocker & Windows & LinuxはじめてのコンテナーDocker & Windows & Linux
はじめてのコンテナーDocker & Windows & Linux
 
Gluster fs and_swiftapi_20120429
Gluster fs and_swiftapi_20120429Gluster fs and_swiftapi_20120429
Gluster fs and_swiftapi_20120429
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストール
 
Getting started with Windows Containers
Getting started with Windows ContainersGetting started with Windows Containers
Getting started with Windows Containers
 
Windows Server 2019 で Container を使ってみる
Windows Server 2019 で Container を使ってみるWindows Server 2019 で Container を使ってみる
Windows Server 2019 で Container を使ってみる
 
Building production server on docker
Building production server on dockerBuilding production server on docker
Building production server on docker
 
Building production server on docker
Building production server on dockerBuilding production server on docker
Building production server on docker
 
ownCloud 負荷測定検証レポート FUJITSU Storage ETERNUS CD10000
ownCloud 負荷測定検証レポート FUJITSU Storage ETERNUS CD10000ownCloud 負荷測定検証レポート FUJITSU Storage ETERNUS CD10000
ownCloud 負荷測定検証レポート FUJITSU Storage ETERNUS CD10000
 
The road of Apache CloudStack Contributor (Translation and Patch)
The road of Apache CloudStack Contributor (Translation and Patch)The road of Apache CloudStack Contributor (Translation and Patch)
The road of Apache CloudStack Contributor (Translation and Patch)
 
hbstudy37 doc
hbstudy37 dochbstudy37 doc
hbstudy37 doc
 
LagopusとAzureとIPsecとDPDK
LagopusとAzureとIPsecとDPDKLagopusとAzureとIPsecとDPDK
LagopusとAzureとIPsecとDPDK
 
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話
 

Cloud founryインストール手順

  • 1. CloudFoundry V2 環境構築手順書 (第 1 版) 富士通株式会社
  • 2. 更新履歴 Ver 更新年月日 更新者 更新内容 1 2014/09/25 若林 新規作成 i COPYRIGHT FUJITSU LIMITED 2014
  • 3. はじめに 本ドキュメントは CroudFoudy V2 環境を構築する手順を記述したドキュメントである。 本ドキュメントは以下の環境での作業を想定している。 クラウド基盤 Cloudstack Ver4.2.1 VM Ubuntu 12.04 ストレージ領域 プライマリストレージ:約 350GB セカンダリストレージ:約 150GB 本作業で必要なユーザーの種類・権限は以下の通り。 環境 ユーザーの種類 権限 本ドキュメントで使用するユーザー インスタンス Linux ユーザー 管理者 root 一般 本ドキュメントでは、特に指定がない限り管理者(root)を使用すること。 ii COPYRIGHT FUJITSU LIMITED 2014
  • 4. 目次 目次 iii 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 iii COPYRIGHT FUJITSU LIMITED 2014
  • 5. 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 iv COPYRIGHT FUJITSU LIMITED 2014
  • 6. 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 1 COPYRIGHT FUJITSU LIMITED 2014
  • 7. 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 2 COPYRIGHT FUJITSU LIMITED 2014
  • 8. 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:8160584683@rep.proxy.nic.fujitsu.com:8080/ export https_proxy=http://mp067159:8160584683@rep.proxy.nic.fujitsu.com: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)を行う 3 COPYRIGHT FUJITSU LIMITED 2014
  • 9. # 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:8160584683@rep.proxy.nic.fujitsu.com:8080/ # git config --global https.proxy http://mp067159:8160584683@rep.proxy.nic.fujitsu.com: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 4 COPYRIGHT FUJITSU LIMITED 2014
  • 10. # 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] 5 COPYRIGHT FUJITSU LIMITED 2014
  • 11. 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 6 COPYRIGHT FUJITSU LIMITED 2014
  • 12. (略) 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] 7 COPYRIGHT FUJITSU LIMITED 2014
  • 13. 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'=' | 8 COPYRIGHT FUJITSU LIMITED 2014
  • 14. 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 9 COPYRIGHT FUJITSU LIMITED 2014
  • 15. 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 10 COPYRIGHT FUJITSU LIMITED 2014
  • 16. 以下の内容で作成します。 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 11 COPYRIGHT FUJITSU LIMITED 2014
  • 17. # Only for Basic Zone users. Delete these lines on Advanced Zone default_security_groups: ["default"] # TCP、UDP での全ての通信が可能なセキュリティグループ名を[""]で括って指定 registry: endpoint: http://admin:admin@172.16.10.227: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? suffix = ('a'..'z').to_a[device_id] cloud_error("too many disks attached") if suffix.nil? "/dev/sd#{suffix}" 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? suffix = ('a'..'z').to_a[device_id-1] cloud_error("too many disks attached") if suffix.nil? 12 COPYRIGHT FUJITSU LIMITED 2014
  • 18. "/dev/vd#{suffix}" 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> 13 COPYRIGHT FUJITSU LIMITED 2014
  • 19. 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 環境の状況を以下のコマンドで確認する。 14 COPYRIGHT FUJITSU LIMITED 2014
  • 20. # 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 にアタッチしておく 15 COPYRIGHT FUJITSU LIMITED 2014
  • 21. (2) FirstboshVM へのログイン キーファイルを使用して FirstboshVM へのログインを行う。 # ssh -i cfmyke vcap@172.16.10.xxx 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% / 16 COPYRIGHT FUJITSU LIMITED 2014
  • 22. 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 17 COPYRIGHT FUJITSU LIMITED 2014
  • 23. 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. 18 COPYRIGHT FUJITSU LIMITED 2014
  • 25. 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 20 COPYRIGHT FUJITSU LIMITED 2014
  • 26. 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) 21 COPYRIGHT FUJITSU LIMITED 2014
  • 27. 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: 22 COPYRIGHT FUJITSU LIMITED 2014
  • 28. 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: 23 COPYRIGHT FUJITSU LIMITED 2014
  • 29. - 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 24 COPYRIGHT FUJITSU LIMITED 2014
  • 30. 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 25 COPYRIGHT FUJITSU LIMITED 2014
  • 31. # 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: 26 COPYRIGHT FUJITSU LIMITED 2014
  • 32. 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 27 COPYRIGHT FUJITSU LIMITED 2014
  • 33. 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 28 COPYRIGHT FUJITSU LIMITED 2014
  • 34. 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: admin@your.domain.name 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 29 COPYRIGHT FUJITSU LIMITED 2014
  • 35. 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 30 COPYRIGHT FUJITSU LIMITED 2014
  • 36. 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 31 COPYRIGHT FUJITSU LIMITED 2014
  • 37. 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 32 COPYRIGHT FUJITSU LIMITED 2014
  • 38. 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: 33 COPYRIGHT FUJITSU LIMITED 2014
  • 39. # - 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 | 34 COPYRIGHT FUJITSU LIMITED 2014
  • 40. | | | | |..| 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 35 COPYRIGHT FUJITSU LIMITED 2014