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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Tomoyuki KOYAMA
March 05, 2020
Research
14
0
Share
OSの自動インストール設定の対話型作成と統一記法 / DPS-182
第182回DPS研究発表会(情報処理学会)
https://ipsj.ixsq.nii.ac.jp/records/203937
Tomoyuki KOYAMA
March 05, 2020
More Decks by Tomoyuki KOYAMA
See All by Tomoyuki KOYAMA
イベントとリソース定義から作成した依存グラフを用いた連鎖障害の調査時間の短縮 / DPS-206
tomoyk
0
11
Query Prediction for Log Search for Distributed Tracing with External Monitoring Alerts
tomoyk
0
23
Root Cause Analysis for Middleware Issues by Kubernetes Resource Events / KST-2026
tomoyk
0
43
Reading HTTP Client Hints
tomoyk
0
130
Log message with JSON item count for root cause analysis in microservices
tomoyk
1
250
Distributed Log Search Based on Time Series Access and Service Relations
tomoyk
0
380
Webアプリを動かすまでのインフラ構築 / infra-build-for-web-app
tomoyk
0
470
コンピュータが大好きな私が大学院進学した理由 / Why I chose graduate school
tomoyk
1
1.1k
検索性能に配慮した複製による分散ログ管理 / DPS-185
tomoyk
0
15
Other Decks in Research
See All in Research
空間音響処理における物理法則に基づく機械学習
skoyamalab
0
260
データサイエンティストをめぐる環境の違い2025年版〈一般ビジネスパーソン調査の国際比較〉
datascientistsociety
PRO
0
1.1k
"主観で終わらせない"定性データ活用 ― プロダクトディスカバリーを加速させるインサイトマネジメント / Utilizing qualitative data that "doesn't end with subjectivity" - Insight management that accelerates product discovery
kaminashi
16
24k
量子コンピュータの紹介
oqtopus
0
260
2025-11-21-DA-10th-satellite
yegusa
0
140
オーストリア流 都市の公共交通サービス水準評価@公共交通オープンデータ最前線2026
trafficbrain
0
120
ScoreMatchingRiesz for Automatic Debiased Machine Learning and Policy Path Estimation with an Application to Japanese Monetary Policy Evaluation
masakat0
0
230
2026年3月1日(日)福島「除染土」の公共利用をかんがえる
atsukomasano2026
0
510
Dwangoでの漫画データ活用〜漫画理解と動画作成〜@コミック工学シンポジウム2025
kzmssk
0
210
さくらインターネット研究所テックトーク2026春、研究開発Gr.25年度成果26年度方針
kikuzo
0
110
COFFEE-Japan PROJECT Impact Report(海ノ向こうコーヒー)
ontheslope
0
1.3k
FUSE-RSVLM: Feature Fusion Vision-Language Model for Remote Sensing
satai
3
380
Featured
See All Featured
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.5k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
510
Claude Code のすすめ
schroneko
67
220k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
260
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
96
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
240
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
330
Evolving SEO for Evolving Search Engines
ryanjones
0
170
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
Optimising Largest Contentful Paint
csswizardry
37
3.6k
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