Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Copyright © NIFTY Corporation All Rights Reserved.
CoreOS OEM on NIFTY Cloud
Yuya Kusakabe - @higebu
NIFTY Corp.
2015/04/0...
Copyright © NIFTY Corporation All Rights Reserved. Confidential 2
自己紹介
 Twitter / GitHub:@higebu
 仕事:
 ニフティクラウドのネットワークサ...
Copyright © NIFTY Corporation All Rights Reserved. Confidential 3
アジェンダ
 ニフティクラウドとは
 CoreOSのOEMとは
 CoreOSのOEMをするには
 ニフ...
Copyright © NIFTY Corporation All Rights Reserved. Confidential 4
ニフティクラウドとは
 2010/01/27リリース
 5周年記念キャンペーン中(10万円まで無料)
 h...
Copyright © NIFTY Corporation All Rights Reserved. Confidential 5
CoreOSのOEMとは
https://coreos.com/releases/#534.1.0
Copyright © NIFTY Corporation All Rights Reserved. Confidential 6
CoreOSのOEMとは
https://coreos.com/docs/
Copyright © NIFTY Corporation All Rights Reserved. Confidential 7
CoreOSのOEMをするには
 自分のプラットフォームで動くイメージを作成するため
の修正をプルリクしてマー...
Copyright © NIFTY Corporation All Rights Reserved. Confidential 8
ニフティクラウド上で動くOSイメージ
 VMware Tools
 サーバー起動・停止、IPアドレスの取得
...
Copyright © NIFTY Corporation All Rights Reserved. Confidential
ニフティクラウドでCoreOSが
使えるようになるまでの経緯
Copyright © NIFTY Corporation All Rights Reserved. Confidential 10
関係するリポジトリ一覧
 coreos/coreos-overlay
 CoreOSが修正、または追加した...
Copyright © NIFTY Corporation All Rights Reserved. Confidential 11
Googleさんに先を越される
 2014/5/23 Official CoreOS Images on
G...
Copyright © NIFTY Corporation All Rights Reserved. Confidential
1ヶ月後・・・
Copyright © NIFTY Corporation All Rights Reserved. Confidential
CoreOS上でVMware Toolsを
ビルドできず一旦あきらめる
Copyright © NIFTY Corporation All Rights Reserved. Confidential
2ヶ月後・・・
Copyright © NIFTY Corporation All Rights Reserved. Confidential 15
open-vm-toolsを入れる方針に変更
 2014/09/06 CoreOSにopen-vm-tool...
Copyright © NIFTY Corporation All Rights Reserved. Confidential 16
open-vm-toolsからifupを消す
 2014/09/10 @crawford さんのブランチで
...
Copyright © NIFTY Corporation All Rights Reserved. Confidential 17
すごいプルリクが出現
 2014/10/03: @c4milo さんのプルリク
 coreos/coreo...
Copyright © NIFTY Corporation All Rights Reserved. Confidential 18
きれいなプルリクが出現
 2014/10/09: @marineam さんのプルリク
 coreos/co...
Copyright © NIFTY Corporation All Rights Reserved. Confidential 19
CoreOS 471.1.0 リリース
 2014/10/15: open-vm-toolsを含んだ、
Co...
Copyright © NIFTY Corporation All Rights Reserved. Confidential 20
ニフティクラウドにCoreOSリリース(独自ビルド)
Copyright © NIFTY Corporation All Rights Reserved. Confidential
1ヶ月後・・・
Copyright © NIFTY Corporation All Rights Reserved. Confidential 22
CoreOSが使えるようになるまでの経緯
 2014/12/14: oem-niftycloudパッケージが...
Copyright © NIFTY Corporation All Rights Reserved. Confidential 23
CoreOSが使えるようになるまでの経緯
 2014/12/14: ニフティクラウド用のイメー
ジをビルドす...
Copyright © NIFTY Corporation All Rights Reserved. Confidential 24
CoreOS 534.1.0リリース
https://coreos.com/releases/#534.1.0
Copyright © NIFTY Corporation All Rights Reserved. Confidential 25
OVF化
 534.1.0ではVMX+VMDKだったため、ニフティク
ラウドにインポートするには、OVF T...
Copyright © NIFTY Corporation All Rights Reserved. Confidential 26
OVF化
 2014/12/18: ニフティクラウド用イメージ
