SlideShare a Scribd company logo
1 of 32
Download to read offline
すごいBOSHたのしく学ぼう
岩嵜 雄大
NTT Software Innovation Center
2012-06-21




                          NTT Software Innovation Center
もくじ




              BOSHとは

              BOSHの基礎

              BOSH環境の構築

              BOSHによるオペレーション

              まとめ




2012-06-21                 NTT Software Innovation Center   2
もくじ




              BOSHとは

              BOSHの基礎

              BOSH環境の構築

              BOSHによるオペレーション

              まとめ




2012-06-21                 NTT Software Innovation Center   3
BOSHとは




              CloudFoundryの環境構築はとても大変
               – サーバが増えると何処で何が動いているのか分からなくなる
               – 動いてるサービスのバージョン管理も煩雑


              BOSHが解決してくれること
               – 分散システム全体の構成管理を一元管理
               – サービスのバージョンも管理できる
               – VMWare謹製なのでCloudFoundryと相性が良い




                       https://github.com/cloudfoundry/bosh




2012-06-21                    NTT Software Innovation Center   4
それ ~ でできるよ


  分散システムの構成管理ツールは前からあるのでは?
  車輪の再発名になってませんか?

             • Puppet
                – 細かい作業も出来て素敵
                – でもPuppet使って実際に構成管理ツール作るのすごく大変


             • Chef
                – より新しい
                – でもChef使って実際に構成管理ツール作るのすごく大変


             • Capistorano
                – Capistorano使って実際に構成管理ツール作ったら爆発した!




2012-06-21                   NTT Software Innovation Center   5
それ ~ でできるよ


  分散システムの構成管理システムは前からあるのでは?
  車輪の再発名になってませんか?

             • Puppet
                – 大体あってる                   ロジック
                – でもPuppet使って実際に構成管理ツール作るのすごく大変

                問題はココ
                                                                デプロイ
                                                               起動・終了
             • Chef                                           ステータス監視
                – 大体あってる                                      バージョン管理

                – でもChef使って実際に構成管理ツール作るのすごく大変


             • Capistorano
                                            フレームワーク
                – Capistorano使って実際に構成管理ツール作ったら爆発した!

                                                               Puppet
                                                                Chef
                                                              Capistrano




2012-06-21                   NTT Software Innovation Center                6
それ ~ でできるよ


  分散システムの構成管理システムは前からあるのでは?
  車輪の再発名になってませんか?

             • Puppet
                – 大体あってる                   ロジック
                – でもPuppet使って実際に構成管理ツール作るのすごく大変
                                                              デプロイ
      BOSHはロジックを定形化                                          起動・終了
             • Chef                                         ステータス監視
                – 大体あってる                                    バージョン管理

                – でもChef使って実際に構成管理ツール作るのすごく大変

                    すぐに使える
             • Capistorano
                                            フレームワーク
                – Capistorano使って実際に構成管理ツール作ったら爆発した!

                                                             Puppet
                                                              Chef
                                                            Capistrano




2012-06-21                 NTT Software Innovation Center                7
それ ~ でできるよ


  分散システムの構成管理システムは前からあるのでは?
  車輪の再発名になってませんか?

             • Puppet
                – 大体あってる                   ロジック
                – でもPuppet使って実際に構成管理ツール作るのすごく大変
                                                              デプロイ
      BOSHはロジックを定形化                                          起動・終了
             • Chef                                         ステータス監視
                – 大体あってる                                    バージョン管理

                – でもChef使って実際に構成管理ツール作るのすごく大変

              すぐに使える
       • Capistorano
      (環境構築さえ出来れば)                    フレームワーク
          – Capistorano使って実際に構成管理ツール作ったら爆発した!

                                                             Puppet
                                                              Chef
                                                            Capistrano




2012-06-21                 NTT Software Innovation Center                8
もくじ




              BOSHとは

              BOSHの基礎

              BOSH環境の構築

              BOSHによるオペレーション

              まとめ




2012-06-21                 NTT Software Innovation Center   9
BOSHの基礎



                                                                                                   BOSHはそれ自身が複数のシステム
                                                                                                    からなる分散システム

                                                                                                   BOSH DirectorがVMの管理を行う
                                                                                                   BOSH CLIを用いてユーザはBOSH
                                                                                                    Directorに指示を出す
                                                                                                   CPIというインターフェース経由で
                                                                                                    BOSH DirectorはIaaSを操作し、
                                                                                                    VMの作製や起動を行う (A)
                                                                                                       – vShphereとAWSに対応
                                                                                                       – OpenStackはPistonが開発中
                                                                                                       – CloudStackはCloudBridgeで対応?
                                                                                                             •   https://groups.google.com/a/cloudfoundry.org/group/bosh-dev/browse_thread/thread/5fdec0ace4439d12?pli=1




                                                                                                   BOSH AgentはVMにインストール
                                                                                                    され、BOSH Directorの指示に従っ
      https://github.com/cloudfoundry/oss-docs/blob/master/bosh/documentation/documentation.md
                                                                                                    てサービスなどの操作を行う(B)



2012-06-21                                                                             NTT Software Innovation Center                                                                                                      10
Stemcell




                           Package    Package        Package
                              A          B              C



                                       Job A
                                                       Agent
                                     Stemcell

                                         VM


              StemcellはBOSHが生成するVMの基本イメージ
               –   実態はBOSH Agent+etc 入りのUbuntuイメージ
               –   Stemcell自体は単体では何もサービスを提供できない
               –   上にJobをデプロイして使う
               –   イメージファイルはBlobstoreに保存されている



2012-06-21                      NTT Software Innovation Center   11
Releases


     common        nats        ruby
    (Package)    (package)   (package)




                                                   common       nats           ruby       mysql
                nats (Job)                           common      nats            ruby      mysql
                               Agent                   common      nats            ruby     mysql
                Stemcell                                 common      nats            ruby     mysql
                   VM



                                                         nats          mysql_node
                                                          nats          mysql_node
                                                           nats           mysql_node
                                                             nats          mysql_node
                                                                Release
                                                                  Release
                                                                   Release
                                         Release                   Release 78


                 BOSHが扱うアプリケーションの全体構成
                       – VMにデプロイする単位=Job
                       – Jobを構成する各種サービス・プロセス=Package
                       – バージョンアップごとにReleaseとしてスナップショットを取る
                                • bosh create release するとreleasesディレクトリに保存される




2012-06-21                                             NTT Software Innovation Center                 12
Jobs

  使用するパッケージとテンプレートの一覧を定義する
     – 実態は設定ファイルのみ
     – jobsディレクトリを見よ
                                          cf-release/jobs/acm/spec
                                                                                    specファイルにJobが必要と
      ---
      name: acm                                                                 •
                                                                                    するpackageの一覧を記述す
      templates:
        acm_ctl.erb: bin/acm_ctl

                                                                                    る
        acm.yml.erb: config/acm.yml
        syslog_forwarder.conf.erb: config/syslog_forwarder.conf
      packages:
        - libpq

                                                                                    templateは設定ファイルなど
        - common
        - ruby                                                                  •
                                                                                    の生成に利用
        - syslog_aggregator
        - acm



      ---                                                                           cf-release/jobs/templates/acm.yml.erb
      <% db = properties.acmdb.databases.find { |db| db.tag == "acm" } %>
      <% role = properties.acmdb.roles.find { |role| role.tag == "admin" } %>


      pid: /var/vcap/sys/run/acm/acm.pid
      name: ACM
      port: 9090
      mbus: nats://<%= properties.nats.user %>:<%= properties.nats.password %>@<%= properties.nats.address %>:<%= properties.nats.port %>/
      logging:
        level: info
        file: /var/vcap/sys/log/acm/acm.log
        syslog: vcap.acm
      db:
        database: postgres://<%= role.name %>:<%= role.password %>@<%= properties.acmdb.address %>:<%= properties.acmdb.port %>/<%=
      db.name %>
        max_connections: 25
        pool_timeout: 2000
      basic_auth:
                                                                                                                         ERB内で
        user: <%= properties.acm.user %>                                                                               Manifestの値が
        password: <%= properties.acm.password %>
                                                                                                                      参照される(後述)

