CoreOS OEM on NIFTY Cloud - CoreOS Meetup Tokyo #1

>100 Views

April 09, 15

スライド概要

https://www.slideshare.net/higebu/20150409-core-osoemonniftycloud
のミラーです。
2015/04/09に開催されたCoreOS Meetup Tokyo #1の発表資料です。
https://coreos-meetup-tokyo.connpass.com/event/12596/

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

CoreOS OEM on NIFTY Cloud CoreOS Meetup Tokyo #1 Yuya Kusakabe - @higebu NIFTY Corp. 2015/04/09 Copyright © NIFTY Corporation All Rights Reserved.

2.

自己紹介 Twitter / GitHub:@higebu  仕事:    ニフティクラウドのネットワークサービスの 設計・開発・運用、他 趣味: vyos-users.jp  爬虫類  Copyright © NIFTY Corporation All Rights Reserved. ・4/1 ニフティクラウド DRサービス with VMware vCloud® Air™ Technology ・VCP-DCVとVCP-NVを取得 ・最近VMware製品にまみれている Confidential 2

3.

アジェンダ ニフティクラウドとは  CoreOSのOEMとは  CoreOSのOEMをするには  ニフティクラウドでCoreOSを使えるよう になるまでの経緯  oem-niftycloudとniftycloud formatの中身  CoreOSをビルドするときのTips  Copyright © NIFTY Corporation All Rights Reserved. Confidential 3

4.

ニフティクラウドとは  2010/01/27リリース  5周年記念キャンペーン中(10万円まで無料)  http://cloud.nifty.com/promo/gogo/ IaaS、PaaS、SaaS全部やっている  VMwareベース  OpenStackのような独自のコントローラ  AWSに似たAPI  Copyright © NIFTY Corporation All Rights Reserved. Confidential 4

5.

CoreOSのOEMとは https://coreos.com/releases/#534.1.0 Copyright © NIFTY Corporation All Rights Reserved. Confidential 5

6.

CoreOSのOEMとは https://coreos.com/docs/ Copyright © NIFTY Corporation All Rights Reserved. Confidential 6

7.

CoreOSのOEMをするには  自分のプラットフォームで動くイメージを作成するため の修正をプルリクしてマージしてもらう   http://alpha.release.core-os.net/amd64-usr/current/ でダウン ロード可能になる ドキュメントを書いてプルリクしてマージしてもらう 全てGitHub上で完結! ※ただし、CoreOS社の公式プラットフォームになるには 別途CoreOS社との調整が必要 Copyright © NIFTY Corporation All Rights Reserved. Confidential 7

8.

ニフティクラウド上で動くOSイメージ  VMware Tools サーバー起動・停止、IPアドレスの取得  SSHキー、起動時スクリプト受け渡し   niftycloud_init スクリプト VMware ToolsからSSHキー、起動時スクリプ トを受け取って処理  CentOSなどでは/etc/init.d/niftycloud_init辺り にある  Copyright © NIFTY Corporation All Rights Reserved. Confidential 8

9.

ニフティクラウドでCoreOSが 使えるようになるまでの経緯 Copyright © NIFTY Corporation All Rights Reserved. Confidential

10.

関係するリポジトリ一覧  coreos/coreos-overlay   coreos/portage-stable   repoでビルドするときのmanifest coreos/coreos-cloudinit   ビルド、リリーススクリプト coreos/manifest   修正していないパッケージ coreos/scripts   CoreOSが修正、または追加したパッケージを管理 CoreOSがカスタマイズしたcloud-init coreos/docs  https://coreos.com/docs/ のソース Copyright © NIFTY Corporation All Rights Reserved. Confidential 10

11.

Googleさんに先を越される  2014/5/23 Official CoreOS Images on Google Compute Engine ニフティクラウドでも使えるようにしたい  vmware_insecureイメージがあるが、VMware Toolsが入っていなかった  VMware公式のVMware Toolsを入れるため、 CoreOSをビルドし始める  Copyright © NIFTY Corporation All Rights Reserved. Confidential 11

12.

1ヶ月後・・・ Copyright © NIFTY Corporation All Rights Reserved. Confidential

13.

CoreOS上でVMware Toolsを ビルドできず一旦あきらめる Copyright © NIFTY Corporation All Rights Reserved. Confidential

14.

2ヶ月後・・・ 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 Copyright © NIFTY Corporation All Rights Reserved. Confidential 15

16.

open-vm-toolsからifupを消す  2014/09/10 @crawford さんのブランチで open-vm-toolsが動くところまでできてい たが、少し足りなかったのでパッチを送る コミットはこれ: hooklift/coreosoverlay/commit/11f96ce87a357fc38ab53ebd4 068ea5f8b186135  crawfordさんのブランチは削除されているの で、プルリクは残っていない  ifupコマンドないからifconfigでやるようにし ただけ  Copyright © NIFTY Corporation All Rights Reserved. Confidential 16

17.

すごいプルリクが出現  2014/10/03: @c4milo さんのプルリク  coreos/coreos-overlay/pull/898 ここに自分の コミットが Copyright © NIFTY Corporation All Rights Reserved. Confidential 17

18.

