我正在使用 Packer 和 cloud-init 为 proxmox 创建模板。我感到非常迷茫和恼火。每次我创建模板时,都会创建具有 uid 和 gid 1000 的用户,然后紧接着会创建具有 uid 1001 和 gid 1002 的 Ubuntu 用户。我找不到任何地方发生这种情况的人。我阅读了文档,它说如果定义了用户,则不会创建 Ubuntu 用户。我错了吗,我有太多不同的云配置,我数不清了。更烦人的是,每次我尝试在创建模板后使用自动化功能删除 Ubuntu 用户时,下次启动时 Ubuntu 用户就会回到那里。我真是不知所措。偶然发现了一个奇怪的错误,我做错了什么?我疯狂地查看了日志,它只说创建了 ubuntu 用户,却没有提到原因。
#cloud-config
autoinstall:
version: 1
locale: en_US
keyboard:
layout: us
ssh:
install-server: true
allow-pw: true
disable_root: true
ssh_quiet_keygen: true
allow_public_ssh_keys: true
packages:
- qemu-guest-agent
- sudo
storage:
layout:
name: direct
swap:
size: 0
user-data:
package_upgrade: false
timezone: (user timezone)
users:
- name: (user)
groups: [adm, sudo]
lock-passwd: false
sudo: ALL=(ALL) NOPASSWD:ALL
shell: /bin/bash
passwd:(user password)
ssh_authorized_keys:
- (user ssh key)
答案1
在 22.04.2 iso 和 packer proxmox v1.1.3 上也看到了这个问题。
最后只是添加了一个 ansible playbook 来运行它,作为一种解决方法,在这里分享
- name: Remove the user 'ubuntu'
ansible.builtin.user:
name: ubuntu
state: absent
remove: yes #delete dirs
- name: Remove sudo access for deleted 'ubnt' user
ansible.builtin.lineinfile:
path: /etc/sudoers.d/90-cloud-init-users
state: absent
search_string: 'ubuntu ALL=(ALL) NOPASSWD:ALL'
validate: 'visudo -cf %s'
- name: Remove left over config for deleted 'ubnt' user
ansible.builtin.lineinfile:
path: /etc/sudoers.d/90-cloud-init-users
state: absent
search_string: '# User rules for ubuntu'
validate: 'visudo -cf %s'