Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
OSの自動インストール設定の対話型作成と統一記法 / DPS-182
Search
Tomoyuki KOYAMA
March 05, 2020
Research
0
0
OSの自動インストール設定の対話型作成と統一記法 / DPS-182
第182回DPS研究発表会(情報処理学会)
https://ipsj.ixsq.nii.ac.jp/records/203937
Tomoyuki KOYAMA
March 05, 2020
Tweet
Share
More Decks by Tomoyuki KOYAMA
See All by Tomoyuki KOYAMA
Query Prediction for Log Search for Distributed Tracing with External Monitoring Alerts
tomoyk
0
9
Root Cause Analysis for Middleware Issues by Kubernetes Resource Events / KST-2026
tomoyk
0
17
Reading HTTP Client Hints
tomoyk
0
120
Log message with JSON item count for root cause analysis in microservices
tomoyk
1
240
Distributed Log Search Based on Time Series Access and Service Relations
tomoyk
0
370
Webアプリを動かすまでのインフラ構築 / infra-build-for-web-app
tomoyk
0
450
コンピュータが大好きな私が大学院進学した理由 / Why I chose graduate school
tomoyk
1
1k
検索性能に配慮した複製による分散ログ管理 / DPS-185
tomoyk
0
0
この先生きのこるための学び方 / how-to-learn-tech
tomoyk
1
420
Other Decks in Research
See All in Research
データサイエンティストの業務変化
datascientistsociety
PRO
0
250
第66回コンピュータビジョン勉強会@関東 Epona: Autoregressive Diffusion World Model for Autonomous Driving
kentosasaki
0
390
量子コンピュータの紹介
oqtopus
0
200
SREのためのテレメトリー技術の探究 / Telemetry for SRE
yuukit
13
3.1k
LiDARセキュリティ最前線(2025年)
kentaroy47
0
180
Any-Optical-Model: A Universal Foundation Model for Optical Remote Sensing
satai
2
120
令和最新技術で伝統掲示板を再構築: HonoX で作る型安全なスレッドフロート型掲示板 / かろっく@calloc134 - Hono Conference 2025
calloc134
0
560
Earth AI: Unlocking Geospatial Insights with Foundation Models and Cross-Modal Reasoning
satai
3
540
それ、チームの改善になってますか?ー「チームとは?」から始めた組織の実験ー
hirakawa51
0
770
大規模言語モデルにおけるData-Centric AIと合成データの活用 / Data-Centric AI and Synthetic Data in Large Language Models
tsurubee
1
510
病院向け生成AIプロダクト開発の実践と課題
hagino3000
0
550
存立危機事態の再検討
jimboken
0
240
Featured
See All Featured
How Software Deployment tools have changed in the past 20 years
geshan
0
32k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
190
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.7k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
0
2.4k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
360
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.8k
Music & Morning Musume
bryan
47
7.1k
Speed Design
sergeychernyshev
33
1.6k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
120
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.3k
Transcript
OSの自動インストール設定 の対話型作成と統一記法 東京工科大学コンピュータサイエンス学部 クラウド・分散システム研究室 小山智之 串田高幸 1
はじめに • クラウド技術の普及により,これまで以上にマシンのラ イフサイクルが活発 – ハードウェアは故障や耐用年数による交換が発生 – ハードウェアの交換に伴うソフトウェア設定の変更 • ベンダー製品による自動化の課題
– 独自UIやツールの採用により他ツールと連携できず – 手動での作業が発生する場合がある • 独自作成ツールの課題 – ツールの品質や属人化 2
背景 • ソフトウェアの設定の中で,LinuxのOSインストールに着目 • 複数台の仮想マシンへのOSの自動インストールを行った経験 • OSごとに異なる互換性のない設定記法に直面 – 記法: Preseed(Debian/Ubuntu),
Kickstart(RedHat) • 異なる形式の変換は,複数の記法を学ぶ必要がある. OSに依存しない設定方法が必要 3
関連研究(1) • Large scale Linux configuration with LCFG [Anderson, P.
/ 2000] – Solaris Jumpstartをインストーラの呼び出しに使用 – 設定記法:オブジェクト指向形式 • Lucie:大規模クラスタに適した高速セットアップ・管理ツー ル [高宮安仁 / 2003] – ネットワークブートしたLinux OS上でLucieを起動 – LucieがセットアップとOSインストールを実行 – 設定記法:関数型形式 設定ファイルの記述形式が独自 課題:新たな学習が必要,分かりやすさ 4 LCFG: Local ConFiGuration system
関連研究(2) • Grid System Installation, Management and Monitoring Application [Magherusan-Stanciu,
C. / 2011] – PuppetでDHCPサーバの設定を自動生成 – Kickstartでインストールを自動化 • 超大規模 HPC システムのインストール高速化の提案 [小 久保良輔 / 2018] – 設定ファイルをプログラムにより並列で生成 – Kickstartでインストールを自動化 KickstartはRedHat系OSのみ対応 課題:RedHat系OS以外に対応できず 5
関連研究の課題 • 設定ファイルの記述形式が独自 – LCFG, Lucie:独自記法の採用により,オペレータの 学習コストが発生. • KickstartはRedHat系OSのみ対応 –
Kickstart:RedHat系OS以外に対応できず.一般的に 使用できず. 自動化ツールによるOS選択時の制約 6
既存記法 提案の概要 課題「独自記法,ツールの限られたOS対応」を解決する設 定UIと統一記法を提案する. • 設定UI – オペレータがインストール自動化用の設定を作成する ための対話型インターフェース •
統一記法 – OS自動インストール用の設定を木構造で表現 – 設定UIが自動的に生成し,既存記法への変換が可能 設定UI 統一記法 7 オペレ ータ 入力 生成 既存記法 生成 入力 従来 提案 オペレ ータ
設定UIの提案 • 従来 – 設定ファイルをテキストエディタ編集 – GUIベースのインターフェースでの設定作成 • 提案 –
対話型のCUI設定インターフェース • 他のツールとの連携性の高さ – CUIへ入力時の補完 >_ 設定投入 language=ja 設定UI オペレータ 8 language=?
設定記法の提案 • 木構造データによる記法 • 設定項目をグループ化により表現 • 設定:根(root)から設定パラメータごとの節(network, os, storage)に分類 •
節:根と同様に葉(language, keyboard layout, timezon)に 分岐 9 OSの言語設定: root => os => language root network os storage keyboard layout language timezone
実装の概要 10 設定UI,統一記法,変換サーバを新たに実装 設定UI オペレータ 入力 生成 変換 サーバ 送信
生成 取得 Ubuntu インストーラ CentOS インストーラ 統一記法 データベース 既存記法 preseed 既存記法 kickstart 電源ON
設定UIの実装 設定の入力 設定UI(CnfBox CLI) リクエストの構築 リクエストの送信 入力値の解析・検証 11 HTTP 変換
サーバへ GET /v1/xxx Host example.com {“x”: “y”} x→y {“x”: “y”} x=y 統一記法 オペレータ オペレータが入力した設定を解析し,統一記法の形式でリ クエストとして送信する.
統一記法の実装 • 木構造をJSON形式で表現 • JSON形式:プログラミング言語で標準サポート • 記述例:OSのタイムゾーンをあらわす記述 { " os
": { " timezone ": "Asia/Tokyo" } } 記述例 12 { " os ": { " timezone ": "Asia/Taipei" } } 記述例 root os keyboard layout timezone language
実装の概要 13 設定UI,統一記法,変換サーバを新たに実装 設定UI オペレータ 入力 生成 変換 サーバ 送信
生成 取得 Ubuntu インストーラ CentOS インストーラ 統一記法 データベース 既存記法 preseed 既存記法 kickstart 電源ON
変換サーバの実装 14 HTTP Ubuntu インストーラ 変換サーバ(CnfBox SRV) 変換機能 登録API (RESTful
API) 設定記法の変換 データベースへ 設定を保存 配信機能 データベース から設定を取得 配信API (RESTful API) • 統一記法から個別の設定記法に変換し保存 • インストーラへ設定記法ごとに配信 統一記法 設定UIから データベース SELECT * FROM ... INSERT INTO ... CentOS インストーラ pres eed kick start
実装:変換サーバの配信API • 変換サーバのインターフェースにRESTful APIを使用 • 設定ごとにidを自動的に発行し,URLに割り当て • URLの例(id=16) – Preseed記法:
https://example.com/conf/16/preseed – kickstart記法: https://example.com/conf/16/kickstart • URLの変更により異なる記法の設定ファイルを取得可能 15 d-i keyboard-configuration/layoutcode string jp d-i keyboard-configuration/modelcode jp106 d-i clock-setup/utc boolean true d-i time/zone string Asia/Tokyo d-i localechooser/supported-locales en_US.UTF-8 d-i console-setup/layoutcode string us d-i console-setup/charmap select UTF-8 (略) keyboard 'jp' rootpw --iscrypted '$G9maGxpaHdmd' lang 'ja_JP' timezone Asia/Tokyo --isUtc text (略) preseed記法での取得例 kickstart記法での取得例
検証 • 目的:提案手法で複数の自動OSインストールが行えるか • 方法 – CentOS 7, Ubuntu 18.04のOSインストールメディアを用意
– 仮想マシンにOSインストールメディアを割り当て起動 – OSインストーラの起動パラメータで変換サーバを指定 し,起動 • 環境 – 研究室環境 • 仮想マシン:VMware ESXi 上に1台作成 • 作業用マシン:設定UIを動作 – PaaS • 変換サーバ:Google App Engineで作成 • データベースサーバ:Google Cloud SQLで作成 16
検証手順 仮想マシン ルータ 変換サーバ CnfBox SRV 17 作業用マシン PaaS 研究室環境
設定UI CnfBox CLI 1 設定入力 2 3 ISO OSインストール メディア(Ubuntu 18.04) 4 電源ON 5 起動パラメ ータ変更 6 設定UIで作成した設定を変換サーバから仮想マシンへ配信 7 preseed 再起動 8 データベース
検証手順:仮想マシンの動作 4.OSインストールメディアを仮想マシンに割り当て 5.仮想マシンの電源ON 6.OSインストーラに対応する起動パラメータを手動で編集 7.OSインストーラを起動:OSインストーラが自動でインス トールを実行 8.インストールが終了すると自動で再起動 append DEBCONF_DEBUG=5 auto=true
locale=en_US.UTF-8 (略) interface=auto url=https://cnfbox-dev.appspot.com/conf/16/preseed vga=normal initrd=/install/initrd.gz quiet -- linux text ks=http://cnfbox-dev.appspot.com/conf/16/kickstart Ubuntu CentOS 18
検証結果 • Ubuntu, CentOSの両方でインストーラが正常終了 – インストールの途中で停止せず終了 – 事前に設定した認証情報でOSのログインに成功 – 変換サーバのアクセスログでも確認
提案手法で複数の自動OSインストールが行えた 163.215.6.1 - - [13/Jan/2020:13:17:44 +0900] "GET /conf/16/preseed HTTP/1.1" 200 499 - "debian - installer " "cnfbox-dev.appspot.com "ms =2277 cpu_ms =1978 cpm_usd =5.5767 e-8 loading_request =1 163.215.6.1 - - [10/Jan/2020:17:42:27 +0900] "GET /conf/16/kickstart HTTP/1.1" 200 604 - "urlgrabber/3.10.2" "cnfbox-dev.appspot.com" ms=79 cpu_ms=407 cpm_usd=6.7502 e-8loading_request =0 19 インストール終了→再起動→ログイン
評価:設定記法 • 提案手法と既存手法の設定記法の形式を比較 • JSON形式の採用 – 一般的な記法→新たな学習が不要 – 既存ツールや自作ツールとの連携が容易 define
host { host_name myhostname address 192.168.10.1 mac_address 00:50:56:40:40:b6 use hosttemplate } Lucie dhclient.hostname myhostname dhclient.mac 00:08:74:1A:52:7D LCFG { "network ": { "hostname ": "myhostname", "host_ip_address ": "192.168.10.1", "host_ip_address_type ": "static" } } CnfBox 20
評価:設定UI • 補完によりユーザ体験が向上 • 検証において既存の設定記法をもとに提案を比較 (CentOS, Ubuntuで同一の設定を記述する場合) – 設定ファイル数: 50%削減(=
1 - 1/2 ) – 記述する形式数: 50%削減(= 1 - 1/2 ) – 記述するパラメータ数: 約77%削減(= 1 - 3/13 ) 提案記法 CnfBox 既存記法 kickstart + preseed 設定ファイル数 1 2 記述する形式数 1 2 記述するパラメータ数 3 13 21
議論 • 新たな記法への対応 – 現状:手動による既存記法と統一記法のマッピング – 解決策:プログラムによる自動マッピング • 変換サーバのアクセス制御 –
現状:IPレンジによる制御 – 解決策:URLにトークンの付与 • 機密情報の保存 – 現状:平文でデータベースへ保存 – 解決策:機密データストアの使用 22
終わりに • 木構造(JSON形式)により設定を構造化して表現 – 独自の設定の記述形式 • 統一記法から個々の記法へ変換 – 適用できる範囲が限定的 •
設定UIによる記述量の削減 – 設定ファイル数,記述する形式数: 50%削減 – 記述するパラメータ数: 約77%削減 • OSごとに新たに設定記法を覚える手間が削減 • OS自動インストールに費やす時間/手間の削減 23