ヘッドレスサーバーのVBox:RDPなしでLinuxをインストールする

ヘッドレスサーバーのVBox:RDPなしでLinuxをインストールする

SSHを介して接続されたリモートヘッドレスサーバーにヘッドレスシステムを設定するスクリプトがあります。マシンを作成し、ディスクとArchisoを接続し、インストールを開始します。

また、以前にscpからインポートされたプロンプトに従って、シェルで実行される構成されたArchを設定するスクリプトもあります。

しかし、私はそれらの間の3つの中間段階を削除したいと思います。 Archisoのgrubでx64 installをクリックし、ルートEnterシェルがログインするのを待ってから実行します。scp user@server:~/arch-install . && ./arch-install

RDPを使用すると、これらすべてを実行できます。しかし、すべてのインストールプロセスを自動化できることは面倒です。それ

もちろんテーマもありますがヘッドレスLinuxのインストール。しかし、この3段階だけを自動化すればいいので、Archisoを再パッケージしたくありません。たぶんVBoxは同様のものをサポートしますかexpect

ベストアンサー1

ホストだけを制御しながら、デフォルトのArchisoイメージの自動ゲストインストールを実装する方法を見つけましたが、少し面倒です。 VBoxの基本機能をSSH経由で公開されているシリアルポートと組み合わせる必要があります。

VBoxの仮想シリアルポートサポートを有効にします。

VBoxManage modifyvm "$VNM" --uart1 0x3F8 4 --uartmode1 server "$SERIAL"

vboxを起動します。

VBoxManage startvm "$VNM"
# Wait for boot menu. WARNING: May be affected by problem with timing!
sleep 8

カーネルの起動時にシリアルポートをイネーブルにするには、ゲストにコマンドを送信します。

# Press <Tab> to edit boot string, add 'console=ttyS0', then <Enter>
VBoxManage controlvm "$VNM" keyboardputscancode 0f 8f 39 b9  # <Tab><Space>
VBoxManage controlvm "$VNM" keyboardputscancode 2e ae 18 98 31 b1 1f 9f 18 98 26 a6 12 92  # 'console'
VBoxManage controlvm "$VNM" keyboardputscancode 0d 8d 14 94 14 94 15 95 36 1f 9f b6 0b 8b  # '=ttyS0'
VBoxManage controlvm "$VNM" keyboardputscancode 1c 9c  # Enter

シリアルパイプを介してシェルにログインします。私はそれを使用しましたが、netcat両方が動作します。次のコマンドは、ソケットをローカルで使用する方法を示しています(ただし、SSHにリダイレクトできます)。

sleep 25
printf "root\n" | nc -q 2 -U "$SERIAL"

ソケットを介してインストールスクリプトをheredocに送信します。私の主な方法よりも簡単ですscp。ただし、scp順次実行することもできます。

printf "\n"'cat - <<-'"'EOFARCHSETUP' > ~/arch-setup\n" | nc -U "$SERIAL"
cat "$SCRIPT_DIR/arch-setup" | nc -U "$SERIAL"  # Send text content of setup file
printf "\nEOFARCHSETUP\n" | nc -U "$SERIAL"     # End of heredoc file

インストール開始:

printf "\nchmod u+x ~/arch-setup\n" | nc -U "$SERIAL"      # Make executable
printf "\ncd ~ && ./arch-setup --new\n" | nc -U "$SERIAL"  # Start install

非対話型インストールの監視(インストールに影響を与えずに監視を安全に中断するには、Ctrl-Cを使用してください):

nc -d -U "$SERIAL"  

それでも不明な部分がある場合は、次のスクリプト全体を見ることができます。ジタブ

おすすめ記事