2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Ubuntu14.04とVirtualBoxを使用してBOSHからCloud Foundryの構築

Posted at

前提環境

Ubuntu 14.04 64bit

Memory: 8G 以上推奨

CPU:4コア以上推奨

はじめに

  1. Ubuntu14.04をインストールする
  2. Git、Curlをインストール
  3. VirtualBoxをインストール
  4. Cloud FoundryのCLIをインストール
  5. OS再起動

BOSHのインストール

Director動作要件

マシンに8GB以上のRAMと100GB以上の空きディスク容量

手順

BOSH CLIのインストール

http://bosh.io/docs/cli-v2-install/
  1. Download the binary (this example is using Linux):
  2. curl -Lo ./bosh https://s3.amazonaws.com/bosh-cli-artifacts/bosh-cli-3.0.1-linux-amd64
  3. Make the bosh binary executable:
  4. chmod +x ./bosh
  5. Move the binary to your PATH:
  6. sudo mv ./bosh /usr/local/bin/bosh
  7. Verify that bosh -v shows the installed version and a Succeeded message:
  8. $ bosh -v
            version 3.0.1-712bfd7-2018-03-13T23:26:42Z
        Succeeded
        </pre>
        <li>Ubuntu 14.04用の追加インストール</li>
        <pre>sudo -E apt-get install -y build-essential zlibc zlib1g-dev ruby ruby-dev openssl libxslt-dev libxml2-dev libssl-dev libreadline6 libreadline6-dev libyaml-dev libsqlite3-dev sqlite3
        </pre>
    
    

ホストOS上のVirtualBox上に構築

http://bosh.io/docs/bosh-lite/

BOSH Lite v2は、VirtualBoxで動作するDirector VM(通常はローカル)です。 CLI v2を介して管理されます。内部的にCPIはコンテナを使用してVMをエミュレートします。

IaaSを構成するための時間とリソースを費やさずに一般的なBOSHの探索
リリース(BOSH自体を含む)の開発
リリースをローカルまたはCIでテストする

VirtualBoxをゲストOS内にインストール

https://www.virtualbox.org/wiki/Downloads
から入手します。

既知の作業バージョン:

$ VBoxManage --version
5.1...

注意:VirtualBoxネットワークで問題が発生した場合は、問題202で示唆されているように、Oracle VM VirtualBox Extension Packをインストールしてください。
また、以前のバージョンでネットワーク接続のバグがあったため、VirtualBox 5.1+を使用していることを確認してください。

  1. Director VMのインストール
  2. $ git clone https://github.com/cloudfoundry/bosh-deployment ~/workspace/bosh-deployment
    $ mkdir -p ~/deployments/vbox
    $ cd ~/deployments/vbox
    Below command will try automatically create/enable Host-only network 192.168.50.0/24 (details) and NAT network 'NatNetwork' with DHCP enabled (details).
    
    $ bosh create-env ~/workspace/bosh-deployment/bosh.yml \
    --state ./state.json \
    -o ~/workspace/bosh-deployment/virtualbox/cpi.yml \
    -o ~/workspace/bosh-deployment/virtualbox/outbound-network.yml \
    -o ~/workspace/bosh-deployment/bosh-lite.yml \
    -o ~/workspace/bosh-deployment/bosh-lite-runc.yml \
    -o ~/workspace/bosh-deployment/uaa.yml \
    -o ~/workspace/bosh-deployment/credhub.yml \
    -o ~/workspace/bosh-deployment/jumpbox-user.yml \
    -o ~/workspace/bosh-deployment/misc/proxy.yml -v http_proxy=${http_proxy} -v https_proxy=${https_proxy} -v no_proxy=${no_proxy} \
    --vars-store ./creds.yml \
    -v director_name=bosh-lite \
    -v internal_ip=192.168.50.6 \
    -v internal_gw=192.168.50.1 \
    -v internal_cidr=192.168.50.0/24 \
    -v outbound_network_name=NatNetwork
    
    <li>最後に、入力する量を減らすためにbosh環境エイリアスといくつかの環境変数を作成しています。また、新しいシェルを作成する場合は、これらの変数を再作成する必要があります。</li>
    
    sudo route add -net 10.244.0.0/16 gw 192.168.50.6
    $ bosh alias-env vbox -e 192.168.50.6 --ca-cert <(bosh int ./creds.yml --path /director_ssl/ca)
    $ export BOSH_CLIENT=admin
    $ export BOSH_CLIENT_SECRET=`bosh int ./creds.yml --path /admin_password`
    
     <li>動作することを確認する</li>
    
    $ bosh -e vbox env
    Using environment '192.168.50.6' as '?'
    
    Name: ...
    User: admin
    
    Succeeded
    Optionally, set up a local route for bosh ssh commands or accessing VMs directly
    
    $ sudo route add -net 10.244.0.0/16 192.168.50.6 # Mac OS X
    $ sudo ip route add 10.244.0.0/16 via 192.168.50.6 # Linux (using iproute2 suite)
    $ sudo route add -net 10.244.0.0/16 gw 192.168.50.6 # Linux (using DEPRECATED route command)
    $ route add 10.244.0.0/16 192.168.50.6 # Windows
    

参考

