云镜像,内置启动初始化配置文件及说明

cat /etc/cloud/cloud.cfg|egrep -v "^$|^#"
users:
   - default
disable_root: true
preserve_hostname: false
cloud_init_modules:
 - migrator
 - seed_random
 - bootcmd
 - write-files
 - growpart
 - resizefs
 - disk_setup
 - mounts
 - set_hostname
 - update_hostname
 #- update_etc_hosts, 会修改 /etc/hosts 自定义,重启后还原
 - ca-certs
 - rsyslog
 - users-groups
 - ssh
cloud_config_modules:
 - wireguard
 - snap
 - ubuntu_autoinstall
 - ssh-import-id
 - keyboard
 - locale
 - set-passwords
 - grub-dpkg
 - apt-pipelining
 - apt-configure
 - ubuntu-advantage
 - ntp
 - timezone
 - disable-ec2-metadata
 - runcmd
 - byobu
cloud_final_modules:
 - package-update-upgrade-install
 - fan
 - landscape
 - lxd
 - ubuntu-drivers
 - write-files-deferred
 - puppet
 - chef
 - ansible
 - mcollective
 - salt-minion
 - reset_rmc
 - refresh_rmc_and_interface
 - rightscale_userdata
 - scripts-vendor
 - scripts-per-once
 - scripts-per-boot
 - scripts-per-instance
 - scripts-user
 - ssh-authkey-fingerprints
 - keys-to-console
 - install-hotplug
 - phone-home
 - final-message
 - power-state-change
system_info:
   # This will affect which distro class gets used
   distro: ubuntu
   # Default user name + that default users groups (if added/used)
   default_user:
     name: ubuntu
     lock_passwd: True
     gecos: Ubuntu
     groups: [adm, audio, cdrom, dialout, dip, floppy, lxd, netdev, plugdev, sudo, video]
     sudo: ["ALL=(ALL) NOPASSWD:ALL"]
     shell: /bin/bash
   network:
     renderers: ['netplan', 'eni', 'sysconfig']
     activators: ['netplan', 'eni', 'network-manager', 'networkd']
   # Automatically discover the best ntp_client
   ntp_client: auto
   # Other config here will be given to the distro class and/or path classes
   paths:
      cloud_dir: /var/lib/cloud/
      templates_dir: /etc/cloud/templates/
   package_mirrors:
     - arches: [i386, amd64]
       failsafe:
         primary: https://mirrors.tuna.tsinghua.edu.cn/ubuntu
         security: https://mirrors.tuna.tsinghua.edu.cn/ubuntu
       search:
         primary:
           - http://%(ec2_region)s.ec2.archive.ubuntu.com/ubuntu/
           - http://%(availability_zone)s.clouds.archive.ubuntu.com/ubuntu/
           - http://%(region)s.clouds.archive.ubuntu.com/ubuntu/
         security: []
     - arches: [arm64, armel, armhf]
       failsafe:
         primary: http://ports.ubuntu.com/ubuntu-ports
         security: http://ports.ubuntu.com/ubuntu-ports
       search:
         primary:
           - http://%(ec2_region)s.ec2.ports.ubuntu.com/ubuntu-ports/
           - http://%(availability_zone)s.clouds.ports.ubuntu.com/ubuntu-ports/
           - http://%(region)s.clouds.ports.ubuntu.com/ubuntu-ports/
         security: []
     - arches: [default]
       failsafe:
         primary: http://ports.ubuntu.com/ubuntu-ports
         security: http://ports.ubuntu.com/ubuntu-ports
   ssh_svcname: ssh
  • 如果不需要
方法1
sudo touch /etc/cloud/cloud-init.disabled
#init 6
reboot

方法2

sudo apt purge cloud-init -y
sudo rm -rf /etc/cloud && sudo rm -rf /var/lib/cloud/
reboot

这个云初始化配置文件cloud.cfg定义了许多Ubuntu系统的默认配置。我会解释其中的一些部分:

users: 定义了默认用户列表。这里只有一个默认用户default。

disable_root: true 禁用root用户登录。

preserve_hostname: false 允许更改主机名。

cloud_init_modules 定义了云初始化过程要运行的模块列表。这些模块用于执行许多初始配置任务,如设置主机名、安装ssh密钥、配置用户等。

cloud_config_modules 定义了更高级的模块,用于配置snap应用商店、键盘布局、时区等。

cloud_final_modules 定义了云初始化完成后要运行的模块。这些模块通常用于配置软件包管理器、扫描qemu客户机等。

system_info 定义了一些系统级信息,如默认的软件包镜像源、默认shell、网络设置工具等。

paths 定义了一些重要目录的路径,如云初始化数据目录/var/lib/cloud/。

package_mirrors 定义了软件包镜像源列表。它包含Ubuntu的默认镜像以及一些区域镜像源。

ssh_svcname 定义了SSH服务的名称为ssh。

所以总的来说,这个配置文件定义了Ubuntu系统在EC2等环境中启动时的许多默认配置,以实现自动化部署和配置。用户可以根据需要对这个文件进行自定义配置。