2012-06-21                                                  NTT Software Innovation Center                                                   13
Packages

  パッケージのコンパイル方法を指定する
     – packagesディレクトリを見よ

                                                 cf-release/packages/acm/spec
             ---
             name: acm                                                                            •     packgeはデプロイ時にコンパ
             dependencies:
             - libpq                                                                                    イルが行われる(キャッシュ
                                             コンパイル時の
             - ruby
                                                                                                        が無い場合)
             files:
                                             依存パッケージ
             - acm/Gemfile*
             - acm/bin/**/*                 (運用時ではない)
                                                                                                  •     コンパイルはコンパイル用の
             - acm/lib/**/*
             - acm/db/**/*                                                                              VMを生成してその上で行われ
             - acm/vendor/**/*
             - core/common/**/                                                                          る

                                                              cf-release/packages/acm/packaging                  •   packagingファイル
                                                                                                                     がコンパイルを行う
             # abort script on any command that exit with a non zero value
             set -e

                                                                                                                     スクリプトとなる
             cp -a * ${BOSH_INSTALL_TARGET}


             (
                 cd ${BOSH_INSTALL_TARGET}/acm


                 bundle_cmd=/var/vcap/packages/ruby/bin/bundle
                 libpq_dir=/var/vcap/packages/libpq


                 $bundle_cmd config build.pg --with-pg-lib=$libpq_dir/lib --with-pg-include=$libpq_dir/include
                 $bundle_cmd install --local --deployment --without development test
             )




2012-06-21                                                      NTT Software Innovation Center                                       14
srcとblob



              パッケージのソースコードはsrcディレクトリに保存しておく
              – gitのサブモジュールでもよい
              – 実際はパッチ程度しか置いてない


              .tar.gzなどの巨大なファイルはblobsディレクトリに入れる
              – releasesが肥大化するのを防ぐ
                 • 他のマシンに環境を構築する場合に便利
              – blobs内のファイルはblobstoreにアップロードする
                 • blobstoreの設定は config/final.yml もしくはconfig/private.yml
              – ローカル環境にファイルが無い場合、デプロイ時(bosh upload
                deployment)にblobstoreからダウンロードされる
              – cf-releaseではblob.cfblobl.comからファイルがダウンロードされる

                                 ---                cf-release/config/final.yml
                                 final_name: appcloud
                                 min_cli_version: 0.19.1
                                 blobstore:
                                   provider: atmos
                                   options:
                                     tag: BOSH
                                     url: https://blob.cfblob.com
                                     uid: bb6a0c89ef4048a8a0f814e25385d1c5/user1
                                 blobstore_options: deprecated




2012-06-21                            NTT Software Innovation Center               15
もくじ




              BOSHとは

              BOSHの基礎

              BOSH環境の構築

              BOSHによるオペレーション

              まとめ




2012-06-21                 NTT Software Innovation Center   16
デプロイ作業の流れ




             1. ローカルにBOSH CLI環境を構築する

             2. ローカル環境にStemcellをダウンロードする

             3. リモートのBOSHにStemcellをアップロードする

             4. ローカル環境にReleasesを作成(ダウンロード)する

             5. リモートのBOSHにReleaseをアップロードする
               –   足りないファイルはblobstoreからローカルにダウンロードされた後にアップロードされる

             6. 構成を記載したManifestファイルを作る

             7. Manifestファイルを使ってデプロイを行う




2012-06-21                      NTT Software Innovation Center     17
BOSH CLIのインストール

  リモートにあるBOSHを操作するためのコマンドラインインターフェース
     – CloudFoundryにおけるVMCのようなもの
     – ローカルに環境を作る


  インストール方法は公式ドキュメントを見よ
     –   https://github.com/cloudfoundry/oss-docs/blob/master/bosh/documentation/documentation.md

     – 「Installing BOSH Command Line Interface」
     – Ubuntu10.04で構築するとすんなりインストールできる



     # 依存パッケージのインストール                                                          # dotfileの再読み込み
     sudo apt-get install git-core build-essential libsqlite3-dev curl ¥       source ~/.bash_profile
     libmysqlclient-dev libxml2-dev libxslt-dev libpq-dev                      # デフォルトのRubyを1.9.2に設定
     # 最新版rbenv(Ruby環境構成ツール)の取得                                                rbenv global 1.9.2-p290
     cd ~                                                                      # gemとbundlerをアップデート・インストール(rehash忘れずに)
     git clone git://github.com/sstephenson/rbenv.git .rbenv                   rbenv rehash
     # rbenvにパスを通す                                                             gem update –system
     echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile            gem install bundler
     # shimsとautocompletionを有効に                                                rbenv rehash
     echo 'eval "$(rbenv init -)"' >> ~/.bash_profile                          # bosh_cliをインストール
     # ruby1.9.2をダウンロードしてインストール                                                gem install bosh_cli
     wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p290.tar.gz         rbenv rehash
     tar xvfz ruby-1.9.2-p290.tar.gz cd ruby-1.9.2-p290                        # 動いているか確認
     ./configure --prefix=$HOME/.rbenv/versions/1.9.2-p290                     bosh --version
     make
     make install




2012-06-21                                               NTT Software Innovation Center                                  18
デプロイ作業の流れ




             1. ローカルにBOSH CLI環境を構築する

             2. ローカル環境にStemcellをダウンロードする

             3. ローカル環境にReleasesを作成(作成)する

             4. リモートのBOSHにStemcellをアップロードする

             5. リモートのBOSHにReleaseをアップロードする
                         あ、BOSH環境作らないと
               –   足りないファイルはblobstoreからローカルにダウンロードされた後にアップロードされる

             6. 構成を記載したManifestファイルを作る

             7. Manifestファイルを使ってデプロイを行う




2012-06-21                      NTT Software Innovation Center     19
Micro BOSHとBOSH Deployer

  Micro BOSHとは
     – BOSH自体が分散システムなので、BOSHのデプロイにはBOSHが必要(無限ループ)
     – 単体構成(全部入り)のBOSHであるMicro BOSHでブートストラップする
             • Micro BOSHで十分使い物になる


  BOSH Deployerとは
     – Micro BOSHをデプロイするためのBOSH CLIの拡張
             • Micro BOSHは少し特殊なので専用の拡張が必要
             • 専用のStemcellをデプロイするだけで動作する
     – bosh micro コマンドでMicro BOSHを扱う

  BOSH Deployerのインストール
     – BOSHリポジトリ内のファイルをinstall

         git clone https://github.com/cloudfoundry/bosh.git
         cd bosh/deployer
         bundle install
         rake install




2012-06-21                                 NTT Software Innovation Center   20
デプロイ作業の流れ




             1. ローカルにBOSH CLI環境を構築する

             2. ローカル環境にStemcellをダウンロードする

             3. ローカル環境にReleasesを作成(作成)する

             4. リモートのBOSHにStemcellをアップロードする

             5. リモートのBOSHにReleaseをアップロードする
                    ここから先は IaaS が vSphare の場合です
               –   足りないファイルはblobstoreからローカルにダウンロードされた後にアップロードされる
                        AWSでは設定が異なります
             6. 構成を記載したManifestファイルを作る

             7. Manifestファイルを使ってデプロイを行う




2012-06-21                      NTT Software Innovation Center     21
Micro BOSHのデプロイ

  設定ファイルを書いてデプロイを実行する
     – 設定に沿って自動的にVMが新規作成され、Micro BOSHが起動する

      # Micro BOSHのデプロイ設定用ディレクトリを作る
      mkdir ~/deployments; cd ~/deployments
      mkdir micro01; cd micro01
      vi micro_bosh.yml                                  ---
                                                         name: micro01 (デプロイ名:任意)
      # 専用のStemcellをダウンロードしてくる                           network: (Micro Boshを動かすネットワークの設定)
                                                           ip: 192.168.12.132 (Micro BOSHのサーバIP)
      mkdir ~/stemcells; cd ~/stemcells
                                                           netmask: 255.255.252.0
      bosh download public stemcell ¥                      gateway: 192.168.12.1
      micro-bosh-stemcell-0.1.0.tgz                        dns:
                                                           - 192.168.3.1
      # デプロイを実行(新しいVMが自動で作成される)                            cloud_properties: (vCenter上でどのネットワークにつなげるか)
      cd ~/deployments                                       name: VM Network
      bosh micro deployment micro01                      cloud:
      bosh micro deploy ¥                                  plugin: vsphere (vSphereを使うという宣言)
      ~/stemcells/micro-bosh-stemcell-0.1.0.tgz            properties:
                                                             agent:
                                                                ntp:
                                                                 - 192.168.3.1
                                                             vcenters: (デプロイ先のvCenterの設定)
                                                                - host: 192.168.15.1
                                                                  user: Administrator
                                                                  password: ******
                                                                  datacenters:
                                                                     - name: dell1 (データセンター名)
                                                                       vm_folder: bosh_vm
                                                                       template_folder: bosh_template
                                                                       disk_path: bosh_disk
                                                                       datastore_pattern: netstor2
                                                                       persistent_datastore_pattern: netstor2
                                                                       allow_mixed_datastores: true
                   vCenter上で                                           clusters:
                                                                         - BoshTest (オプション)
               設定に合わせてフォルダを作る