きれいなプルリクが出現  2014/10/09: @marineam さんのプルリク coreos/coreos-overlay/pull/907  @c4miloさんのプルリクをきれいにまとめて 少し修正したもの  Copyright © NIFTY Corporation All Rights Reserved. Confidential 18

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 Copyright © NIFTY Corporation All Rights Reserved. Confidential 19

20.

ニフティクラウドにCoreOSリリース(独自ビルド) Copyright © NIFTY Corporation All Rights Reserved. Confidential 20

21.

1ヶ月後・・・ Copyright © NIFTY Corporation All Rights Reserved. Confidential

22.

CoreOSが使えるようになるまでの経緯  2014/12/14: oem-niftycloudパッケージが 追加される  coreos/coreos-overlay/pull/970 Copyright © NIFTY Corporation All Rights Reserved. Confidential 22

23.

CoreOSが使えるようになるまでの経緯  2014/12/14: ニフティクラウド用のイメー ジをビルドするためのスクリプトも追加  coreos/scripts/pull/356 Copyright © NIFTY Corporation All Rights Reserved. Confidential 23

24.

CoreOS 534.1.0リリース https://coreos.com/releases/#534.1.0 Copyright © NIFTY Corporation All Rights Reserved. Confidential 24

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 Copyright © NIFTY Corporation All Rights Reserved. Confidential 25

26.

OVF化  2014/12/18: ニフティクラウド用イメージ のフォーマットをOVFに変更するプルリク  coreos/scripts/pull/366 536.0.0からOVFが提供されている Copyright © NIFTY Corporation All Rights Reserved. Confidential 26

27.

ドキュメント追加  2015/02/12: docsにプルリク  coreos/docs/running-coreos/cloudproviders/niftycloud CoreOS初日本語ドキュメント Copyright © NIFTY Corporation All Rights Reserved. Confidential 27

28.

VMwareさんの公式サポート  2015/3/9: CoreOS Now Supported on VMware vSphere 6 and VMware vCloud Air vSphere 5.5以上  Stableのみサポート   最新情報は VMware Compatibility Guide Copyright © NIFTY Corporation All Rights Reserved. Confidential 28

29.

oem-niftycloudと niftycloud formatの中身 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 Copyright © NIFTY Corporation All Rights Reserved. Confidential 30

31.

oem-niftycloud coreos-overlay/coreos-base/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 Copyright © NIFTY Corporation All Rights Reserved. Confidential 31

32.

cloud-config.yml   /usr/share/oem/cloud-config.yml に置かれる open-vm-tools の起動   niftycloud-ssh-key の実行   coreos-overlay/app-emulation/open-vm-tools update-ssh-keys コマンドに渡す niftycloud-coreos-cloudinit の実行   user-data で受け取った cloud-config やスクリプトを coreoscloudinit に渡す user-dataは /var/lib/coreos-niftycloud/user-data に置かれる Copyright © NIFTY Corporation All Rights Reserved. Confidential 32

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 Copyright © NIFTY Corporation All Rights Reserved. Confidential 33

34.

niftycloud format  scripts/build_library/vm_image_util.sh   VALID_IMG_TYPES と VALID_OEM_PACKAGES に niftycloud を追加 IMG_niftycloud_XXX を追加 ## niftycloud IMG_niftycloud_DISK_FORMAT=vmdk_scsi IMG_niftycloud_DISK_LAYOUT=vm IMG_niftycloud_CONF_FORMAT=niftycloud IMG_niftycloud_OEM_PACKAGE=oem-niftycloud   _write_niftycloud_conf() を追加 scripts/build_library/niftycloud_ovf.sh  _write_niftycloud_conf()内で呼ばれている ニフティクラウド用のOVFを作るスクリプト Copyright © NIFTY Corporation All Rights Reserved. Confidential 34

35.

CoreOSをビルドするときのTips Copyright © NIFTY Corporation All Rights Reserved. Confidential

36.
[beta]
ビルド方法




ビルド方法については、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

Copyright © NIFTY Corporation All Rights Reserved.

Confidential

36

37.

repoの色の表示設定  repo init時に色の表示をどうするか聞かれ るのを避ける % git config --global color.ui false Copyright © NIFTY Corporation All Rights Reserved. Confidential 37

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/amd64usr/latest" "--board=amd64-usr" "--prod_image" "--format" "niftycloud" Copyright © NIFTY Corporation All Rights Reserved. Confidential 38

39.

アップデートできるようにする  ./set_official でアップデート時に使われる officialの公開鍵をインストールする  やらないとアップデート時にエラーになる % cros_sdk -- "./set_official“ Copyright © NIFTY Corporation All Rights Reserved. Confidential 39

40.

手動アップデート アップデートのテストで使う  独自ビルドしていた頃、CoreOSの方に教 えてもらうまで知らなかった  % update_engine_client -update Copyright © NIFTY Corporation All Rights Reserved. Confidential 40

41.

最後に CoreOSを独自のプラットフォームで動か したい方の参考になれば幸いです  ニフティクラウド上でのCoreOSの使い方 はCoreOSのドキュメントをご参照くださ い  Copyright © NIFTY Corporation All Rights Reserved. Confidential 41

42.

Copyright © NIFTY Corporation All Rights Reserved. Confidential 42