Cloud-init 总是添加 Ubuntu 用户?

Cloud-init 总是添加 Ubuntu 用户?

我正在使用 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'

相关内容