云镜像,内置启动初始化配置文件及说明
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等环境中启动时的许多默认配置,以实现自动化部署和配置。用户可以根据需要对这个文件进行自定义配置。