2023年8月4日 星期五

Ubuntu Server autoinstall cloud-init config file reference

Ubuntu Server autoinstall cloud-init config file reference


在使用cloud-init建立Ubuntu Server autoinstall ISO過程,需要製作autoinstall的user-data。參考ubunt的Automated Server installer config file reference產出個人的user-data


user-data項目說明

user-data為yaml檔,開頭註明為#cloud-conifg
#cloud-config

# autoinstall 設定項目
autoinstall:
  apt:
    disable_components: []
    fallback: abort
    geoip: true
    mirror-selection:
      primary:
      - country-mirror
      - arches:
        - amd64
        - i386
        uri: http://archive.ubuntu.com/ubuntu  
# uri為apt update sites, 可以依需求更改,資料會寫入/etc/apt/sources.list
      - arches:
        - s390x
        - arm64
        - armhf
        - powerpc
        - ppc64el
        - riscv64
        uri: http://ports.ubuntu.com/ubuntu-ports
    preserve_sources_list: false

  codecs:
    install: false
  drivers:
    install: false

# 設定系統帳號, 密碼為加密, 可以使用mkpasswd產出。
  identity:
    hostname: u22
    password: $6$jGYK2yqL/ERewR7A$kGm5GztrXrQPb7L3wa0VAMeaWj/UuJcUVB/M.T.fOkaV8SvFIMdULOfKHyRDkB..85yVsDPJrtpQ3bsj3Rtnt.
    realname: bee01
    username: bee01
  kernel:
    package: linux-generic

# 指定鍵盤
  keyboard:
    layout: us
    toggle: null
    variant: ''

# 指定語言
  locale: en_US.UTF-8

# 網路設定,網路卡依實際名稱設定。設定方式為netplan,可以參考設定。
  network:
    ethernets:
      ens160:
        dhcp4: true
    version: 2

# 指定安裝系統,可以設定ubuntu-server 或 ubuntu-server-minimal。
  source:
    id: ubuntu-server
    search_drivers: false

# 安裝open SSH server
  ssh:
    allow-pw: true
    authorized-keys: []
    install-server: true

# 硬碟分區設定,可以依實際狀況調整
  storage:
    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
      offset: 1048576
      path: /dev/sda1
      type: partition
      id: partition-0
    - device: disk-sda
      size: 42946527232
      wipe: superblock
      number: 2
      preserve: false
      grub_device: false
      offset: 2097152
      path: /dev/sda2
      type: partition
      id: partition-1
    - fstype: xfs
      volume: partition-1
      preserve: false
      type: format
      id: format-0
    - path: /
      device: format-0
      type: mount
      id: mount-0

# 指定swap大小,使用檔案格式
    swap:
      filename: /swap.img
      size: 4G
      maxsize: 4G

# 安裝 packages, 需確定安裝過程是可以連接網路, 會自動安裝。
# 如果沒有對外網路,自動安裝過程會出錯中斷。
  packages:
    - chrony

# 主機時區設定
  timezone: Asia/Taipei

# 自動安裝前執行的動作,還沒有想到作用
# 可以參考後面示範
  early-commands:
    - mkdir /data1
    - touch /data1/early-commands.txt

# 以上設定都自動安裝後,在自動重新開機前執行的動作
# 預計要執行的指令需 curtin in-target來執行,新的硬碟在安裝過程是掛載至/target
# 以下測試是在/ 建立data2目錄,在/data2目錄建立late-commands.txt檔案
# 可以參考後面示範
  late-commands:
    - curtin in-target --target /target mkdir data2
    - curtin in-target --target /target touch data2/late-commands.txt

# 安裝完成後,第一次自動重開機後,使用rnncmd來執行的動作
# 以下測試是在/ 建立data3目錄,在/data2目錄建立runcmd.txt檔案,並停用開機執行ufw service 
# 可以參考後面示範
  user-data:
    runcmd:
      - [ mkdir, /data3 ]
      - [ touch, /data3/runcmd.txt ]
      - [ systemctl, disable, ufw ]

  updates: security
  version: 1

安裝示範

early-commands
usr-data-early-commands







late-commands
usr-data-late-commands





runcmd
usr-data-runcmd














沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。