Your SlideShare is downloading. ×
CoreOS OEM on NIFTY Cloud - CoreOS Meetup Tokyo #1 #coreosjp
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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

403
views

Published on

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

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

Published in: Technology

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
403
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
10
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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. 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. Copyright © NIFTY Corporation All Rights Reserved. Confidential 3 アジェンダ  ニフティクラウドとは  CoreOSのOEMとは  CoreOSのOEMをするには  ニフティクラウドでCoreOSを使えるよう になるまでの経緯  oem-niftycloudとniftycloud formatの中身  CoreOSをビルドするときのTips
  • 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. Copyright © NIFTY Corporation All Rights Reserved. Confidential 5 CoreOSのOEMとは https://coreos.com/releases/#534.1.0
  • 6. Copyright © NIFTY Corporation All Rights Reserved. Confidential 6 CoreOSのOEMとは https://coreos.com/docs/
  • 7. Copyright © NIFTY Corporation All Rights Reserved. Confidential 7 CoreOSのOEMをするには  自分のプラットフォームで動くイメージを作成するため の修正をプルリクしてマージしてもらう  http://alpha.release.core-os.net/amd64-usr/current/ でダウン ロード可能になる  ドキュメントを書いてプルリクしてマージしてもらう 全てGitHub上で完結! ※ただし、CoreOS社の公式プラットフォームになるには 別途CoreOS社との調整が必要
  • 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. Copyright © NIFTY Corporation All Rights Reserved. Confidential ニフティクラウドでCoreOSが 使えるようになるまでの経緯
  • 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. 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. Copyright © NIFTY Corporation All Rights Reserved. Confidential 1ヶ月後・・・
  • 13. Copyright © NIFTY Corporation All Rights Reserved. Confidential CoreOS上でVMware Toolsを ビルドできず一旦あきらめる
  • 14. Copyright © NIFTY Corporation All Rights Reserved. Confidential 2ヶ月後・・・
  • 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. 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. Copyright © NIFTY Corporation All Rights Reserved. Confidential 17 すごいプルリクが出現  2014/10/03: @c4milo さんのプルリク  coreos/coreos-overlay/pull/898 ここに自分の コミットが
  • 18. Copyright © NIFTY Corporation All Rights Reserved. Confidential 18 きれいなプルリクが出現  2014/10/09: @marineam さんのプルリク  coreos/coreos-overlay/pull/907  @c4miloさんのプルリクをきれいにまとめて 少し修正したもの
  • 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. Copyright © NIFTY Corporation All Rights Reserved. Confidential 20 ニフティクラウドにCoreOSリリース(独自ビルド)
  • 21. Copyright © NIFTY Corporation All Rights Reserved. Confidential 1ヶ月後・・・
  • 22. Copyright © NIFTY Corporation All Rights Reserved. Confidential 22 CoreOSが使えるようになるまでの経緯  2014/12/14: oem-niftycloudパッケージが 追加される  coreos/coreos-overlay/pull/970
  • 23. Copyright © NIFTY Corporation All Rights Reserved. Confidential 23 CoreOSが使えるようになるまでの経緯  2014/12/14: ニフティクラウド用のイメー ジをビルドするためのスクリプトも追加  coreos/scripts/pull/356
  • 24. Copyright © NIFTY Corporation All Rights Reserved. Confidential 24 CoreOS 534.1.0リリース https://coreos.com/releases/#534.1.0
  • 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. Copyright © NIFTY Corporation All Rights Reserved. Confidential 26 OVF化  2014/12/18: ニフティクラウド用イメージ のフォーマットをOVFに変更するプルリク  coreos/scripts/pull/366 536.0.0からOVFが提供されている
  • 27. Copyright © NIFTY Corporation All Rights Reserved. Confidential 27 ドキュメント追加  2015/02/12: docsにプルリク  coreos/docs/running-coreos/cloud- providers/niftycloud CoreOS初日本語ドキュメント
  • 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. Copyright © NIFTY Corporation All Rights Reserved. Confidential oem-niftycloudと niftycloud formatの中身
  • 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. 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. 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. 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. 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. Copyright © NIFTY Corporation All Rights Reserved. Confidential CoreOSをビルドするときのTips
  • 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. Copyright © NIFTY Corporation All Rights Reserved. Confidential 37 repoの色の表示設定  repo init時に色の表示をどうするか聞かれ るのを避ける % git config --global color.ui false
  • 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. Copyright © NIFTY Corporation All Rights Reserved. Confidential 39 アップデートできるようにする  ./set_official でアップデート時に使われる officialの公開鍵をインストールする  やらないとアップデート時にエラーになる % cros_sdk -- "./set_official“
  • 40. Copyright © NIFTY Corporation All Rights Reserved. Confidential 40 手動アップデート  アップデートのテストで使う  独自ビルドしていた頃、CoreOSの方に教 えてもらうまで知らなかった % update_engine_client -update
  • 41. Copyright © NIFTY Corporation All Rights Reserved. Confidential 41 最後に  CoreOSを独自のプラットフォームで動か したい方の参考になれば幸いです  ニフティクラウド上でのCoreOSの使い方 はCoreOSのドキュメントをご参照くださ い
  • 42. Copyright © NIFTY Corporation All Rights Reserved. Confidential 42