20. Release
ソースコードをまとめたリポジトリ
– Gitで管理すること前提
– リリース番号管理も可能
Package:
Package
A
Package
B
Job A
Stemcell
VM
Package
C
Release
Agent
– ソースコードのファイルリスト
– パッケージングスクリプト
Job:
– Packageのリスト
– 設定ファイルのテンプレート(ERB)
• Deploy時にManifestの値が代入される
– 起動スクリプト
• MonitがStartするスクリプト
21. Deployment
個別の環境と構成情報
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
環境A
– Deployment Manifestと紐付いている
Deployment単位で操作する
– 構築・削除・更新
Manifest A
複数Releaseの混載も可能
設定項目の例:
Manifest B
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
環境B
環境名
使用するReleaseとStemcellのバージョン
Jobごとのリリース量(VMサイズ、数)
ネットワーク設定(セキュリティグループ、
Floating IP)
– Jobのテンプレートファイルに代入する値
–
–
–
–
22. 環境構築のライフサイクル
Getting deployment properties from direc
Unable to get properties list from directo
Compiling deployment manifest...
Cannot get current deployment informati
Please review all changes carefully
Deploying `blue.yml' to `firstbosh' (type 'y
Director task 6
# Stemcell をアップロードしておく
Preparing deployment
binding deployment (00:00:00)
bosh upload stemcell bosh-stemcell-3-cloudstack-kvm-ubuntu.tgz
binding releases (00:00:00)
開発
binding existing deployment (00:00:00)
binding resource pools (00:00:00)
# ソースコードが準備出来たらリリース番号を振る
binding stemcells (00:00:00)
# リリース番号を振るとリリース情報ファイルが作られる binding templates (00:00:00)
binding properties (00:00:00)
bosh create release --final
binding unallocated VMs (00:00:00)
binding instance networks (00:00:00)
# ソースコードをアップロード
Done
9/9 00:00:00
# リリース情報ファイルを与えると対応するソースコードがアップロードされる
Preparing package compilation
bosh upload release releases/wordpress-3.yml
Preparing DNS
binding DNS (00:00:00)
Done
1/1 00:00:00
デプロイ
# 使用するマニフェストを指定して環境切り替え
# 適宜マニフェストファイルを環境に合わせて編集しておく
Creating bound missing VMs
bosh deployment ~/deployments/blue.yml
common/3 (00:00:47)
# 環境を構成
common/1 (00:00:52)
common/0 (00:00:56)
bosh deploy
common/2 (00:01:02)
Done
4/4 00:01:02
Binding instance VMs
mysql/0 (00:00:01)
nginx/0 (00:00:01)
nfs/0 (00:00:01)
wordpress/0 (00:00:01)
Done
4/4 00:00:01