zoukankan      html  css  js  c++  java
  • PXE+kickstart自动安装ubuntu14.04

    本文参考了诸多文章,先感谢这些文章的作者。

    使用pxe安装系统需要安装dhcp,tftp,http等服务(当然也可以使用其他文件共享方式比如nfs,ftp)。

    实验环境:

    1. vmware 12

    2.网段 10.0.0.0/8, PXE服务器IP:10.0.0.100

    一、安装dhcp服务

    可以选择安装isc-dhcp-Server 或者 dnsmasq(这个在openstack中使用较多,而且它也包含tftp服务,配置也非常方便,我因为已经安装dhcp和tftp就懒得换了)。

    我选择安装了isc-dhcp-Server:   apt-get install isc-dhcp-Server -y

    vim /etc/default/isc-dhcp-server

    INTERFACES="eth0"    # 或者你要指定的网络接口名字。

    vim /etc/dhcp/dhcpd.conf

    在文件末尾添加:

    subnet 10.0.0.0 netmask 255.0.0.0 {
      range 10.0.0.101 10.0.0.200;
      option subnet-mask 255.0.0.0;
      option routers 10.0.0.100;
      option broadcast-address 10.255.255.255;
      filename "pxelinux.0";
      next-server 10.0.0.100;
    }

    子网,掩码可以根据自己的需要设置

    filename "pxelinux.0";
    next-server 10.0.0.100;    指定pxe启动文件名和ip地址,next-server也是指tftp服务器IP。

    配置完重启服务:

    service isc-dhcp-server restart    

    二、安装tftp服务

    apt-get install tftpd-hpa -y

    安装完就OK了,使用默认的即可,记得tftp的目录是 /var/lib/tftpboot/ 哦,后面要用到!

    三、安装apache2

    apt-get install apache2 -y

    也是安装完就可以了,http根目录是 /var/www/html/ 。

    将下载好的ubuntu-14.04.5-server-amd64.iso放到某个目录。比如 ~ 目录,然后如下操作;

    cd ~

    mkdir /var/www/html/ubuntu

    mount ubuntu-14.04.5-server-amd64.iso /var/www/html/ubuntu      或者 mount ubuntu-14.04.5-server-amd64.iso /media  然后 cp -r * /media/* /var/www/html/ubuntu

    cp -r /var/www/html/ubuntu/install/netboot/*   /var/lib/tftpboot/

    cp /var/www/html/ubuntu/preseed/ubuntu-server.seed /var/www/html/

    然后 vim /var/www/html/ubuntu-server.seed

    在文件末尾添加:

    d-i live-installer/net-image string http://10.0.0.100/ubuntu/install/filesystem.squashfs

    d-i pkgsel/include string openssh-server

    1、因为在ubuntu12.10版本以后,安装一些包会依赖于预配置的文件系统,这就是导致使用kickstart方式无法成功安装的原因。

    2、自动安装ssh服务。

    四、安装kickstart

    kickstart需要GUI界面,我因为是安装的server,所以需要安装桌面(如果是desktop版本就不需要),如下安装;

    apt-get install ubuntu-desktop system-config-kickstart -y

    安装完之后,重启一下进入桌面,直接startx在虚拟机里卡桌面。

    kickstart界面操作很简单,实验过一遍就知道主要还是ks.cfg。如果vm的界面较小,需要远程的话,可以安装xrdp, vnc4server, 然后vim ~/.xsession 输入:xfc4-session      

    这里就不多说了,搜索一下就很多远程ubuntu的文章。

    在界面操作完之后保存ks.cfg到/var/www/html/

    ks.cfg 内容如下:

    #Generated by Kickstart Configurator
    #platform=AMD64 or Intel EM64T
    
    #System language
    lang en_US
    #Language modules to install
    langsupport en_US
    #System keyboard
    keyboard us
    #System mouse
    mouse
    #System timezone
    timezone --utc Asia/Shanghai
    #Root password
    rootpw --disabled
    #Initial user
    user trait --fullname "trait" --iscrypted --password $1$Umx1cgrj$..pRArN7AP66XBosYbU4N1
    #Reboot after installation
    reboot
    #Use text mode install
    text
    #Install OS instead of upgrade
    install
    #Use Web installation
    url --url http://10.0.0.100/ubuntu
    #System bootloader configuration
    bootloader --location=mbr 
    #Clear the Master Boot Record
    zerombr yes
    #Partition clearing information
    clearpart --all --initlabel 
    #Disk partitioning information
    part / --fstype ext4 --size 1024 --asprimary --ondisk sda 
    part swap --size 800 --ondisk sda 
    #System authorization infomation
    auth  --useshadow  --enablemd5 
    #Firewall configuration
    firewall --disabled 
    #Do not configure the X Window System
    skipx
    %post
    echo "deb http://cn.archive.ubuntu.com/ubuntu/ trusty main restricted" > /etc/apt/sources.list
    echo "deb http://cn.archive.ubuntu.com/ubuntu/ trusty-updates main restricted" >> /etc/apt/sources.list
    echo "deb http://cn.archive.ubuntu.com/ubuntu/ trusty universe" >> /etc/apt/sources.list
    echo "deb http://cn.archive.ubuntu.com/ubuntu/ trusty-updates universe" >> /etc/apt/sources.list
    echo "deb http://cn.archive.ubuntu.com/ubuntu/ trusty multiverse" >> /etc/apt/sources.list
    echo "deb http://cn.archive.ubuntu.com/ubuntu/ trusty-updates multiverse" >> /etc/apt/sources.list
    echo "deb http://cn.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse" >> /etc/apt/sources.list

    然后修改一下 vim /var/lib/tftpboot/ubuntu-installer/amd64/boot-screens/txt.cfg:

    default install
    label install
            menu label ^Install
            menu default
            kernel ubuntu-installer/amd64/linux
            append ks=http://10.0.0.100/ks.cfg preseed/url=http://10.0.0.100/ubuntu-server.seed netcfg/get_nameservers=10.60.235.100 vga=788 initrd=ubuntu-installer/amd64/initrd.gz --- quiet 
    label cli
            menu label ^Command-line install
            kernel ubuntu-installer/amd64/linux
            append tasks=standard pkgsel/language-pack-patterns= pkgsel/install-language-support=false vga=788 initrd=ubuntu-installer/amd64/initrd.gz --- quiet
    

    ok,现在可以创建一个空的虚拟机来验证安装了。

  • 相关阅读:
    javascript之面向对象学习笔记03
    javascript之面向对象学习笔记02
    javascript之面向对象学习笔记01
    记第一次用Linux搭建LAMP环境
    C#随机数
    Android简单的TXT文件存储
    关于Android的ListView一点使用方法
    Android与C#的socket通讯
    Android调用WebService
    并发编程之进程、线程、同步锁 -1
  • 原文地址:https://www.cnblogs.com/danxi/p/6181479.html
Copyright © 2011-2022 走看看