* Installing Cloud Foundry Bosh on VirtualBox. https://www.youtube.com/watch?v=Kv0iKE2JaJ4

Cloud Foundryのインストール

Cloud Foundryの構築

bosh -e 192.168.50.6 --ca-cert <(bosh int ~/deployments/vbox/creds.yml --path /director_ssl/ca) alias-env vbox
export BOSH_CA_CERT=$(bosh int ~/deployments/vbox/creds.yml --path /director_ssl/ca)
export BOSH_CLIENT=admin
export BOSH_CLIENT_SECRET=$(bosh int ~/deployments/vbox/creds.yml --path /admin_password)
export BOSH_ENVIRONMENT=vbox

Cloud Foundryのデプロイ

Cloud Foundryの導入にはcf-deploymentを使用します。リポジトリはまだ初期段階ですが、簡単な手順でDiegoを使用してCloud Foundryを簡単に導入することができます。 cf-releaseとdiego-releaseの後継となるようです。

最初にリポジトリを複製しています

git clone https://github.com/cloudfoundry/cf-deployment ~/workspace/cf-deployment
cd ~/workspace/cf-deployment

bosh interpolateを使用して、stemcellのバージョンを抽出してアップロードすることができます

export STEMCELL_VERSION=$(bosh int ~/workspace/cf-deployment/cf-deployment.yml --path /stemcells/alias=default/version)
bosh -e vbox upload-stemcell https://bosh.io/d/stemcells/bosh-warden-boshlite-ubuntu-trusty-go_agent?v=$STEMCELL_VERSION

より新しいクラウド設定モデルを使用しています。これにより、IaaS固有の設定を展開マニフェストから分離することができます。

bosh -e vbox update-cloud-config ~/workspace/cf-deployment/iaas-support/bosh-lite/cloud-config.yml

最後のステップは、クラウドファウンドリリリースを作成して展開することです。これは、主にインターネット接続に応じて、時間がかかることがあります。

bosh -e vbox -d cf deploy ~/workspace/cf-deployment/cf-deployment.yml -o ~/workspace/cf-deployment/operations/bosh-lite.yml --vars-store ~/deployments/vbox/deployment-vars.yml -v system_domain=bosh-lite.com

デプロイメントを高速化するには、次の操作ファイルを追加して、プリコンパイルされたリリースを使用できます。
(■今回は使用しません■)

-o ~/workspace/cf-deployment/operations/use-compiled-releases.yml

何も失敗しなければ、Cloud Foundryを正常に導入しました! Yey!
最後のステップは、ホストからCloud Foundry Environmentにアクセスできるようにローカルルートを作成することです。

sudo s route add -net 10.244.0.0/16 gw 192.168.50.6

Cloud Foundryのクライアントのインストール

Cloud Foundryを操作するためのクライアント(CLI)をインストールします。 https://github.com/cloudfoundry/cli#downloads よりダウンロードして取り込みます。 これで、以降で、cfコマンドが使用可能になります。

Cloud Foundryの設定

まず、クラウドファウンドリにログインする必要があります。 デフォルトのユーザ名はadminで、パスワードはdeployment-vars.ymlにあります。 これは前の手順でbosh deployによって生成されたものです。 次のコマンドを実行すると、ログインしてファイルからパスワードを読み取ります。 ログインするときのドメイン名も、bosh deploy時に構築したドメイン名になります。
cf login -a https://api.bosh-lite.com --skip-ssl-validation -u admin -p $(bosh interpolate ~/deployments/vbox/deployment-vars.yml --path /cf_admin_password)
最後に、組織とスペースを作成する必要があります。
cf create-org cloudfoundry
cf target -o cloudfoundry
cf create-space development
cf target -o cloudfoundry -s development
!{width:500px}cf-target.jpg!

最初のアプリを展開する準備が整いました

Cloud Foundryへのサンプルアプリのデプロイ

テストに使用できる非常に単純なPythonアプリケーションを作成しました。
cf push時に必要なPythonのバージョンが無い場合は、cf-helloworld内のファイルを更新します。

git clone https://github.com/vchrisb/cf-helloworld ~/workspace/cf-helloworld
cd ~/workspace/cf-helloworld
cf push

これで、 http://cf-helloworld.bosh-lite.com を介してローカルにアプリにアクセスできるようになります。

!{width:500px}cfサンプルアプリ動作確認.jpg!

Dockerサポートを試すには、最初にdockerサポートを有効にして、dockerイメージをプッシュする必要があります。

cf enable-feature-flag diego_docker
cf push test-app -o cloudfoundry/test-app

Cloud Foundry環境のサスペンド

BOSH Director VMを再起動しないでください。 状態を保存できるようにするには、次のコマンドを使用してBOHSディレクターを一時停止してから再開することができます。 決して、VirtualBoxから直接操作はしないでください。(OS再インストールになります)
vboxmanage controlvm $(bosh int ~/deployments/vbox/state.json --path /current_vm_cid) savestate
vboxmanage startvm $(bosh int ~/deployments/vbox/state.json --path /current_vm_cid) --type headless

Cloud Foundry環境の削除

bosh create-env をした時のコマンドをそのまま持ってきて、bosh delete-envにして実行します。
2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?