Ubuntu日本語フォーラム
ログインしていません。
どうも、こんにちは。
会社のお仕事で、以下の要件でUbuntuデスクトップPCを量産する業務があります。
なんとか全自動化し、パソコンに不慣れなメンバーに丸任せできるようにしたく。
「うまく行く方法あるよ!」「それはムリなんだ・・・」だけでも情報をいただけると幸いです。
【やりたいこと/条件】
・ベースとなるISOは以下。
・https://old-releases.ubuntu.com/releases/22.04.3/ubuntu-22.04.3-desktop-amd64.iso
・「デスクトップの24か、22.04のserver版ならautoinstall使えるよ」はもう知っとる。Desktop版の22.04でやる、というお題とご理解ください。
・このISOをUSBメモリスティックに書き込んで、インストール対象のPCに差して実行すると、Ubiquityによる質問が始まる。
・「インストールしたい?それともUbuntuを試してみたい?」
・この対話式の問診を、ぜんぶすっ飛ばしたい。
・(何十台も作るが、ぜんぶ同じ回答をしてくれれば良い。唯一hostnameは調整したいが、インストール後でもいいかな)
・まとめると:
・アルバイトさんに PCとUSBメモリ を大量に渡す。
・「差して、電源ボタン押すと光って、5分くらいすると電源OFFになるから、そうしたらこの棚に乗せておいてね」と教える。
・という風にしたい。(なぜなら、ヒトは手入力ミスをする。それはもう仕方ない。)
【試したこと/調べたこと】
・インストーラの種類があり、 debian-installer, ubiquity/subiquity, autoinstall 等ある。
・今回の Ubuntu Desktop 22.04 だと、通常は ubiquity ベース。
・インストールの設定は、ISOイメージの /preseed/ubuntu.seed にかかれているので、ここに上手くかけば自動化できそう。
・私は grubのvmlinuzオプションに url=http://192.168.x.x/ubuntu.seed 書いて、手早く変更をテストできるようにしました。これは成功している。
・GRUBオプションについて:
・今、トライしているオプションは、以下です。
・linux /casper/vmlinux url=http://192.168.x.x/ubuntu.seed auto=true automatic-ubiquity maybe-ubiquity quiet splash ---
・「auto=true にすると debian-installer でできるだけ自動で設問進めてくれる」らしいので、入れた。
・「automatic-ubiquity」これは、ubiquity用の自動モード設定、らしい。入れたが、ばっちり質問してくるやん。
・「maybe-ubiquity」これがあると、起動後に ubiquity(=問診)が始まる。削除すると、そもそもインストール処理が始まらない。
・まとめると:
・「ubiquity 使うのが不適切なので、ubiquityナシでUSBメモリからインストールできない?debian-installerとか良いんじゃない?」という発想。
・→頓挫。GRUBオプションで maybe-ubiquity 外すと、ubiquity は起動しなくなるが、その後インストール手順が起動しない。
・「じゃあ ubiquity は使いつつ、seed ファイルの書き方でなんとかしようよ」という発想。
・トライ中。ユーザー名とかタイムゾーンとか簡単な項目は「seedで入れた値が質問の初期値に入るようにはなる。」という手応えはあった。automatic-ubiquity でパスもできた。
・ubiquity上のこの設問は、seedファイルでどう書いたら事前回答できるんだ?がマジでわからん。ネットで拾いながら試しています。マニュアル見つからぬ・・・
・ただ、理想は「インストールしたい?それともUbuntuを試してみたい?」すらスキップしたいんだ!
・PCをディスプレイに繋ぐ必要もない、が理想。
長くなりましたが、このあたりを既にチャレンジされたことのある先輩がいらっしゃれば、ぜひアドバイスを頂きたいです。
「んー、方向性としてはやっぱりseedいじる、になるんじゃない?」といったレスポンスだけでも嬉しいです!
オフライン
↓の記事が参考になると思います。
canonical/autoinstall-desktop · GitHub
https://github.com/canonical/autoinstall-desktop/
Using Ubuntu Live-Server to automate Desktop installation
Abstract
This document describes the procedure to perform an automated install of Ubuntu 22.04.x LTS Desktop. This is implemented by using the Ubuntu 22.04.x LTS Server ISO, installing Desktop on top, and removing unneeded default Server packages.
第615回 サーバー版インストーラーに導入された自動インストール機能 | gihyo.jp
https://gihyo.jp/admin/serial/01/ubuntu-recipe/0615
自動化の仕組みさえあればサーバー版を自動インストールしたあとに「ubuntu-desktop」パッケージをインストールすることで、デスクトップ版のインストールの自動化として使えます。
第764回 UbuntuサーバーのLive用ISOイメージをカスタマイズする | gihyo.jp
https://gihyo.jp/admin/serial/01/ubuntu-recipe/0764
第787回 PXEでサーバーの完全自動インストールを行う | gihyo
https://gihyo.jp/admin/serial/01/ubuntu-recipe/0787
オフライン
to: elliptic さん
コメントありがとうございます!
リンクにあげて頂いたページ、およびアイデア(サーバ版をインストールしてからデスクトップパッケージをインストールする)も試したのですが、
今回の場合、これだと都合が悪く。
→ 自社開発したシステム(このUbuntu上で動かす)が、Desktop22.04.3 だとすんなりビルドできて、 Server 22.04.3 + Desktopパッケージ だと
いろいろコケたりするので、ディストリビューションを乗り換えるのがまず避けたい、という事情です。
オフライン
ちなみに、その後いろいろ試して
「まぁまぁ大体うまく動いた」ところまで来ました。95点くらい。
せっかくなので、コチラで「こうやったら、こんな感じ」を整理したく思います。
【全体感】
・Ubuntu Desktop 22.04.3 のUSBメモリスティックインストールで、自動化できる?
・→ 出来た。
・あと足りない点はなに?
・A:セットアップの過程で、ネットワークを使ってファイルを取り込みたいが、ネットワークが認識されない。
・B:インストール後、「Please remove the installation medium, then press ENTER.」のメッセージが出て止まる。これをスキップして電源OFFになってほしい。
【コツ】
・ GRUBの vmlinuz オプションで automatic-ubiquibity を付与することで、preseedで回答した設問がスキップされるようになる。
【残課題 ↑ のAとB】
・こちら、調査続けています。情報いただけると嬉しいです。
・特に、A。どうも、インストール中はオフライン状態ということらしい(HWのLANポートが通信ランプまったく点滅していない。インストール後、通常起動するとランプが光り通信できる。)
・このネットワークが解決すると、インストールの最後で ubiquity/success_command でスクリプトファイルとりこんでいろいろ出来るんだけどなぁ。
こんな進捗となりました。
オフライン
追伸の追伸:
↑ の課題2点、解決しました!
・Ubuntuインストールの途中でネットワークが認識されない。
・ubiquity/success_command の中で sudo dhclient xxx (有線LANデバイス) を指定したところ、そこを通った時点でLANが有効になりました。
・(ウチの機器特有のアレかも知れない。。わざわざ明示する必要なさそうだけど、とにかくコレで解決しました)
・インストール後、速やかに電源OFFにしたい。
・こちらも、 ubiquity/sccess_command で sudo umount -l cdrom; sudo poweroff; することで実現できました。
・インストールメディアがマウントされたまま、だと「メディア抜いてね」の警告メッセージが出るみたいですね。
ということで、一通りやりたいことが出来るようになりました。
オフライン
B.「Please remove the installation medium, then press ENTE」について
今も通用するかわかりませんが
Ubuntu 18.04 LTSの頃はインストールメディアの
ブートオブションで
noprompt 終了時 DVD取り外し案内を表示しない。
noeject 終了時 DVDイジェクトをしない。
が指定できた記憶があります。
オフライン
情報ありがとうございます!
bootオプション、こちらも試してみます。
noprompt 単品は試したことがあって警告メッセージが残ってたけど、noeject はやったことがありませんでした。
オフライン
いきなり申し訳ありません。自分もほぼ同じようなことをしようとして詰まっています。
ubuntu-ja-22.04-desktop-amd64.isoを使用した自動インストールがしたいのですが、設問をスキップできません。
grubの設定は下記なのですが、ubuntu.seedの書き方が間違ってたりすると自動インストールがうまく動作しないのかなと思ってます。
menuentry "For test" {
set gfxpayload=keep
linux /casper/vmlinuz nomodeset file=/cdrom/preseed/ubuntu.seed auto=true maybe-ubiquity automatic-ubiquibity quiet splash --- debian-installer/language=ja debian-installer/locale=ja_JP.UTF-8 keyboard-configuration/layoutcode?=jp keyboard-configuration/modelcode?=pc105
initrd /casper/initrd
}
可能であれば、正常に自動インストールできた際の設定を問題のない範囲でご共有いただけないでしょうか?
お手すきであればよろしくお願いいたします。
オフライン
to: kumagoro さん
どうも、こんにちは!
私の場合、以下の2ファイルの書き換えでうまくいきました。
・grub.cfg
・ubuntu.seed
わかりやすい grub.cfg の方は、以下の形でした。(無駄もまだ残ってるかも)
----
set timeout=30
loadfont unicode
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
menuentry "Try or Install Ubuntu" {
set gfxpayload=keep
linux /casper/vmlinuz url=http://xxx.xxx.xxx.xxx:8000/ubuntu.seed auto=true maybe-ubiquity automatic-ubiquity quiet splash ---
initrd /casper/initrd
}
grub_platform
----
このGRUB で起動したうえで、 ubuntu.seed による事前回答が入っていれば、インストール時にその設問はスキップされる、という流れです。
今は、私の ubuntu.seed では、ノー設問で インストール開始→完了→シャットダウン まで動きました。
例) ユーザーを作る設問を ubuntu.seed でこう答えておくと、インストール時に聞かれなくなる
----
# Account setup
d-i passwd/user-fullname string myaccount
d-i passwd/username string myaccount
d-i passwd/user-password password myaccount
d-i passwd/user-password-again password myaccount
d-i user-setup/encrypt-home boolean false
----
余談ですが、UbuntuDesktop22.04 の場合、 debian-installer 形式と ubiquity 形式 が入り乱れてますね
ChatGPTくんに翻弄されつつGithubの例などからちょこちょこ拾って、なんとか動かしました。
「この項目はどうやったの?」等あれば、お力になれるかもしれません。
オフライン
to: nejiさん
nejiさんのgrubを参考にさせていただき、 デフォルトで記載されていたdebian-installer系の記述をgrub.cfgから削除したところ、自動インストールがされるようになりました!ありがとうございます。
しかし、ローカライゼーション設定(キーボード言語選択等)は自動化されたものの、アップデートと他のソフトウェアの画面(最小インストールか通常インストールの選択等)で選択を求められてしまい、それ以降のアカウント作成やローケーションの選択が自動化されません。
ubuntu.seed の記載項目の順序が関係しているのか、ある項目の書き方が間違っていると、以降の手順で自動化が止まってしまい手順を求められるようになってしまう可能性があるかご存知でしょうか。何かご存知であればご教示いただけると幸いです。
ちなみにubuntu.seedは下記の設定で行っております。(見せても問題ないように記載してあります)
# Localization
d-i debian-installer/locale string ja_JP.UTF-8
d-i keyboard-configuration/xkb-keymap select jp
d-i console-setup/ask_detect boolean false
d-i console-setup/layoutcode string jp
# Skip the installation selection screen
ubiquity ubiquity/minimal_install boolean false
ubiquity ubiquity/reboot boolean true
# インストール中にアップデートをダウンロードする
d-i pkgsel/update-policy select unattended-upgrades
# サードパーティ製ソフトウェアのインストール
d-i ubiquity/nonfree_package boolean true
d-i ubiquity/nonfree_package boolean true
ubiquity ubiquity/restricted-addons boolean true
ubiquity ubiquity/restricted-codecs boolean true
# Network configuration
d-i netcfg/choose_interface select auto
d-i netcfg/get_hostname string ubuntu
d-i netcfg/get_domain string localdom:ain
# Mirror settings
d-i mirror/country string manual
d-i mirror/http/hostname string archive.ubuntu.com
d-i mirror/http/directory string /ubuntu
d-i mirror/http/proxy string
# Account setup
d-i passwd/user-fullname string Ubuntu User
d-i passwd/username string ubuntu
d-i passwd/user-password-crypted password $6$P6qsxirGs6vmO5eO$3egCM.ZW0NKzO9EysEL0Eu6PBjnNaKmCvAx0sjdpYY6PM/eK142Jv1kmijh7Adopy7IIWKOt9d5QCMCjEBRgo1
d-i user-setup/allow-password-weak boolean true
# Clock and time zone setup
d-i time/zone string Asia/Tokyo
d-i clock-setup/utc boolean true
# Partitioning
d-i partman-auto/method string regular
d-i partman-auto/disk string /dev/sda
d-i partman-auto/choose_recipe select atomic
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
# Package selection
tasksel tasksel/first multiselect standard
# Boot loader
d-i grub-installer/only_debian boolean true
d-i grub-installer/with_other_os boolean true
# Finishing up
d-i finish-install/reboot_in_progress note
d-i debian-installer/quiet boolean true
d-i debian-installer/splash boolean true
オフライン
追記ですみません。
ubuntu24でもdata-userを使用して自動インストールを試みましたが、うまく動作しなかったため、私のisoの作成の仕方が悪いのかもしれないです、、、
isoを展開し、grub.cfgとubuntu.seedを編集してiso再構築の流れでできると思っていたのですが、勉強不足のようです。
grub.cfgとubuntu.seed以外に修正した部分があれば教えていただきたいです。
オフライン
to: kumagoro さん
どうも!一部動き始めたとのことで、よかったですー
私の場合は、grub.cfg と ubuntu.seed だけの編集で UbuntuDesktop 22.04.3 をUSBメディアからインストールできました。
→ なので、実質は DLしたまんまのisoファイルでも、GRUB起動時にパラメータを手で書き換えて 192.168.x.x の ubuntu.seed ファイルを参照すれば、自動インストールできる認識です。
参考までに、ubuntu.seed は以下のようになりました。(一部書き換えあり)
----
# Localization
d-i debian-installer/locale string en_US.UTF-8
d-i keyboard-configuration/xkb-keymap select jp
d-i keyboard-configuration/layoutcode string jp
# Network configuration
d-i netcfg/choose_interface select auto
# Account setup
d-i passwd/user-fullname string myaccount
d-i passwd/username string myaccount
d-i passwd/user-password password myaccount
d-i passwd/user-password-again password myaccount
d-i user-setup/encrypt-home boolean false
# Clock and time zone setup
d-i clock-setup/utc boolean true
d-i time/zone string Asia/Tokyo
# Install mode
ubiquity ubiquity/minimal_install boolean true
ubiquity ubiquity/download_updates boolean true
ubiquity ubiquity/use_nonfree boolean false
# Partitioning
ubiquity partman-auto/method string lvm
ubiquity partman-lvm/device_remove_lvm boolean true
ubiquity partman-lvm/confirm boolean true
ubiquity partman-auto/choose_recipe select atomic
ubiquity partman-auto/disk string /dev/sda
ubiquity partman/confirm_write_new_label boolean true
ubiquity partman/choose_partition select finish
ubiquity partman/confirm boolean true
# Package selection
tasksel tasksel/first multiselect ubuntu-desktop
d-i pkgsel/include string openssh-server
# Bootloader installation
ubiquity grub-installer/only_debian boolean true
ubiquity grub-installer/with_other_os boolean true
# Success command to create a marker file
ubiquity ubiquity/success_command string \
sudo umount -l /cdrom; \
sudo poweroff
----
※動くハズですが、無駄なモノ間違ったモノまざってるかもしれません!ご承知おきください。
こちらがご参考になれば幸いです。
オフライン
to: neji さん
先ほどisoをUbuntuDesktop 22.04.4に変えて試していたところある程度自動化でき、原因が分かりました。
iso展開後にisoルート下に自分でcdrom/を作成していたため、cdrom/cdromのような形でパスがおかしくなっていたことが原因だと思います。恥ずかしながらOSインストール時にインストールメディアが/cdromとしてマウントされることを知らず、/下に入るものだと勘違いしていました。ubuntu-ja-22.04-desktop-amd64.isoでうまくいかないのがなぜかわかっていませんが、1歩前進できました。ありがとうございます!!
また、UbuntuDesktop 22.04.4で試した際、最初にパーティションの切り分けに関する警告?確認?が出てきて、それを確認すると自動インストールが始まる形だったのですが、こちらの確認をスキップする方法ご存じでしたら教えていただければ幸いです。
オフライン
to: kumagoro さん
ツマっていた部分が解消したとのことで、おめでとうございます
最後にパーティションの部分がまだうまくいかないとのことで。。
私視点で恐縮ですが「ウチのPCだと、↑で上げた設定でパーティションの質疑部分もノー質問で行けたよ」という点だけ自信持って言えます、という状況です。
HW構成の違い等で、変わるのかな。ウチの対象PCは、SSD1本だけの構成です。
こちらについては、「このストレージ構成のPCの場合、設定ファイルはどう書いたらいい?」で別トピックを立てた方が、情報集めやすいかも知れませんね。
kumagoroさんのPCセットアップがうまく行くことを願っておりますー!
オフライン
to: neji さん
知識不足でご迷惑おかけしてすみませんでした!
また、大変助かりました!ありがとうございました。
パーティション構成自体はできているので、最悪確認ボタン押すくらいは許容範囲かなと思います。
余裕があればアドバイス通り他のトピックでスレを立てて聞いてみようかなと思います!
ありがとうござました!
オフライン
neji による投稿:
to: kumagoro さん
HW構成の違い等で、変わるのかな。ウチの対象PCは、SSD1本だけの構成です。
nejiさんは22.04.3、kumagoroさんは22.04.4で試しているのでそこの差異もあるかもしれないですね。
オフライン