2012-06-21                                  NTT Software Innovation Center                                      22
Micro BOSHのデプロイ



              動いているか確認
                   bosh micro status
                   Stemcell CID   sc-fa7998fa-6bd0-4c69-bcde-6c7fde5c653c
                   Stemcell name micro-bosh-stemcell-0.1.0
                   VM CID         vm-b2d540a2-59a7-4b83-9476-6bfdcb0a4652
                   Disk CID       1
                   Micro BOSH CID bm-82a2b61f-eee4-4d4c-afc4-9021873e50ea
                   Deployment     /home/testuser/deployments/micro01/micro_bosh.yml
                   Target         micro (http://192.168.12.132:25555) Ver: 0.4 (00000000)




              以降ではこのMicro BOSH環境を単なるBOSH環境として扱う
              – bosh(not bosh micro)コマンドを使う上では両者は同一である




2012-06-21                            NTT Software Innovation Center                        23
BOSHへのログイン



              BOSH CLIに対してリモートのBOSH環境を指定する



                   # さっき作った(Micro)BOSHをターゲットに設定
                   bosh target 192.168.12.132:25555
                   # admin/adminでログイン可能




2012-06-21                        NTT Software Innovation Center   24
Stemcellのダウンロードとアップロード


              Stemcellは基本的に公式のものをダウンロードして使う
              # 公式stemcell一覧を見てみる
              bosh public stemcells
              +-------------------------------+-------------------------------------------------------+
              | Name                          | Url                                                   |
              +-------------------------------+-------------------------------------------------------+
              | bosh-stemcell-0.3.0.tgz       | https://blob.cfblob.com/rest/objects/4e4e78bca41e1... |
              | bosh-stemcell-0.4.4.tgz       | https://blob.cfblob.com/rest/objects/4e4e78bca51e1... |
              | bosh-stemcell-0.4.7.tgz       | https://blob.cfblob.com/rest/objects/4e4e78bca21e1... |
              | bosh-stemcell-0.5.2.tgz       | https://blob.cfblob.com/rest/objects/4e4e78bca31e1... |
              | bosh-stemcell-aws-0.5.1.tgz   | https://blob.cfblob.com/rest/objects/4e4e78bca21e1... |
              | micro-bosh-stemcell-0.1.0.tgz | https://blob.cfblob.com/rest/objects/4e4e78bca51e1... |
              +-------------------------------+-------------------------------------------------------+
              To download use 'bosh download public stemcell <stemcell_name>'.For full url use --full.

              # stemcellのダウンロード(単なるtgzファイルなので適当なフォルダに置いておく)
              bosh download public stemcell bosh-stemcell-0.5.2.tgz



              BOSHへアップロード
              bosh upload stemcell bosh-stemcell-0.5.2.tgz

              # 確認してみる
              bosh stemcells

              +---------------+---------+-----------------------------------------+
              | Name          | Version | CID                                     |
              +---------------+---------+-----------------------------------------+
              | bosh-stemcell | 0.5.2   | sc-c7758729-77df-4884-b2e2-c798e6be1a37 |
              +---------------+---------+-----------------------------------------+

              Stemcells total: 1

2012-06-21                                    NTT Software Innovation Center                              25
Releasesの作製とアップロード




              今回は独自にReleaseを作らずにcf-releaseを使う
                     •   https://github.com/cloudfoundry/cf-release

               – 独自にReleaseを作りたい場合は公式ドキュメントが参考になる


              # リリースファイルをgithubからクローン
              git clone https://github.com/cloudfoundry/cf-release.git
              cd cf-release

              # リリース78をBOSHにアップロード
              bosh upload release releases/appcloud-78.yml

              # 確認してみる
              bosh releases

              +----------+----------+
              | Name     | Versions |
              +----------+----------+
              | appcloud | 78       |
              +----------+----------+

              Releases total: 1




2012-06-21                                                 NTT Software Innovation Center   26
Manifestファイルとデプロイ

  Manifestファイルを作り、どのような構成でデプロイを行うかを定義する
     – サンプルはこちら:https://github.com/cloudfoundry/oss-docs/blob/master/bosh/samples/cloudfoundry.yml
     – ただし、古いので最新リリースでは動かない



  非常に長いので要点だけ                                                        bosh status
                                                                    で確認できるUUID
      ---
      name: cf01
      director_uuid: 2f27ef11-29ea-47b9-b416-979d15b25b6c

      release:
       name: appcloud
       version: 78                       Releaseの
                                       名前とバージョン
      compilation:
       workers: 4                                                      コンパイル用VMの
       network: default                                                     設定
       cloud_properties:
         ram: 4096                                                      workers: VM数
         disk: 8096
         cpu: 2

      update:
       canaries: 1
       canary_watch_time: 3000-90000
                                                                        アップデート時の
       update_watch_time: 3000-90000                                    検証用VMの設定
       max_in_flight: 2
       max_errors: 1




2012-06-21                                    NTT Software Innovation Center                         27
Manifestファイルとデプロイ

 networks:                           自動的に
                                   払い出さないIP                  - name: deas
 - name: default                                               network: default
   subnets:                                                    size: 4                         VMのリソースプール
   - reserved:
     - 192.168.12.2 - 192.168.12.255
                                                               stemcell:
                                                                 name: bosh-stemcell
                                                                                               DEAだけは別に設定
     - 192.168.13.1 - 192.168.13.255                             version: 0.5.2
     - 192.168.14.1 - 192.168.14.9                             cloud_properties:
     - 192.168.15.1 - 192.168.15.254                             ram: 2048
     static:                                                     disk: 16384
     - 192.168.14.10 - 192.168.14.140                            cpu: 2
     range: 192.168.12.0/22                                    env:
     gateway: 192.168.12.1                                       bosh:
     dns:                                                           password: ********************
     - 192.168.3.1            IPを払い出すレンジ                            # c1oudc0w - password generated using mkpasswd -m sha-
     cloud_properties:                                       512
       name: VM Network

 resource_pools:

 - name: infrastructure
   network: default
   size: 32                 VMのリソースプール
   stemcell:
     name: bosh-stemcell
                                   共通設定
     version: 0.5.2
   cloud_properties:
     ram: 2048
     disk: 8192
     cpu: 1
   env:
     bosh:
        password: ********************
        # c1oudc0w - password generated using mkpasswd
 -m sha-512




2012-06-21                                     NTT Software Innovation Center                                                28
Manifestファイルとデプロイ


 jobs:
                                                        Manifestが書けたらデプロイで実行
 - name: debian_nfs_server
   template: debian_nfs_server                              # Manifestを指定
   instances: 1                                             bosh deployment ./cf01.yml
   resource_pool: infrastructure
   persistent_disk: 8192                                    # デプロイ
   networks:                                                bosh deploy
                                    Jobごとに
   - name: default
     static_ips:
     - 192.168.14.10               いくつVMを
 - 以下他のJobの設定
                                   作るかを指定
 …

 properties:
   domain: cloudfoundry.test

     env: {}

     networks:
       apps: default              共通設定を記述
       management: default      値はJobのtemplate内で
     nats:                           利用可能
       user: nats
       password: aaa3ij3122
       address: 192.168.14.11
       port: 4222

     以下他のpropertyの設定
 …




2012-06-21                               NTT Software Innovation Center                  29
もくじ




              BOSHとは

              BOSHの基礎

              BOSH環境の構築

              BOSHによるオペレーション

              まとめ




2012-06-21                 NTT Software Innovation Center   30
BOSHによるオペレーション



              BOSH CLIからJobやTaskの操作が可能
              Job management
                start <job> [<index>]     Start job/instance
                stop <job> [<index>]      Stop job/instance
                                          --soft     stop process only
                                          --hard     power off VM
               restart <job> [<index>]    Restart job/instance (soft stop + start)
               recreate <job> [<index>]   Recreate job/instance (hard stop + start)

              Log management
                logs <job> <index>        Fetch job (default) or agent (if option provided)
                                          logs
                                          --agent    fetch agent logs
                                          --only <filter1>[...]
                                                     only fetch logs that satisfy given
                                                     filters (defined in job spec)
                                          --all      fetch all files in the job or agent log
                                                     directory

              Task management
                tasks                     Show the list of running tasks
                tasks recent [<number>]   Show <number> recent tasks
                task [<task_id>|last]     Show task status and start tracking its output
                                          --no-cache don't cache output locally
                                          --event|--soap|--debug
                                                     different log types to track
                                          --raw      don't beautify log
               cancel task <id>           Cancel task once it reaches the next cancel
                                          checkpoint




              Manifest変更後に再度bosh deployすると変更が反映される


2012-06-21                                       NTT Software Innovation Center                31
まとめ



              BOSHを使うことでシステム全体の構成管理が楽になる
              Manifestファイルを書くのが大変だけど頑張ろう
              まだまだ不安定な部分が多いので今後に期待




              よくあるトラブル
              – デプロイ中にBOSH Agentが応答しなくなる
                 • メモリ不足の可能性あり。VMのメモリは最低4GBにしておく
              – bosh upload releaseが失敗する
                 • HDDがいっぱいになっている可能性あり。/tmpにたまってるファイルを消す
              – UAADBとCCDB周りでManifestのエラーが出る
                 • テンプレートが変わったので対応する
                 •   https://github.com/cloudfoundry/cf-release/commit/3a1abefe7352c22b4fff70dee9ae27c111ba75c8




2012-06-21                                   NTT Software Innovation Center                                       32

More Related Content

What's hot

Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Akihiro Suda
 
Cloud FoundryでDockerも.NETも。新しいDiegoの仕組み入門
Cloud FoundryでDockerも.NETも。新しいDiegoの仕組み入門Cloud FoundryでDockerも.NETも。新しいDiegoの仕組み入門
Cloud FoundryでDockerも.NETも。新しいDiegoの仕組み入門Kazuto Kusama
 
Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-Yuki Gonda
 
OpenStack超入門シリーズ Novaのディスク周りあれこれ
OpenStack超入門シリーズ Novaのディスク周りあれこれOpenStack超入門シリーズ Novaのディスク周りあれこれ
OpenStack超入門シリーズ Novaのディスク周りあれこれToru Makabe
 
DPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキングDPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキングTomoya Hibi
 
TIME_WAITに関する話
TIME_WAITに関する話TIME_WAITに関する話
TIME_WAITに関する話Takanori Sejima
 
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 VirtualTech Japan Inc.
 
HTTP/2の現状とこれから
HTTP/2の現状とこれからHTTP/2の現状とこれから
HTTP/2の現状とこれからshigeki_ohtsu
 
GPU仮想化最前線 - KVMGTとvirtio-gpu -
GPU仮想化最前線 - KVMGTとvirtio-gpu -GPU仮想化最前線 - KVMGTとvirtio-gpu -
GPU仮想化最前線 - KVMGTとvirtio-gpu -zgock
 
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介AdvancedTechNight
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Kohei Tokunaga
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)NTT DATA Technology & Innovation
 
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)NTT DATA Technology & Innovation
 
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話すWebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話すTakaya Saeki
 
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理NTT DATA Technology & Innovation
 
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...NTT DATA Technology & Innovation
 
