cobbler 3.3.4 配置ubuntu 22.04 自动安装

1.下载Ubuntu 22.04 iso 镜像

# https://releases.ubuntu.com/jammy/ubuntu-22.04.3-live-server-amd64.iso

mount -o loop ubuntu-22.04.3-live-server-amd64.iso /mnt
cp -r /mnt/* /iso   # /iso 目录已经映射到cobbler容器中
cp ubuntu-22.04.3-live-server-amd64.iso /iso

2.将ubuntu导入cobbler

  • 将 iso 导入容器中
# 进入docker容器
cp /iso/ubuntu-22.04.3-live-server-amd64.iso /var/www/cobbler/pub/
  • 生成 自动装机的 user-data 数据
# 生成用户密码
mkpasswd -m sha-512

  

# 生成 user-data 文件,注意 storage部分,包含 /data,如果不需要,可以适当修改,注意必须有 #cloud-config
cat /var/lib/cobbler/templates/user-data
#cloud-config
autoinstall:
  apt:
    disable_components: []
    fallback: abort
    geoip: true
    mirror-selection:
      primary:
      - country-mirror
      - arches:
        - amd64
        - i386
        uri: http://archive.ubuntu.com/ubuntu
      - arches:
        - s390x
        - arm64
        - armhf
        - powerpc
        - ppc64el
        - riscv64
        uri: http://ports.ubuntu.com/ubuntu-ports
    preserve_sources_list: false
  codecs:
    install: false
  drivers:
    install: false
  identity:
    hostname: localhost
    password: $6$OR1F3IXjXFHJWv6x$QC//5HhN0luMfZ7HbsVCi8WwrxYINqhN9l2TDUBJ2ZHs0t2fD.JmALSQDevHfqqj.0rEtXQL8odIoCjC7scnE0
    realname: username_u1   ## 注意修改
    username: username_u1   ## 注意修改
  kernel:
    package: linux-generic
  keyboard:
    layout: us
    toggle: null
    variant: ''
  locale: en_US.UTF-8
  network:
    ethernets:
      enp23s0f0:
        dhcp4: true
    version: 2
  source:
    id: ubuntu-server-minimal
    search_drivers: false
  ssh:
    allow-pw: true
    authorized-keys: []
    install-server: true
  storage:
    swap:
      size: 0
    config:
    - ptable: gpt
      path: /dev/sda
      wipe: superblock-recursive
      preserve: false
      name: ''
      grub_device: true
      type: disk
      id: disk-sda
    - device: disk-sda
      size: 1048576
      flag: bios_grub
      number: 1
      preserve: false
      grub_device: false
      path: /dev/sda1
      type: partition
      id: partition-2
    - device: disk-sda
      size: 524288000
      wipe: superblock
      number: 2
      preserve: false
      grub_device: false
      path: /dev/sda2
      type: partition
      id: partition-3
    - fstype: ext4
      volume: partition-3
      preserve: false
      type: format
      id: format-1
    - device: disk-sda
      size: 322122547200
      wipe: superblock
      number: 3
      preserve: false
      grub_device: false
      path: /dev/sda3
      type: partition
      id: partition-4
    - fstype: xfs
      volume: partition-4
      preserve: false
      type: format
      id: format-2
    - device: disk-sda
      size: 637006774272
      wipe: superblock
      number: 4
      preserve: false
      grub_device: false
      path: /dev/sda4
      type: partition
      id: partition-5
    - fstype: xfs
      volume: partition-5
      preserve: false
      type: format
      id: format-3
    - path: /
      device: format-3
      type: mount
      id: mount-3
    - path: /boot
      device: format-1
      type: mount
      id: mount-1
    - path: /data
      device: format-2
      type: mount
      id: mount-2
  updates: security
  version: 1
  late-commands:
    - rm /target/etc/apt/apt.conf.d/99needrestart
    - echo 'username_u1         ALL=(ALL)       NOPASSWD:ALL' > /target/etc/sudoers.d/username_u1  #注意修改
    - echo 'PermitRootLogin yes' >> /target/etc/ssh/sshd_config

  

  • cobbler 操作
#检查是否有 ubuntu 22.04 的 signature,如果没有就执行update
cobbler signature report|grep jammy
cobbler signature update

# 导入镜像
cobbler import --arch=x86_64  --path=/iso/ubuntu-22.04.3 --name=ubu22

# 检查 distro 列表
cobbler distro list
# 会输出
ubu22-casper-x86_64

# 生成 cobbler loaders,目录 /var/lib/cobbler/loaders
cobbler mkloaders

# 导入 user-data 数据,cobbler 会查找 /var/lib/cobbler/templates/user-data
cobbler profile  edit --name=ubu22-casper-x86_64 --autoinstall=user-data

# 将 user-data 拷贝一份到 /var/www/cobbler/pub/目录,最后安装时根据 该目录下的文件来安装的
ln -s /var/lib/cobbler/templates/user-data /var/www/cobbler/pub/user-data
# 创建 meta-data 空文件
touch /var/www/cobbler/pub/meta-data 

# 执行 cobbler profile
cobbler profile edit --kernel-options="url=http://172.19.4.34/cblr/pub/ubuntu-22.04.3-live-server-amd64.iso \
ip=dhcp autoinstall \
cloud-config-url=/dev/null \
ds=nocloud-net;s=http://172.19.4.34/cblr/pub/" --name=ubu22-casper-x86_64

cobbler sync  # 输出 TASK COMPLETE

cat /var/lib/tftpboot/pxelinux.cfg/default
DEFAULT menu
PROMPT 0
MENU TITLE Cobbler | <https://cobbler.github.io>
TIMEOUT 200
TOTALTIMEOUT 6000
ONTIMEOUT local

LABEL local
        MENU LABEL (local)
        MENU DEFAULT
        LOCALBOOT -1

LABEL ubu22-casper-x86_64
    MENU LABEL ubu22-casper-x86_64
    kernel /images/ubu22-casper-x86_64/vmlinuz
    append initrd=/images/ubu22-casper-x86_64/initrd url=http://172.19.4.34/cblr/pub/ubuntu-22.04.3-live-server-amd64.iso ip=dhcp autoinstall cloud-config-url=/dev/null ds=nocloud-net;s=http://172.19.4.34/cblr/pub/  auto-install/enable=true priority=critical netcfg/choose_interface=auto url=http://172.19.4.34/cblr/svc/op/autoinstall/profile/ubu22-casper-x86_64 hostname=ubu22-casper-x8664 domain=local.lan suite=jammy
    ipappend 2
MENU end

  

至此完成。
posted @ 2025-03-19 10:46  cptao  阅读(838)  评论(0)    收藏  举报