Debian自动化安装

定制Debian的自动化安装

1 更改grub配置文件,修改安装系统选项,加载安装配置文件(/boot/grub/grub.cfg)

if loadfont $prefix/font.pf2 ; then
  set gfxmode=800x600
  insmod efi_gop
  insmod efi_uga
  insmod video_bochs
  insmod video_cirrus
  insmod gfxterm
  insmod png
  terminal_output gfxterm
fi

if background_image /isolinux/splash.png; then
  set color_normal=light-gray/black
  set color_highlight=white/black
else
  set menu_color_normal=cyan/blue
  set menu_color_highlight=white/blue
fi

insmod play
play 960 440 1 0 4 440 1
set theme=/boot/grub/theme/1
menuentry --hotkey=g 'Graphical install' {
    set background_color=black
    linux    /install.amd/vmlinuz vga=788 --- quiet 
    initrd   /install.amd/gtk/initrd.gz
}
menuentry --hotkey=i 'Install' {
    set background_color=black
    linux    /install.amd/vmlinuz vga=788 --- quiet 
    initrd   /install.amd/initrd.gz
}
##下面是自动化安装选项, file=/cdrom/debian8.ks加载的自动化安装配置文件
menuentry 'Install Debian Auto' {
    set background_color=black
    linux /install.amd/vmlinuz auto=true file=/cdrom/debian8.ks  vga=788 --- quiet 
    initrd /install.amd/gtk/initrd.gz
}

2 制作自动化安装配置文件debian8.ks

d-i debian-installer/locale string en_US
d-i debian-installer/language string en
d-i debian-installer/country string US
d-i debian-installer/locale string en_US.UTF-8

d-i localechooser/supported-locales multiselect en_US.UTF-8 zh_CN.UTF-8

d-i console-setup/ask_detect boolean false
d-i console-setup/modelcode string pc105
d-i console-setup/layoutcode string us
d-i console-setup/variantcode string USA
d-i console-keymaps-at/keymap select us

d-i keyboard-configuration/xkb-keymap select us
d-i clock-setup/utc boolean true
d-i time/zone string Asia/Shanghai
d-i clock-setup/ntp boolean false
d-i clock-setup/ntp-server string cn.pool.ntp.org

d-i netcfg/choose_interface select auto
d-i netcfg/disable_dhcp boolean true
d-i netcfg/disable_autoconfig boolean true
d-i netcfg/get_ipaddress string 10.0.0.111
d-i netcfg/get_nameservers string 10.0.0.1
d-i netcfg/get_netmask string 255.255.255.0
d-i netcfg/get_gateway string 10.0.0.1
d-i netcfg/confirm_static boolean true
d-i netcfg/get_hostname string ops.2233.tv
d-i netcfg/get_domain string 
d-i netcfg/wireless_wep string

popularity-contest popularity-contest/participate boolean false
d-i partman-auto/method string regular
d-i partman-auto/disk string /dev/sda
d-i partman-auto/choose_recipe select All files in one partition (recommended for new users)
d-i partman-auto/method string regular

d-i partman/confirm boolean true
d-i partman/confirm_write_new_label boolean true
d-i partman/choose_partition select Finish partitioning and write changes to disk
d-i partman-lvm/confirm boolean true
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-md/confirm_nooverwrite boolean true
d-i partman/choose_partition select finish
d-i partman/confirm_nooverwrite boolean true
d-i partman/confirm_write_changes_to_disks_and_configure_lvm boolean true

apt-mirror-setup        apt-setup/no_mirror     boolean true
apt-mirror-setup        apt-setup/use_mirror    boolean false
apt-mirror-setup        apt-setup/contrib       boolean false
apt-mirror-setup        apt-setup/non-free      boolean false
apt-cdrom-setup apt-setup/cdrom/set-next        boolean false
apt-setup-udeb  apt-setup/services-select       multiselect     