REST API のコツ
REST API のコツREST API のコツ
REST API のコツpospome
 
InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)Takanori Sejima
 

What's hot (20)

Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
Cloud FoundryでDockerも.NETも。新しいDiegoの仕組み入門
Cloud FoundryでDockerも.NETも。新しいDiegoの仕組み入門Cloud FoundryでDockerも.NETも。新しいDiegoの仕組み入門
Cloud FoundryでDockerも.NETも。新しいDiegoの仕組み入門
 
Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-
 
OpenStack超入門シリーズ Novaのディスク周りあれこれ
OpenStack超入門シリーズ Novaのディスク周りあれこれOpenStack超入門シリーズ Novaのディスク周りあれこれ
OpenStack超入門シリーズ Novaのディスク周りあれこれ
 
DPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキングDPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキング
 
TIME_WAITに関する話
TIME_WAITに関する話TIME_WAITに関する話
TIME_WAITに関する話
 
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
 
KeycloakでAPI認可に入門する
KeycloakでAPI認可に入門するKeycloakでAPI認可に入門する
KeycloakでAPI認可に入門する
 
How to run P4 BMv2
How to run P4 BMv2How to run P4 BMv2
How to run P4 BMv2
 
HTTP/2の現状とこれから
HTTP/2の現状とこれからHTTP/2の現状とこれから
HTTP/2の現状とこれから
 
GPU仮想化最前線 - KVMGTとvirtio-gpu -
GPU仮想化最前線 - KVMGTとvirtio-gpu -GPU仮想化最前線 - KVMGTとvirtio-gpu -
GPU仮想化最前線 - KVMGTとvirtio-gpu -
 
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
 
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
 
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話すWebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話す
 
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
 
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
 
REST API のコツ
REST API のコツREST API のコツ
REST API のコツ
 
InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)
 

Viewers also liked

DC/OS 早わかり
DC/OS 早わかりDC/OS 早わかり
DC/OS 早わかりToru Makabe
 
Cloud Foundryで学ぶ、PaaSのしくみ講座
Cloud Foundryで学ぶ、PaaSのしくみ講座Cloud Foundryで学ぶ、PaaSのしくみ講座
Cloud Foundryで学ぶ、PaaSのしくみ講座Kazuto Kusama
 
Linux, Unikernel, LinuxKit: towards redefining the cloud stack.
Linux, Unikernel, LinuxKit: towards redefining the cloud stack.Linux, Unikernel, LinuxKit: towards redefining the cloud stack.
Linux, Unikernel, LinuxKit: towards redefining the cloud stack.Idit Levine
 
Advanced Docker Developer Workflows on MacOS X and Windows
Advanced Docker Developer Workflows on MacOS X and WindowsAdvanced Docker Developer Workflows on MacOS X and Windows
Advanced Docker Developer Workflows on MacOS X and WindowsAnil Madhavapeddy
 
UniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtimeUniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtimeLee Calcote
 
BOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWSBOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWSi_yudai
 
Cigna Innovation Summit
Cigna Innovation SummitCigna Innovation Summit
Cigna Innovation SummitIdit Levine
 
CFの便利機能を他の環境でも。Open Service Broker
CFの便利機能を他の環境でも。Open Service BrokerCFの便利機能を他の環境でも。Open Service Broker
CFの便利機能を他の環境でも。Open Service BrokerKazuto Kusama
 
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来Kazuto Kusama
 

Viewers also liked (10)

DC/OS 早わかり
DC/OS 早わかりDC/OS 早わかり
DC/OS 早わかり
 
Cloud Foundryで学ぶ、PaaSのしくみ講座
Cloud Foundryで学ぶ、PaaSのしくみ講座Cloud Foundryで学ぶ、PaaSのしくみ講座
Cloud Foundryで学ぶ、PaaSのしくみ講座
 
Linux, Unikernel, LinuxKit: towards redefining the cloud stack.
Linux, Unikernel, LinuxKit: towards redefining the cloud stack.Linux, Unikernel, LinuxKit: towards redefining the cloud stack.
Linux, Unikernel, LinuxKit: towards redefining the cloud stack.
 
Advanced Docker Developer Workflows on MacOS X and Windows
Advanced Docker Developer Workflows on MacOS X and WindowsAdvanced Docker Developer Workflows on MacOS X and Windows
Advanced Docker Developer Workflows on MacOS X and Windows
 
UniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtimeUniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtime
 
BOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWSBOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWS
 
Cigna Innovation Summit
Cigna Innovation SummitCigna Innovation Summit
Cigna Innovation Summit
 
CFの便利機能を他の環境でも。Open Service Broker
CFの便利機能を他の環境でも。Open Service BrokerCFの便利機能を他の環境でも。Open Service Broker
CFの便利機能を他の環境でも。Open Service Broker
 
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
 
Unik Slides
Unik SlidesUnik Slides
Unik Slides
 

Similar to すごいBOSHたのしく学ぼう

Xoopsサイト制作セミナー 20120922
Xoopsサイト制作セミナー 20120922Xoopsサイト制作セミナー 20120922
Xoopsサイト制作セミナー 20120922Toshihiro Takehara
 
Puppet本にはcisco nexusを制御する章があるよ
Puppet本にはcisco nexusを制御する章があるよPuppet本にはcisco nexusを制御する章があるよ
Puppet本にはcisco nexusを制御する章があるよHidetoshi Ochiai
 
Cloudn PaaSチームのChatOps実践
Cloudn PaaSチームのChatOps実践Cloudn PaaSチームのChatOps実践
Cloudn PaaSチームのChatOps実践Kazuto Kusama
 