のフォーマットをOVFに変更するプルリク
...
Copyright © NIFTY Corporation All Rights Reserved. Confidential 27
ドキュメント追加
 2015/02/12: docsにプルリク
 coreos/docs/running-...
Copyright © NIFTY Corporation All Rights Reserved. Confidential 28
VMwareさんの公式サポート
 2015/3/9: CoreOS Now Supported on
VMw...
Copyright © NIFTY Corporation All Rights Reserved. Confidential
oem-niftycloudと
niftycloud formatの中身
Copyright © NIFTY Corporation All Rights Reserved. Confidential 30
oem-niftycloudとniftycloud format
 coreos-overlay/coreo...
Copyright © NIFTY Corporation All Rights Reserved. Confidential 31
oem-niftycloud
% tree oem-niftycloud/
oem-niftycloud/
├...
Copyright © NIFTY Corporation All Rights Reserved. Confidential 32
cloud-config.yml
 /usr/share/oem/cloud-config.yml に置かれ...
Copyright © NIFTY Corporation All Rights Reserved. Confidential 33
niftycloud format
 --format niftycloud と指定したら
ニフティクラウド...
Copyright © NIFTY Corporation All Rights Reserved. Confidential 34
niftycloud format
 scripts/build_library/vm_image_util...
Copyright © NIFTY Corporation All Rights Reserved. Confidential
CoreOSをビルドするときのTips
Copyright © NIFTY Corporation All Rights Reserved. Confidential 36
ビルド方法
 ビルド方法については、CoreOS Developer SDK Guideを
ご参照ください
...
Copyright © NIFTY Corporation All Rights Reserved. Confidential 37
repoの色の表示設定
 repo init時に色の表示をどうするか聞かれ
るのを避ける
% git con...
Copyright © NIFTY Corporation All Rights Reserved. Confidential 38
SDK chroot に入りたくない
 cros_sdk -- “” で chroot に入らずにビルド
%...
Copyright © NIFTY Corporation All Rights Reserved. Confidential 39
アップデートできるようにする
 ./set_official でアップデート時に使われる
officialの...
Copyright © NIFTY Corporation All Rights Reserved. Confidential 40
手動アップデート
 アップデートのテストで使う
 独自ビルドしていた頃、CoreOSの方に教
えてもらうま...
Copyright © NIFTY Corporation All Rights Reserved. Confidential 41
最後に
 CoreOSを独自のプラットフォームで動か
したい方の参考になれば幸いです
 ニフティクラウド上...
Copyright © NIFTY Corporation All Rights Reserved. Confidential 42
Upcoming SlideShare
Loading in …5
×

CoreOS OEM on NIFTY Cloud - CoreOS Meetup Tokyo #1 #coreosjp

7,696 views

Published on

CoreOS OEM on NIFTY Cloud - CoreOS Meetup Tokyo #1 -
http://coreos-meetup-tokyo.connpass.com/event/12596/

Published in: Technology

