自動Alpine Linuxのインストール

自動Alpine Linuxのインストール

無人Alpine Linuxインストールを実装しようとしています。アルプスを超えました。自動インストールガイドしかし、インストールプロセスにはまだ多くの手動介入が必要です!たとえば、rootユーザー名を指定し、応答ファイルを作成し(setup-alpine -c answerfileName)、応答ファイルを編集し、実際のインストールコマンドを呼び出し(setup-alpine -f answerfileName)、rootパスワードをリセットします。

インストールを開始する前にデフォルトでrootユーザーを選択し、インストールが完了した後にパスワードを設定する応答ファイルをISOイメージに含める方法はありますか? CentOSでは、次の場所でキックスタートファイルを提供できますisolinux.cfg

label MyMENU2
  menu label ^Deploy Manager Node
  kernel vmlinuz
  append initrd=initrd.img inst.stage2=hd:LABEL=MYISO inst.ks=hd:LABEL=MYISO:/ks/ks1.cfg quiet

Alpine Linuxにも似ていますか?

答え1

アルパインにはというサービスがありますlocal

サービスが起動すると*.start実行されます/etc/local.d/

ただし、localこのサービスはデフォルトでは有効になっていません。

localサービスを有効にしてスクリプトを実行するには、次の手順に従います。

  1. インストールスクリプトを作成し、次の場所に保存します。myscript.start

    引用:https://docs.alpinelinux.org/user-handbook/0.1a/Installing/manual.html

    たとえば、

    # show script's output
    exec > >(tee -a /dev/tty0) 2>&1
    
    # delete this hack
    # otherwise this script will run on the system we newly installed
    rm -f /etc/local.d/myscript.start
    rm -f /etc/runlevels/default/local
    
    # do the system installation
    setup-interfaces -a
    rc-update add networking boot
    echo root:123@@@ | chpasswd
    printf '\nyes' | setup-sshd
    setup-keymap us us
    setup-timezone -i Asia/Shanghai
    setup-ntp chrony || true
    true >/etc/apk/repositories
    setup-apkrepos -1
    printf 'y' | setup-disk -m sys /dev/sda
    reboot
    
  2. タブレットinitramfs-lts。空のフォルダで行う必要があります

    zcat initramfs-lts | cpio -idm
    rm -f initramfs-lts
    
  3. initファイルを編集します。探す

    exec switch_root $switch_root_opts $sysroot $chart_init "$KOPT_init" $KOPT_init_args

    コマンドの前に次の3行を追加しますexec

    cp /myscript.start \$sysroot/etc/local.d/
    chmod a+x \$sysroot/etc/local.d/myscript.start
    ln -s /etc/init.d/local \$sysroot/etc/runlevels/default/
    
  4. myscript.startファイルと同じフォルダにコピーinit

  5. 再梱包initramfs-lts

    find . | cpio -o -H newc | gzip -1 >initramfs-lts
    
  6. isoからinitramfs-lts新しいものと交換してください。

答え2

仮想マシンの場合は、元の.isoを使用して直接インストールを自動化するコードを作成しました。見てhttps://gitlab.alpinelinux.org/ultrotter/alpine-autosetup初期概念証明を実行します。

関連情報