Chefで始めるWindows Server構築
Chefで始めるWindows Server構築Chefで始めるWindows Server構築
Chefで始めるWindows Server構築Takashi Kanai
 
Aspnet mvc 6の今を紹介
Aspnet mvc 6の今を紹介Aspnet mvc 6の今を紹介
Aspnet mvc 6の今を紹介Makoto Nishimura
 
BOSHで始めるImmutable Infrastructure
BOSHで始めるImmutable InfrastructureBOSHで始めるImmutable Infrastructure
BOSHで始めるImmutable Infrastructurei_yudai
 
Chef Howto with Vagrant + Berkshelf
Chef Howto with Vagrant + BerkshelfChef Howto with Vagrant + Berkshelf
Chef Howto with Vagrant + BerkshelfMasahiro NAKAYAMA
 
【#VSUG DAY】Team Foundation Server を乗りこなすコツ教えます
【#VSUG DAY】Team Foundation Server を乗りこなすコツ教えます【#VSUG DAY】Team Foundation Server を乗りこなすコツ教えます
【#VSUG DAY】Team Foundation Server を乗りこなすコツ教えます智治 長沢
 
できる!KickstartとAnsible!
できる!KickstartとAnsible!できる!KickstartとAnsible!
できる!KickstartとAnsible!Wataru NOGUCHI
 
Agileツール適合化分科会(dev opsツール)
Agileツール適合化分科会(dev opsツール)Agileツール適合化分科会(dev opsツール)
Agileツール適合化分科会(dev opsツール)masanori kataoka
 
最近の PowerShell のお話
最近の PowerShell のお話最近の PowerShell のお話
最近の PowerShell のお話Kazuki Takai
 
Windows Server 2016 Essentials TP4の強化ポイントと PowerShellの使いどころ
Windows Server 2016 Essentials TP4の強化ポイントとPowerShellの使いどころWindows Server 2016 Essentials TP4の強化ポイントとPowerShellの使いどころ
Windows Server 2016 Essentials TP4の強化ポイントと PowerShellの使いどころSatoru Nasu
 
[OpenStack Days Tokyo 2015] Zabbixを用いたOCPベアメタル監視環境構築の自働化
[OpenStack Days Tokyo 2015] Zabbixを用いたOCPベアメタル監視環境構築の自働化[OpenStack Days Tokyo 2015] Zabbixを用いたOCPベアメタル監視環境構築の自働化
[OpenStack Days Tokyo 2015] Zabbixを用いたOCPベアメタル監視環境構築の自働化cloudconductor
 
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクションTakahiro Okumura
 
Hubotを使ってbotをつくろう!
Hubotを使ってbotをつくろう!Hubotを使ってbotをつくろう!
Hubotを使ってbotをつくろう!Daisuke Kikuchi
 
2014年のChefとInfrastructure as code
2014年のChefとInfrastructure as code2014年のChefとInfrastructure as code
2014年のChefとInfrastructure as codeYukihiko SAWANOBORI
 
JSUG20171027-spfingboot-k8s-ocp
JSUG20171027-spfingboot-k8s-ocpJSUG20171027-spfingboot-k8s-ocp
JSUG20171027-spfingboot-k8s-ocpNobuhiro Sue
 
Team foundation serverの新しいビルド
Team foundation serverの新しいビルドTeam foundation serverの新しいビルド
Team foundation serverの新しいビルド__Black
 
Team Foundation Serverで出てくるキーワード
Team Foundation Serverで出てくるキーワードTeam Foundation Serverで出てくるキーワード
Team Foundation Serverで出てくるキーワード__Black
 

Similar to すごいBOSHたのしく学ぼう (20)

Xoopsサイト制作セミナー 20120922
Xoopsサイト制作セミナー 20120922Xoopsサイト制作セミナー 20120922
Xoopsサイト制作セミナー 20120922
 
Puppet本にはcisco nexusを制御する章があるよ
Puppet本にはcisco nexusを制御する章があるよPuppet本にはcisco nexusを制御する章があるよ
Puppet本にはcisco nexusを制御する章があるよ
 
Cloudn PaaSチームのChatOps実践
Cloudn PaaSチームのChatOps実践Cloudn PaaSチームのChatOps実践
Cloudn PaaSチームのChatOps実践
 
Chefで始めるWindows Server構築
Chefで始めるWindows Server構築Chefで始めるWindows Server構築
Chefで始めるWindows Server構築
 
Aspnet mvc 6の今を紹介
Aspnet mvc 6の今を紹介Aspnet mvc 6の今を紹介
Aspnet mvc 6の今を紹介
 
BOSHで始めるImmutable Infrastructure
BOSHで始めるImmutable InfrastructureBOSHで始めるImmutable Infrastructure
BOSHで始めるImmutable Infrastructure
 
Chef Howto with Vagrant + Berkshelf
Chef Howto with Vagrant + BerkshelfChef Howto with Vagrant + Berkshelf
Chef Howto with Vagrant + Berkshelf
 
【#VSUG DAY】Team Foundation Server を乗りこなすコツ教えます
【#VSUG DAY】Team Foundation Server を乗りこなすコツ教えます【#VSUG DAY】Team Foundation Server を乗りこなすコツ教えます
【#VSUG DAY】Team Foundation Server を乗りこなすコツ教えます
 
できる!KickstartとAnsible!
できる!KickstartとAnsible!できる!KickstartとAnsible!
できる!KickstartとAnsible!
 
Puppet入門
Puppet入門Puppet入門
Puppet入門
 
Agileツール適合化分科会(dev opsツール)
Agileツール適合化分科会(dev opsツール)Agileツール適合化分科会(dev opsツール)
Agileツール適合化分科会(dev opsツール)
 
最近の PowerShell のお話
最近の PowerShell のお話最近の PowerShell のお話
最近の PowerShell のお話
 
Windows Server 2016 Essentials TP4の強化ポイントと PowerShellの使いどころ
Windows Server 2016 Essentials TP4の強化ポイントとPowerShellの使いどころWindows Server 2016 Essentials TP4の強化ポイントとPowerShellの使いどころ
Windows Server 2016 Essentials TP4の強化ポイントと PowerShellの使いどころ
 
[OpenStack Days Tokyo 2015] Zabbixを用いたOCPベアメタル監視環境構築の自働化
[OpenStack Days Tokyo 2015] Zabbixを用いたOCPベアメタル監視環境構築の自働化[OpenStack Days Tokyo 2015] Zabbixを用いたOCPベアメタル監視環境構築の自働化
[OpenStack Days Tokyo 2015] Zabbixを用いたOCPベアメタル監視環境構築の自働化
 
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
 
Hubotを使ってbotをつくろう!
Hubotを使ってbotをつくろう!Hubotを使ってbotをつくろう!
Hubotを使ってbotをつくろう!
 
2014年のChefとInfrastructure as code
2014年のChefとInfrastructure as code2014年のChefとInfrastructure as code
2014年のChefとInfrastructure as code
 
JSUG20171027-spfingboot-k8s-ocp
JSUG20171027-spfingboot-k8s-ocpJSUG20171027-spfingboot-k8s-ocp
JSUG20171027-spfingboot-k8s-ocp
 
Team foundation serverの新しいビルド
Team foundation serverの新しいビルドTeam foundation serverの新しいビルド
Team foundation serverの新しいビルド
 
Team Foundation Serverで出てくるキーワード
Team Foundation Serverで出てくるキーワードTeam Foundation Serverで出てくるキーワード
Team Foundation Serverで出てくるキーワード
 

More from i_yudai

Autoscaling Cloud Foundry with BOSH
Autoscaling Cloud Foundry with BOSHAutoscaling Cloud Foundry with BOSH
Autoscaling Cloud Foundry with BOSHi_yudai
 
OSTree: OSイメージとパッケージシステムの間にGitのアプローチを
OSTree: OSイメージとパッケージシステムの間にGitのアプローチをOSTree: OSイメージとパッケージシステムの間にGitのアプローチを
OSTree: OSイメージとパッケージシステムの間にGitのアプローチをi_yudai
 
Cloud Foundry Admin UI v2を使ってみた
Cloud Foundry Admin UI v2を使ってみたCloud Foundry Admin UI v2を使ってみた
Cloud Foundry Admin UI v2を使ってみたi_yudai
 
BOSH-lite で 1VM Cloud Foundry
BOSH-lite で 1VM Cloud FoundryBOSH-lite で 1VM Cloud Foundry
BOSH-lite で 1VM Cloud Foundryi_yudai
 
DevStackで始めるCloud FoundryとBOSH
DevStackで始めるCloud FoundryとBOSHDevStackで始めるCloud FoundryとBOSH
DevStackで始めるCloud FoundryとBOSHi_yudai
 