# Need If using iso
d-i apt-setup/use_mirror boolean false
d-i apt-setup/cdrom/set-first boolean false
d-i apt-setup/cdrom/set-next boolean false   
d-i apt-setup/cdrom/set-failed boolean false

d-i  mirror/country             string manual
d-i  mirror/http/hostname       string mirrors.aliyun.com
d-i  mirror/http/directory      string /debian
d-i  mirror/http/proxy          string
tasksel tasksel/first multiselect standard 

popularity-contest popularity-contest/participate boolean false

d-i  debian-installer/splash    boolean true
d-i  pkgsel/include string 
d-i  pkgsel/language-packs string 
d-i  pkgsel/install-language-support boolean false
d-i  pkgsel/update-policy        select unattended-upgrades
d-i  pkgsel/upgrade               select safe-upgrade

d-i  passwd/root-login                  boolean true
d-i  passwd/make-user                   boolean false
d-i  passwd/root-password               password 111111
d-i  passwd/root-password-again         password 111111
d-i  user-setup/allow-password-weak     boolean true

d-i  grub-installer/only_debian         boolean true
d-i  grub-installer/with_other_os       boolean true
d-i  grub-installer/bootdev             string /dev/sda
d-i  finish-install/keep-consoles       boolean false
d-i  finish-install/reboot_in_progress  note
d-i  cdrom-detect/eject                 boolean true
d-i  debian-installer/exit/halt         boolean false
d-i  debian-installer/exit/poweroff     boolean false


d-i cdrom-detect/eject boolean false
d-i preseed/early_command string anna-install some-udeb
d-i preseed/late_command string  \
cp -r /cdrom/tools/*  /target/opt/ ; \
cp  /cdrom/aaa/*  /target/etc/ 

3 制作开机自启脚本

#!/bin/sh
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
##判断是否有/aaa目录,没有运行then 最后创建/aaa目录                  判断是否需要执行命令
if [ ! -d "/aaa" ]; then 
    cd /opt
    dpkg -i deb/*.deb
    apt --fix-broken install -y
    dpkg -i deb/python*
    dpkg -i deb/gluster*
    cp bin/MegaCli64 /sbin/
    docker load < docker-images/mariadb.tar
    docker load < docker-images/redis.tar
    docker load < docker-images/mongo.tar
    docker load < docker-images/rabbitmq.tar
    cp config/nginx.conf /etc/nginx
    cp config/rc.xml /etc/X11/openbox
    cp config/slim.conf /etc/
    cp config/sshd_config /etc/ssh
    cp config/interfaces /etc/network/interfaces
    cp tar/data.tar /
    cp tar/pm2.tar /usr/lib/node_modules
    cd /
    tar -xf data.tar
    rm /data.tar
    cd /usr/lib/node_modules
    tar -xf pm2.tar
    npm build pm2 -g
    rm /usr/lib/node_modules/pm2.tar
    su -c   'export NODE_ENV=production && pm2 start /data/app/dcc/server/dist/main.js -n dcc' --login root
    su -c   'export NODE_ENV=production && pm2 start /data/app/src/server/dist/main.js -n src' --login root
    su -c   'export NODE_ENV=production && pm2 start /data/app/smi/server/dist/main.js -n smi' --login root
    su -c   'pm2 startup' --login root
    su -c   'pm2 save' --login root
    mkdir /aaa
    
fi 

 
exit 0

4 把自定义包、工具放到相应目录

引导系统是DVD里自带的,默认会把光盘挂载到 /cdrom 目录下、系统安装到 /target 目录里。

5 更换引导背景图

/isolinux 目录下splash.png
自动应答文件.ks参考https://forum.ubuntu.org.cn/viewtopic.php?t=199876
https://blog.csdn.net/weixin_34279184/article/details/91744710

猜你喜欢

转载自www.cnblogs.com/blackonwhite/p/11388377.html
今日推荐