按照这里的指令https://wiki.ubuntu.com/FoundationsTeam/AutomatedServerInstalls#Running_a_truly_automatic_autoinstall 当我用于存储时:
storage:
layout:
name: lvm
Run Code Online (Sandbox Code Playgroud)
它创建 4GB 的根分区并且不创建交换。当我使用直接布局时
storage:
layout:
name: direct
Run Code Online (Sandbox Code Playgroud)
它创建具有磁盘上可用空间的根分区,并创建交换。有什么方法可以直接查看它是如何配置布局并修改该配置来调整我的需求的?我的意思是使用基于操作的配置,例如记录在此处:https : //wiki.ubuntu.com/FoundationsTeam/AutomatedServerInstalls/ConfigReference#storage
我的意思是类似以下内容:
storage:
grub:
install_devices:
- esp-partition
swap:
filename: swap.img
size: 4GB
config:
- type: disk
id: disk0
ptable: gpt
wipe: superblock
grub_device: true
match:
size: largest
- id: esp-partition # create partitions on disk (like sda1)
type: partition
device: disk0
size: 512MB
flag: boot # EFI system partition needs boot flag
- type: partition
id: boot-partition
device: disk0
size: 1GB
- type: …Run Code Online (Sandbox Code Playgroud) 多年来,我一直在部署 Ubuntu(自 12.04 以来)以及其他带有 pxelinux 的 Linux。使用 Debian 安装程序,它工作得很好。这些天我一直在尝试部署 20.04,它基本上也可以工作。只有一个问题,“用户数据”文件从未被拿起。无论我做什么,我总是会收到安装人员提出的所有问题。这是我的环境:
## cloud-config
autoinstall:
version: 1
apt:
preserve_sources_list: false
primary:
- arches: [default]
uri: [...]/images/ubuntu
identity: {realname: wrsadmin, username: wrsadmin}
keyboard: {layout: us, toggle: null, variant: ''}
locale: en_US
network:
ethernets:
enp0s3:
critical: true
dhcp-identifier: mac
dhcp4: true
nameservers:
addresses: [128.224.160.11, 128.224.160.12]
search: [wrs.com., corp.ad.wrs.com.]
version: 2
ssh:
allow-pw: true
authorized-keys: []
install-server: true
late-commands:
- rm -f /target/etc/resolv.conf
- wget -O /target/etc/resolv.conf [...]/ubuntu/resolv.conf
- chattr +i /target/etc/resolv.conf
Run Code Online (Sandbox Code Playgroud)
我尝试通过 cloud-init 初始化 ubuntu 16.04 服务器。第一次启动服务器时,我想创建以下分区:
当我定期启动机器时(没有任何 cloud-init),我有一个 sda 和 sda1(我认为 sda1 是交换)。
有人可以通过“有效”或“工作”示例帮助我解决问题或帮助我纠正我的方法吗?
或者这不可能在我所在的磁盘上进行分区?
顺便提一句。我的主人是 Hetzner
这是我目前的方法:
#cloud-config
device_aliases: {'root-disk': '/dev/sda'}
resize_rootfs: true
disk_setup:
root-disk:
table_type: 'gpt'
layout:
- 75
- [25, 82]
overwrite: true
fs_setup:
- label: root-fs
device: 'root-disk'
filesystem: 'ext4'
- label: data-disk
device: root-disk
filesystem: 'xfs'
Run Code Online (Sandbox Code Playgroud) 如果我在 EC2 上启动标准 Ubuntu AMI 时将 shell 脚本粘贴到用户数据框中,我使用的是 cloud-init,不是吗?我的问题是它在哪里记录这样一个脚本的输出?我必须做些什么才能打开登录吗?我在任何地方都找不到它的日志。
Ubuntu-raring-13.04-amd64-server-20130423 (ami-c30360aa)
谢谢!
我已经阅读了整个autoinstall 文档和整个cloud-init 文档,但我仍然不明白在 autoinstall 中安装软件包的能力与通过用户数据部分安装软件包的能力之间明显的重叠/冗余。
我想要的是安装软件包并将它们烘焙到我的映像中。我不想在克隆映像时等待软件包安装。
这篇文章并不是专门针对安装软件包的,但它让我看到了一个事实,即存在“安装环境”和“已安装环境”(或者“目标”是更好的术语吗?)。我认为如果我了解这是如何工作的将会有所帮助。
我认为,同样相关的是,“首次启动”是否发生在自动安装过程中,或者“首次启动”发生在我克隆映像时吗?
自动安装和用户数据之间还有其他冗余......但我认为如果我能更好地理解上述内容将会有所帮助。
作为记录,我使用打包程序在 Proxmox 中创建模板。
cloud-init ×6
20.04 ×3
22.04 ×1
autoinstall ×1
automatic ×1
mount ×1
partitioning ×1
pxe ×1
server ×1
user-data ×1