Nise BOSH in Action
Nise BOSH in ActionNise BOSH in Action
Nise BOSH in Actioni_yudai
 
めんどうくさくないWardenハンズオン
めんどうくさくないWardenハンズオンめんどうくさくないWardenハンズオン
めんどうくさくないWardenハンズオンi_yudai
 
マスタリング DEA/NG 第2版
マスタリング DEA/NG 第2版マスタリング DEA/NG 第2版
マスタリング DEA/NG 第2版i_yudai
 
すごく分かるwarden
すごく分かるwardenすごく分かるwarden
すごく分かるwardeni_yudai
 

More from i_yudai (9)

Autoscaling Cloud Foundry with BOSH
Autoscaling Cloud Foundry with BOSHAutoscaling Cloud Foundry with BOSH
Autoscaling Cloud Foundry with BOSH
 
OSTree: OSイメージとパッケージシステムの間にGitのアプローチを
OSTree: OSイメージとパッケージシステムの間にGitのアプローチをOSTree: OSイメージとパッケージシステムの間にGitのアプローチを
OSTree: OSイメージとパッケージシステムの間にGitのアプローチを
 
Cloud Foundry Admin UI v2を使ってみた
Cloud Foundry Admin UI v2を使ってみたCloud Foundry Admin UI v2を使ってみた
Cloud Foundry Admin UI v2を使ってみた
 
BOSH-lite で 1VM Cloud Foundry
BOSH-lite で 1VM Cloud FoundryBOSH-lite で 1VM Cloud Foundry
BOSH-lite で 1VM Cloud Foundry
 
DevStackで始めるCloud FoundryとBOSH
DevStackで始めるCloud FoundryとBOSHDevStackで始めるCloud FoundryとBOSH
DevStackで始めるCloud FoundryとBOSH
 
Nise BOSH in Action
Nise BOSH in ActionNise BOSH in Action
Nise BOSH in Action
 
めんどうくさくないWardenハンズオン
めんどうくさくないWardenハンズオンめんどうくさくないWardenハンズオン
めんどうくさくないWardenハンズオン
 
マスタリング DEA/NG 第2版
マスタリング DEA/NG 第2版マスタリング DEA/NG 第2版
マスタリング DEA/NG 第2版
 
すごく分かるwarden
すごく分かるwardenすごく分かるwarden
すごく分かるwarden
 

Recently uploaded

クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 

Recently uploaded (8)

クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 

