こんにちは。私は自動化に取り組んでいるのですが、Ubuntu の自動インストールでインストールの途中で検証を求められるという問題が発生しました。
完全に非対話型の自動インストール構成が見つかった場合でも、カーネル コマンド ラインに自動インストールが存在しない限り、サーバー インストーラーはディスクに書き込む前に確認を求めます。これは、起動時に差し込まれたマシンを再フォーマットする USB スティックを誤って作成することを困難にするためです。多くの自動インストールは、カーネル コマンド ラインがネットブート構成によって制御されるネットブート経由で実行されます。そこに自動インストールを追加することを忘れないでください。
私はこの記事に出会いました。私の設定ファイルには次のような「自動インストール」があります。
#cloud-config
autoinstall:
version: 1
カーネルのコマンド ラインにこれを配置するにはどうすればよいでしょうか。または、ネットブート構成を記述するにはどうすればよいでしょうか。私はサーバー管理に不慣れで、ほとんどの用語に精通していません。
答え1
これは、使用中のシステムが誤って消去されるのを防ぐための安全策であることに注意してください。ただし、公式の Ubuntu インストール メディアをそのまま使用し、cloud-init 自動インストール構成を別の ISO 経由で提供する場合には、この安全策はやり過ぎであると私は主張します。特に、物理的なインストール メディアが使用されず、ISO のマウントが手動操作ではない場合はそうです。
したがって、起動時にカーネルの cmdline に追加できない場合でもautoinstall
、次のようにして、自動インストール モジュールによってチェックされる前に cmdline を上書きすることができます。
#cloud-config
bootcmd:
- cat /proc/cmdline > /tmp/cmdline
- sed -i'' 's/$/ autoinstall/g' /tmp/cmdline
- mount -n --bind -o ro /tmp/cmdline /proc/cmdline
autoinstall:
version: 1
これは、cloud-init bootcmd モジュールを利用して、変更されたファイルをその上にマウントすることで /proc/cmdline を上書きします。ファイルには、元の cmdline コンテンツ + が含まれますautoinstall
。
そして、自動インストールドキュメントこれにより、「自動インストールを続行しますか? (はい|いいえ)」というプロンプトが削除されます。
このプロンプトを回避するには、カーネルのコマンドラインに引数 autoinstall が存在するようにします。
答え2
さらに調査した結果、この二重チェックは、物理メディアを使用して OS をインストールするときに、誤ってインストールされないようにするために実行されることがわかりました。完全に自動的なインストールを開始するには、FTP または HTTP 経由のネットインストールを使用する必要があります。