CoreOS OEM on NIFTY Cloud - CoreOS Meetup Tokyo #1 #coreosjp

  1. 1. Copyright © NIFTY Corporation All Rights Reserved. CoreOS OEM on NIFTY Cloud Yuya Kusakabe - @higebu NIFTY Corp. 2015/04/09 CoreOS Meetup Tokyo #1
  2. 2. Copyright © NIFTY Corporation All Rights Reserved. Confidential 2 自己紹介  Twitter / GitHub:@higebu  仕事:  ニフティクラウドのネットワークサービスの 設計・開発・運用、他  趣味:  vyos-users.jp  爬虫類 ・4/1 ニフティクラウド DRサービス with VMware vCloud® Air™ Technology ・VCP-DCVとVCP-NVを取得 ・最近VMware製品にまみれている
  3. 3. Copyright © NIFTY Corporation All Rights Reserved. Confidential 3 アジェンダ  ニフティクラウドとは  CoreOSのOEMとは  CoreOSのOEMをするには  ニフティクラウドでCoreOSを使えるよう になるまでの経緯  oem-niftycloudとniftycloud formatの中身  CoreOSをビルドするときのTips
  4. 4. Copyright © NIFTY Corporation All Rights Reserved. Confidential 4 ニフティクラウドとは  2010/01/27リリース  5周年記念キャンペーン中(10万円まで無料)  http://cloud.nifty.com/promo/gogo/  IaaS、PaaS、SaaS全部やっている  VMwareベース  OpenStackのような独自のコントローラ  AWSに似たAPI
  5. 5. Copyright © NIFTY Corporation All Rights Reserved. Confidential 5 CoreOSのOEMとは https://coreos.com/releases/#534.1.0
  6. 6. Copyright © NIFTY Corporation All Rights Reserved. Confidential 6 CoreOSのOEMとは https://coreos.com/docs/
  7. 7. Copyright © NIFTY Corporation All Rights Reserved. Confidential 7 CoreOSのOEMをするには  自分のプラットフォームで動くイメージを作成するため の修正をプルリクしてマージしてもらう  http://alpha.release.core-os.net/amd64-usr/current/ でダウン ロード可能になる  ドキュメントを書いてプルリクしてマージしてもらう 全てGitHub上で完結! ※ただし、CoreOS社の公式プラットフォームになるには 別途CoreOS社との調整が必要
  8. 8. Copyright © NIFTY Corporation All Rights Reserved. Confidential 8 ニフティクラウド上で動くOSイメージ  VMware Tools  サーバー起動・停止、IPアドレスの取得  SSHキー、起動時スクリプト受け渡し  niftycloud_init スクリプト  VMware ToolsからSSHキー、起動時スクリプ トを受け取って処理  CentOSなどでは/etc/init.d/niftycloud_init辺り にある
  9. 9. Copyright © NIFTY Corporation All Rights Reserved. Confidential ニフティクラウドでCoreOSが 使えるようになるまでの経緯
  10. 10. Copyright © NIFTY Corporation All Rights Reserved. Confidential 10 関係するリポジトリ一覧  coreos/coreos-overlay  CoreOSが修正、または追加したパッケージを管理  coreos/portage-stable  修正していないパッケージ  coreos/scripts  ビルド、リリーススクリプト  coreos/manifest  repoでビルドするときのmanifest  coreos/coreos-cloudinit  CoreOSがカスタマイズしたcloud-init  coreos/docs  https://coreos.com/docs/ のソース
  11. 11. Copyright © NIFTY Corporation All Rights Reserved. Confidential 11 Googleさんに先を越される  2014/5/23 Official CoreOS Images on Google Compute Engine  ニフティクラウドでも使えるようにしたい  vmware_insecureイメージがあるが、VMware Toolsが入っていなかった  VMware公式のVMware Toolsを入れるため、 CoreOSをビルドし始める
  12. 12. Copyright © NIFTY Corporation All Rights Reserved. Confidential 1ヶ月後・・・
  13. 13. Copyright © NIFTY Corporation All Rights Reserved. Confidential CoreOS上でVMware Toolsを ビルドできず一旦あきらめる
  14. 14. Copyright © NIFTY Corporation All Rights Reserved. Confidential 2ヶ月後・・・
  15. 15. Copyright © NIFTY Corporation All Rights Reserved. Confidential 15 open-vm-toolsを入れる方針に変更  2014/09/06 CoreOSにopen-vm-tools入れ ようというIssueがわりと進んでいること に気づき、open-vm-toolsを入れる方向で 作業再開  coreos/coreos-overlay/issues/499
  16. 16. Copyright © NIFTY Corporation All Rights Reserved. Confidential 16 open-vm-toolsからifupを消す  2014/09/10 @crawford さんのブランチで open-vm-toolsが動くところまでできてい たが、少し足りなかったのでパッチを送る  コミットはこれ: hooklift/coreos- overlay/commit/11f96ce87a357fc38ab53ebd4 068ea5f8b186135  crawfordさんのブランチは削除されているの で、プルリクは残っていない  ifupコマンドないからifconfigでやるようにし ただけ
  17. 17. Copyright © NIFTY Corporation All Rights Reserved. Confidential 17 すごいプルリクが出現  2014/10/03: @c4milo さんのプルリク  coreos/coreos-overlay/pull/898 ここに自分の コミットが
  18. 18. Copyright © NIFTY Corporation All Rights Reserved. Confidential 18 きれいなプルリクが出現  2014/10/09: @marineam さんのプルリク  coreos/coreos-overlay/pull/907  @c4miloさんのプルリクをきれいにまとめて 少し修正したもの
  19. 19. Copyright © NIFTY Corporation All Rights Reserved. Confidential 19 CoreOS 471.1.0 リリース  2014/10/15: open-vm-toolsを含んだ、 CoreOS 471.1.0リリース https://coreos.com/releases/#471.1.0 しかし、まともに動くようになったのは、490.0.0
  20. 20. Copyright © NIFTY Corporation All Rights Reserved. Confidential 20 ニフティクラウドにCoreOSリリース(独自ビルド)
  21. 21. Copyright © NIFTY Corporation All Rights Reserved. Confidential 1ヶ月後・・・
  22. 22. Copyright © NIFTY Corporation All Rights Reserved. Confidential 22 CoreOSが使えるようになるまでの経緯  2014/12/14: oem-niftycloudパッケージが 追加される  coreos/coreos-overlay/pull/970
  23. 23. Copyright © NIFTY Corporation All Rights Reserved. Confidential 23 CoreOSが使えるようになるまでの経緯  2014/12/14: ニフティクラウド用のイメー ジをビルドするためのスクリプトも追加  coreos/scripts/pull/356
  24. 24. Copyright © NIFTY Corporation All Rights Reserved. Confidential 24 CoreOS 534.1.0リリース https://coreos.com/releases/#534.1.0
  25. 25. Copyright © NIFTY Corporation All Rights Reserved. Confidential 25 OVF化  534.1.0ではVMX+VMDKだったため、ニフティク ラウドにインポートするには、OVF ToolでOVF変 換する必要があった  qemu-imgでVMwareで使えるstreamOptimizedな VMDKを作れるパッチを見つけてプルリク  coreos/scripts/pull/362  coreos/coreos-overlay/pull/1009  VMwareの方がopen-vmdkというツールを作って プルリクしてきて解決(さすがVMwareさん・・・  coreos/scripts/pull/364  coreos/coreos-overlay/pull/1015
  26. 26. Copyright © NIFTY Corporation All Rights Reserved. Confidential 26 OVF化  2014/12/18: ニフティクラウド用イメージ のフォーマットをOVFに変更するプルリク  coreos/scripts/pull/366 536.0.0からOVFが提供されている
  27. 27. Copyright © NIFTY Corporation All Rights Reserved. Confidential 27 ドキュメント追加  2015/02/12: docsにプルリク  coreos/docs/running-coreos/cloud- providers/niftycloud CoreOS初日本語ドキュメント
  28. 28. Copyright © NIFTY Corporation All Rights Reserved. Confidential 28 VMwareさんの公式サポート  2015/3/9: CoreOS Now Supported on VMware vSphere 6 and VMware vCloud Air  vSphere 5.5以上  Stableのみサポート  最新情報は VMware Compatibility Guide
  29. 29. Copyright © NIFTY Corporation All Rights Reserved. Confidential oem-niftycloudと niftycloud formatの中身
  30. 30. Copyright © NIFTY Corporation All Rights Reserved. Confidential 30 oem-niftycloudとniftycloud format  coreos-overlay/coreos-base/oem-niftycloud  scripts/build_library  vm_image_util.sh  niftycloud_ovf.sh
  31. 31. Copyright © NIFTY Corporation All Rights Reserved. Confidential 31 oem-niftycloud % tree oem-niftycloud/ oem-niftycloud/ ├── files │ ├── cloud-config.yml # ニフティクラウド用の cloud-config │ ├── coreos-setup-environment # /etc/environment を作成 │ ├── niftycloud-coreos-cloudinit # coreos-cloudinit を実行 │ └── niftycloud-ssh-key # SSHキーの設定 └── oem-niftycloud-0.0.1.ebuild 1 directory, 5 files coreos-overlay/coreos-base/oem-niftycloud
  32. 32. Copyright © NIFTY Corporation All Rights Reserved. Confidential 32 cloud-config.yml  /usr/share/oem/cloud-config.yml に置かれる  open-vm-tools の起動  coreos-overlay/app-emulation/open-vm-tools  niftycloud-ssh-key の実行  update-ssh-keys コマンドに渡す  niftycloud-coreos-cloudinit の実行  user-data で受け取った cloud-config やスクリプトを coreos- cloudinit に渡す  user-dataは /var/lib/coreos-niftycloud/user-data に置かれる
  33. 33. Copyright © NIFTY Corporation All Rights Reserved. Confidential 33 niftycloud format  --format niftycloud と指定したら ニフティクラウド用のOVFができる % cros_sdk % cros_sdk --enter % ./set_shared_user_password.sh % echo amd64-usr > .default_board % ./setup_board % ./build_packages % ./build_image prod --group alpha % ./image_to_vm.sh --from=../build/images/amd64-usr/latest -- board=amd64-usr --prod_image --format niftycloud % exit
  34. 34. Copyright © NIFTY Corporation All Rights Reserved. Confidential 34 niftycloud format  scripts/build_library/vm_image_util.sh  VALID_IMG_TYPES と VALID_OEM_PACKAGES に niftycloud を追加  IMG_niftycloud_XXX を追加  _write_niftycloud_conf() を追加  scripts/build_library/niftycloud_ovf.sh  _write_niftycloud_conf()内で呼ばれている ニフティクラウド用のOVFを作るスクリプト ## niftycloud IMG_niftycloud_DISK_FORMAT=vmdk_scsi IMG_niftycloud_DISK_LAYOUT=vm IMG_niftycloud_CONF_FORMAT=niftycloud IMG_niftycloud_OEM_PACKAGE=oem-niftycloud
  35. 35. Copyright © NIFTY Corporation All Rights Reserved. Confidential CoreOSをビルドするときのTips
  36. 36. Copyright © NIFTY Corporation All Rights Reserved. Confidential 36 ビルド方法  ビルド方法については、CoreOS Developer SDK Guideを ご参照ください  以前使っていたビルドスクリプトの一部↓ #!/bin/bash # ./build_coreos.sh Alpha 494 CHANNEL=$1 VERSION=$2 git config --global color.ui false git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git export PATH="$PATH":`pwd`/depot_tools mkdir coreos pushd coreos repo init -u ssh://git@github.com/higebu/manifest.git ¥ -b niftycloud-${VERSION} ¥ -g minilayout ¥ --repo-url https://chromium.googlesource.com/external/repo.git -m release.xml repo sync cros_sdk --download cros_sdk -- "./set_shared_user_password.sh" "core" echo "amd64-usr" > src/scripts/.default_board cros_sdk -- "./setup_board" cros_sdk -- "./build_packages“ cros_sdk -- "./set_official" cros_sdk -- "./build_image" "prod" "--group" "${CHANNEL,,}" cros_sdk -- "./image_to_vm.sh" "--from=../build/images/amd64-usr/latest" "--board=amd64-usr" "--prod_image" "--format" "niftycloud" VERSION=$(cros_sdk -- 'cat' '/etc/os-release' | grep VERSION_ID | awk -F'=' '{print $2}') popd
  37. 37. Copyright © NIFTY Corporation All Rights Reserved. Confidential 37 repoの色の表示設定  repo init時に色の表示をどうするか聞かれ るのを避ける % git config --global color.ui false
  38. 38. Copyright © NIFTY Corporation All Rights Reserved. Confidential 38 SDK chroot に入りたくない  cros_sdk -- “” で chroot に入らずにビルド % cros_sdk --download % cros_sdk -- "./set_shared_user_password.sh" “core" % echo "amd64-usr" > src/scripts/.default_board % cros_sdk -- "./setup_board" % cros_sdk -- "./build_packages“ % cros_sdk -- "./set_official“ % cros_sdk -- "./build_image" "prod" "--group" "alpha" % cros_sdk -- "./image_to_vm.sh" "--from=../build/images/amd64- usr/latest" "--board=amd64-usr" "--prod_image" "--format" "niftycloud"
  39. 39. Copyright © NIFTY Corporation All Rights Reserved. Confidential 39 アップデートできるようにする  ./set_official でアップデート時に使われる officialの公開鍵をインストールする  やらないとアップデート時にエラーになる % cros_sdk -- "./set_official“
  40. 40. Copyright © NIFTY Corporation All Rights Reserved. Confidential 40 手動アップデート  アップデートのテストで使う  独自ビルドしていた頃、CoreOSの方に教 えてもらうまで知らなかった % update_engine_client -update
  41. 41. Copyright © NIFTY Corporation All Rights Reserved. Confidential 41 最後に  CoreOSを独自のプラットフォームで動か したい方の参考になれば幸いです  ニフティクラウド上でのCoreOSの使い方 はCoreOSのドキュメントをご参照くださ い
  42. 42. Copyright © NIFTY Corporation All Rights Reserved. Confidential 42

×