すごいBOSHたのしく学ぼう

  • 1. すごいBOSHたのしく学ぼう 岩嵜 雄大 NTT Software Innovation Center 2012-06-21 NTT Software Innovation Center
  • 2. もくじ  BOSHとは  BOSHの基礎  BOSH環境の構築  BOSHによるオペレーション  まとめ 2012-06-21 NTT Software Innovation Center 2
  • 3. もくじ  BOSHとは  BOSHの基礎  BOSH環境の構築  BOSHによるオペレーション  まとめ 2012-06-21 NTT Software Innovation Center 3
  • 4. BOSHとは  CloudFoundryの環境構築はとても大変 – サーバが増えると何処で何が動いているのか分からなくなる – 動いてるサービスのバージョン管理も煩雑  BOSHが解決してくれること – 分散システム全体の構成管理を一元管理 – サービスのバージョンも管理できる – VMWare謹製なのでCloudFoundryと相性が良い https://github.com/cloudfoundry/bosh 2012-06-21 NTT Software Innovation Center 4
  • 5. それ ~ でできるよ  分散システムの構成管理ツールは前からあるのでは?  車輪の再発名になってませんか? • Puppet – 細かい作業も出来て素敵 – でもPuppet使って実際に構成管理ツール作るのすごく大変 • Chef – より新しい – でもChef使って実際に構成管理ツール作るのすごく大変 • Capistorano – Capistorano使って実際に構成管理ツール作ったら爆発した! 2012-06-21 NTT Software Innovation Center 5
  • 6. それ ~ でできるよ  分散システムの構成管理システムは前からあるのでは?  車輪の再発名になってませんか? • Puppet – 大体あってる ロジック – でもPuppet使って実際に構成管理ツール作るのすごく大変 問題はココ デプロイ 起動・終了 • Chef ステータス監視 – 大体あってる バージョン管理 – でもChef使って実際に構成管理ツール作るのすごく大変 • Capistorano フレームワーク – Capistorano使って実際に構成管理ツール作ったら爆発した! Puppet Chef Capistrano 2012-06-21 NTT Software Innovation Center 6
  • 7. それ ~ でできるよ  分散システムの構成管理システムは前からあるのでは?  車輪の再発名になってませんか? • Puppet – 大体あってる ロジック – でもPuppet使って実際に構成管理ツール作るのすごく大変 デプロイ BOSHはロジックを定形化 起動・終了 • Chef ステータス監視 – 大体あってる バージョン管理 – でもChef使って実際に構成管理ツール作るのすごく大変 すぐに使える • Capistorano フレームワーク – Capistorano使って実際に構成管理ツール作ったら爆発した! Puppet Chef Capistrano 2012-06-21 NTT Software Innovation Center 7
  • 8. それ ~ でできるよ  分散システムの構成管理システムは前からあるのでは?  車輪の再発名になってませんか? • Puppet – 大体あってる ロジック – でもPuppet使って実際に構成管理ツール作るのすごく大変 デプロイ BOSHはロジックを定形化 起動・終了 • Chef ステータス監視 – 大体あってる バージョン管理 – でもChef使って実際に構成管理ツール作るのすごく大変 すぐに使える • Capistorano (環境構築さえ出来れば) フレームワーク – Capistorano使って実際に構成管理ツール作ったら爆発した! Puppet Chef Capistrano 2012-06-21 NTT Software Innovation Center 8
  • 9. もくじ  BOSHとは  BOSHの基礎  BOSH環境の構築  BOSHによるオペレーション  まとめ 2012-06-21 NTT Software Innovation Center 9
  • 10. BOSHの基礎  BOSHはそれ自身が複数のシステム からなる分散システム  BOSH DirectorがVMの管理を行う  BOSH CLIを用いてユーザはBOSH Directorに指示を出す  CPIというインターフェース経由で BOSH DirectorはIaaSを操作し、 VMの作製や起動を行う (A) – vShphereとAWSに対応 – OpenStackはPistonが開発中 – CloudStackはCloudBridgeで対応? • https://groups.google.com/a/cloudfoundry.org/group/bosh-dev/browse_thread/thread/5fdec0ace4439d12?pli=1  BOSH AgentはVMにインストール され、BOSH Directorの指示に従っ https://github.com/cloudfoundry/oss-docs/blob/master/bosh/documentation/documentation.md てサービスなどの操作を行う(B) 2012-06-21 NTT Software Innovation Center 10
  • 11. Stemcell Package Package Package A B C Job A Agent Stemcell VM  StemcellはBOSHが生成するVMの基本イメージ – 実態はBOSH Agent+etc 入りのUbuntuイメージ – Stemcell自体は単体では何もサービスを提供できない – 上にJobをデプロイして使う – イメージファイルはBlobstoreに保存されている 2012-06-21 NTT Software Innovation Center 11
  • 12. Releases common nats ruby (Package) (package) (package) common nats ruby mysql nats (Job) common nats ruby mysql Agent common nats ruby mysql Stemcell common nats ruby mysql VM nats mysql_node nats mysql_node nats mysql_node nats mysql_node Release Release Release Release Release 78  BOSHが扱うアプリケーションの全体構成 – VMにデプロイする単位=Job – Jobを構成する各種サービス・プロセス=Package – バージョンアップごとにReleaseとしてスナップショットを取る • bosh create release するとreleasesディレクトリに保存される 2012-06-21 NTT Software Innovation Center 12
  • 13. Jobs  使用するパッケージとテンプレートの一覧を定義する – 実態は設定ファイルのみ – jobsディレクトリを見よ cf-release/jobs/acm/spec specファイルにJobが必要と --- name: acm • するpackageの一覧を記述す templates: acm_ctl.erb: bin/acm_ctl る acm.yml.erb: config/acm.yml syslog_forwarder.conf.erb: config/syslog_forwarder.conf packages: - libpq templateは設定ファイルなど - common - ruby • の生成に利用 - syslog_aggregator - acm --- cf-release/jobs/templates/acm.yml.erb <% db = properties.acmdb.databases.find { |db| db.tag == "acm" } %> <% role = properties.acmdb.roles.find { |role| role.tag == "admin" } %> pid: /var/vcap/sys/run/acm/acm.pid name: ACM port: 9090 mbus: nats://<%= properties.nats.user %>:<%= properties.nats.password %>@<%= properties.nats.address %>:<%= properties.nats.port %>/ logging: level: info file: /var/vcap/sys/log/acm/acm.log syslog: vcap.acm db: database: postgres://<%= role.name %>:<%= role.password %>@<%= properties.acmdb.address %>:<%= properties.acmdb.port %>/<%= db.name %> max_connections: 25 pool_timeout: 2000 basic_auth: ERB内で user: <%= properties.acm.user %> Manifestの値が password: <%= properties.acm.password %> 参照される(後述) 2012-06-21 NTT Software Innovation Center 13
  • 14. Packages  パッケージのコンパイル方法を指定する – packagesディレクトリを見よ cf-release/packages/acm/spec --- name: acm • packgeはデプロイ時にコンパ dependencies: - libpq イルが行われる(キャッシュ コンパイル時の - ruby が無い場合) files: 依存パッケージ - acm/Gemfile* - acm/bin/**/* (運用時ではない) • コンパイルはコンパイル用の - acm/lib/**/* - acm/db/**/* VMを生成してその上で行われ - acm/vendor/**/* - core/common/**/ る cf-release/packages/acm/packaging • packagingファイル がコンパイルを行う # abort script on any command that exit with a non zero value set -e スクリプトとなる cp -a * ${BOSH_INSTALL_TARGET} ( cd ${BOSH_INSTALL_TARGET}/acm bundle_cmd=/var/vcap/packages/ruby/bin/bundle libpq_dir=/var/vcap/packages/libpq $bundle_cmd config build.pg --with-pg-lib=$libpq_dir/lib --with-pg-include=$libpq_dir/include $bundle_cmd install --local --deployment --without development test ) 2012-06-21 NTT Software Innovation Center 14
  • 15. srcとblob  パッケージのソースコードはsrcディレクトリに保存しておく – gitのサブモジュールでもよい – 実際はパッチ程度しか置いてない  .tar.gzなどの巨大なファイルはblobsディレクトリに入れる – releasesが肥大化するのを防ぐ • 他のマシンに環境を構築する場合に便利 – blobs内のファイルはblobstoreにアップロードする • blobstoreの設定は config/final.yml もしくはconfig/private.yml – ローカル環境にファイルが無い場合、デプロイ時(bosh upload deployment)にblobstoreからダウンロードされる – cf-releaseではblob.cfblobl.comからファイルがダウンロードされる --- cf-release/config/final.yml final_name: appcloud min_cli_version: 0.19.1 blobstore: provider: atmos options: tag: BOSH url: https://blob.cfblob.com uid: bb6a0c89ef4048a8a0f814e25385d1c5/user1 blobstore_options: deprecated 2012-06-21 NTT Software Innovation Center 15
  • 16. もくじ  BOSHとは  BOSHの基礎  BOSH環境の構築  BOSHによるオペレーション  まとめ 2012-06-21 NTT Software Innovation Center 16
  • 17. デプロイ作業の流れ 1. ローカルにBOSH CLI環境を構築する 2. ローカル環境にStemcellをダウンロードする 3. リモートのBOSHにStemcellをアップロードする 4. ローカル環境にReleasesを作成(ダウンロード)する 5. リモートのBOSHにReleaseをアップロードする – 足りないファイルはblobstoreからローカルにダウンロードされた後にアップロードされる 6. 構成を記載したManifestファイルを作る 7. Manifestファイルを使ってデプロイを行う 2012-06-21 NTT Software Innovation Center 17
  • 18. BOSH CLIのインストール  リモートにあるBOSHを操作するためのコマンドラインインターフェース – CloudFoundryにおけるVMCのようなもの – ローカルに環境を作る  インストール方法は公式ドキュメントを見よ – https://github.com/cloudfoundry/oss-docs/blob/master/bosh/documentation/documentation.md – 「Installing BOSH Command Line Interface」 – Ubuntu10.04で構築するとすんなりインストールできる # 依存パッケージのインストール # dotfileの再読み込み sudo apt-get install git-core build-essential libsqlite3-dev curl ¥ source ~/.bash_profile libmysqlclient-dev libxml2-dev libxslt-dev libpq-dev # デフォルトのRubyを1.9.2に設定 # 最新版rbenv(Ruby環境構成ツール)の取得 rbenv global 1.9.2-p290 cd ~ # gemとbundlerをアップデート・インストール(rehash忘れずに) git clone git://github.com/sstephenson/rbenv.git .rbenv rbenv rehash # rbenvにパスを通す gem update –system echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile gem install bundler # shimsとautocompletionを有効に rbenv rehash echo 'eval "$(rbenv init -)"' >> ~/.bash_profile # bosh_cliをインストール # ruby1.9.2をダウンロードしてインストール gem install bosh_cli wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p290.tar.gz rbenv rehash tar xvfz ruby-1.9.2-p290.tar.gz cd ruby-1.9.2-p290 # 動いているか確認 ./configure --prefix=$HOME/.rbenv/versions/1.9.2-p290 bosh --version make make install 2012-06-21 NTT Software Innovation Center 18
  • 19. デプロイ作業の流れ 1. ローカルにBOSH CLI環境を構築する 2. ローカル環境にStemcellをダウンロードする 3. ローカル環境にReleasesを作成(作成)する 4. リモートのBOSHにStemcellをアップロードする 5. リモートのBOSHにReleaseをアップロードする あ、BOSH環境作らないと – 足りないファイルはblobstoreからローカルにダウンロードされた後にアップロードされる 6. 構成を記載したManifestファイルを作る 7. Manifestファイルを使ってデプロイを行う 2012-06-21 NTT Software Innovation Center 19
  • 20. Micro BOSHとBOSH Deployer  Micro BOSHとは – BOSH自体が分散システムなので、BOSHのデプロイにはBOSHが必要(無限ループ) – 単体構成(全部入り)のBOSHであるMicro BOSHでブートストラップする • Micro BOSHで十分使い物になる  BOSH Deployerとは – Micro BOSHをデプロイするためのBOSH CLIの拡張 • Micro BOSHは少し特殊なので専用の拡張が必要 • 専用のStemcellをデプロイするだけで動作する – bosh micro コマンドでMicro BOSHを扱う  BOSH Deployerのインストール – BOSHリポジトリ内のファイルをinstall git clone https://github.com/cloudfoundry/bosh.git cd bosh/deployer bundle install rake install 2012-06-21 NTT Software Innovation Center 20
  • 21. デプロイ作業の流れ 1. ローカルにBOSH CLI環境を構築する 2. ローカル環境にStemcellをダウンロードする 3. ローカル環境にReleasesを作成(作成)する 4. リモートのBOSHにStemcellをアップロードする 5. リモートのBOSHにReleaseをアップロードする ここから先は IaaS が vSphare の場合です – 足りないファイルはblobstoreからローカルにダウンロードされた後にアップロードされる AWSでは設定が異なります 6. 構成を記載したManifestファイルを作る 7. Manifestファイルを使ってデプロイを行う 2012-06-21 NTT Software Innovation Center 21
  • 22. Micro BOSHのデプロイ  設定ファイルを書いてデプロイを実行する – 設定に沿って自動的にVMが新規作成され、Micro BOSHが起動する # Micro BOSHのデプロイ設定用ディレクトリを作る mkdir ~/deployments; cd ~/deployments mkdir micro01; cd micro01 vi micro_bosh.yml --- name: micro01 (デプロイ名:任意) # 専用のStemcellをダウンロードしてくる network: (Micro Boshを動かすネットワークの設定) ip: 192.168.12.132 (Micro BOSHのサーバIP) mkdir ~/stemcells; cd ~/stemcells netmask: 255.255.252.0 bosh download public stemcell ¥ gateway: 192.168.12.1 micro-bosh-stemcell-0.1.0.tgz dns: - 192.168.3.1 # デプロイを実行(新しいVMが自動で作成される) cloud_properties: (vCenter上でどのネットワークにつなげるか) cd ~/deployments name: VM Network bosh micro deployment micro01 cloud: bosh micro deploy ¥ plugin: vsphere (vSphereを使うという宣言) ~/stemcells/micro-bosh-stemcell-0.1.0.tgz properties: agent: ntp: - 192.168.3.1 vcenters: (デプロイ先のvCenterの設定) - host: 192.168.15.1 user: Administrator password: ****** datacenters: - name: dell1 (データセンター名) vm_folder: bosh_vm template_folder: bosh_template disk_path: bosh_disk datastore_pattern: netstor2 persistent_datastore_pattern: netstor2 allow_mixed_datastores: true vCenter上で clusters: - BoshTest (オプション) 設定に合わせてフォルダを作る 2012-06-21 NTT Software Innovation Center 22
  • 23. Micro BOSHのデプロイ  動いているか確認 bosh micro status Stemcell CID sc-fa7998fa-6bd0-4c69-bcde-6c7fde5c653c Stemcell name micro-bosh-stemcell-0.1.0 VM CID vm-b2d540a2-59a7-4b83-9476-6bfdcb0a4652 Disk CID 1 Micro BOSH CID bm-82a2b61f-eee4-4d4c-afc4-9021873e50ea Deployment /home/testuser/deployments/micro01/micro_bosh.yml Target micro (http://192.168.12.132:25555) Ver: 0.4 (00000000)  以降ではこのMicro BOSH環境を単なるBOSH環境として扱う – bosh(not bosh micro)コマンドを使う上では両者は同一である 2012-06-21 NTT Software Innovation Center 23
  • 24. BOSHへのログイン  BOSH CLIに対してリモートのBOSH環境を指定する # さっき作った(Micro)BOSHをターゲットに設定 bosh target 192.168.12.132:25555 # admin/adminでログイン可能 2012-06-21 NTT Software Innovation Center 24
  • 25. Stemcellのダウンロードとアップロード  Stemcellは基本的に公式のものをダウンロードして使う # 公式stemcell一覧を見てみる bosh public stemcells +-------------------------------+-------------------------------------------------------+ | Name | Url | +-------------------------------+-------------------------------------------------------+ | bosh-stemcell-0.3.0.tgz | https://blob.cfblob.com/rest/objects/4e4e78bca41e1... | | bosh-stemcell-0.4.4.tgz | https://blob.cfblob.com/rest/objects/4e4e78bca51e1... | | bosh-stemcell-0.4.7.tgz | https://blob.cfblob.com/rest/objects/4e4e78bca21e1... | | bosh-stemcell-0.5.2.tgz | https://blob.cfblob.com/rest/objects/4e4e78bca31e1... | | bosh-stemcell-aws-0.5.1.tgz | https://blob.cfblob.com/rest/objects/4e4e78bca21e1... | | micro-bosh-stemcell-0.1.0.tgz | https://blob.cfblob.com/rest/objects/4e4e78bca51e1... | +-------------------------------+-------------------------------------------------------+ To download use 'bosh download public stemcell <stemcell_name>'.For full url use --full. # stemcellのダウンロード(単なるtgzファイルなので適当なフォルダに置いておく) bosh download public stemcell bosh-stemcell-0.5.2.tgz  BOSHへアップロード bosh upload stemcell bosh-stemcell-0.5.2.tgz # 確認してみる bosh stemcells +---------------+---------+-----------------------------------------+ | Name | Version | CID | +---------------+---------+-----------------------------------------+ | bosh-stemcell | 0.5.2 | sc-c7758729-77df-4884-b2e2-c798e6be1a37 | +---------------+---------+-----------------------------------------+ Stemcells total: 1 2012-06-21 NTT Software Innovation Center 25
  • 26. Releasesの作製とアップロード  今回は独自にReleaseを作らずにcf-releaseを使う • https://github.com/cloudfoundry/cf-release – 独自にReleaseを作りたい場合は公式ドキュメントが参考になる # リリースファイルをgithubからクローン git clone https://github.com/cloudfoundry/cf-release.git cd cf-release # リリース78をBOSHにアップロード bosh upload release releases/appcloud-78.yml # 確認してみる bosh releases +----------+----------+ | Name | Versions | +----------+----------+ | appcloud | 78 | +----------+----------+ Releases total: 1 2012-06-21 NTT Software Innovation Center 26
  • 27. Manifestファイルとデプロイ  Manifestファイルを作り、どのような構成でデプロイを行うかを定義する – サンプルはこちら:https://github.com/cloudfoundry/oss-docs/blob/master/bosh/samples/cloudfoundry.yml – ただし、古いので最新リリースでは動かない  非常に長いので要点だけ bosh status で確認できるUUID --- name: cf01 director_uuid: 2f27ef11-29ea-47b9-b416-979d15b25b6c release: name: appcloud version: 78 Releaseの 名前とバージョン compilation: workers: 4 コンパイル用VMの network: default 設定 cloud_properties: ram: 4096 workers: VM数 disk: 8096 cpu: 2 update: canaries: 1 canary_watch_time: 3000-90000 アップデート時の update_watch_time: 3000-90000 検証用VMの設定 max_in_flight: 2 max_errors: 1 2012-06-21 NTT Software Innovation Center 27
  • 28. Manifestファイルとデプロイ networks: 自動的に 払い出さないIP - name: deas - name: default network: default subnets: size: 4 VMのリソースプール - reserved: - 192.168.12.2 - 192.168.12.255 stemcell: name: bosh-stemcell DEAだけは別に設定 - 192.168.13.1 - 192.168.13.255 version: 0.5.2 - 192.168.14.1 - 192.168.14.9 cloud_properties: - 192.168.15.1 - 192.168.15.254 ram: 2048 static: disk: 16384 - 192.168.14.10 - 192.168.14.140 cpu: 2 range: 192.168.12.0/22 env: gateway: 192.168.12.1 bosh: dns: password: ******************** - 192.168.3.1 IPを払い出すレンジ # c1oudc0w - password generated using mkpasswd -m sha- cloud_properties: 512 name: VM Network resource_pools: - name: infrastructure network: default size: 32 VMのリソースプール stemcell: name: bosh-stemcell 共通設定 version: 0.5.2 cloud_properties: ram: 2048 disk: 8192 cpu: 1 env: bosh: password: ******************** # c1oudc0w - password generated using mkpasswd -m sha-512 2012-06-21 NTT Software Innovation Center 28
  • 29. Manifestファイルとデプロイ jobs:  Manifestが書けたらデプロイで実行 - name: debian_nfs_server template: debian_nfs_server # Manifestを指定 instances: 1 bosh deployment ./cf01.yml resource_pool: infrastructure persistent_disk: 8192 # デプロイ networks: bosh deploy Jobごとに - name: default static_ips: - 192.168.14.10 いくつVMを - 以下他のJobの設定 作るかを指定 … properties: domain: cloudfoundry.test env: {} networks: apps: default 共通設定を記述 management: default 値はJobのtemplate内で nats: 利用可能 user: nats password: aaa3ij3122 address: 192.168.14.11 port: 4222 以下他のpropertyの設定 … 2012-06-21 NTT Software Innovation Center 29
  • 30. もくじ  BOSHとは  BOSHの基礎  BOSH環境の構築  BOSHによるオペレーション  まとめ 2012-06-21 NTT Software Innovation Center 30
  • 31. BOSHによるオペレーション  BOSH CLIからJobやTaskの操作が可能 Job management start <job> [<index>] Start job/instance stop <job> [<index>] Stop job/instance --soft stop process only --hard power off VM restart <job> [<index>] Restart job/instance (soft stop + start) recreate <job> [<index>] Recreate job/instance (hard stop + start) Log management logs <job> <index> Fetch job (default) or agent (if option provided) logs --agent fetch agent logs --only <filter1>[...] only fetch logs that satisfy given filters (defined in job spec) --all fetch all files in the job or agent log directory Task management tasks Show the list of running tasks tasks recent [<number>] Show <number> recent tasks task [<task_id>|last] Show task status and start tracking its output --no-cache don't cache output locally --event|--soap|--debug different log types to track --raw don't beautify log cancel task <id> Cancel task once it reaches the next cancel checkpoint  Manifest変更後に再度bosh deployすると変更が反映される 2012-06-21 NTT Software Innovation Center 31
  • 32. まとめ  BOSHを使うことでシステム全体の構成管理が楽になる  Manifestファイルを書くのが大変だけど頑張ろう  まだまだ不安定な部分が多いので今後に期待  よくあるトラブル – デプロイ中にBOSH Agentが応答しなくなる • メモリ不足の可能性あり。VMのメモリは最低4GBにしておく – bosh upload releaseが失敗する • HDDがいっぱいになっている可能性あり。/tmpにたまってるファイルを消す – UAADBとCCDB周りでManifestのエラーが出る • テンプレートが変わったので対応する • https://github.com/cloudfoundry/cf-release/commit/3a1abefe7352c22b4fff70dee9ae27c111ba75c8 2012-06-21 NTT Software Innovation Center 32