Cloud-init は常に Ubuntu ユーザーを追加しますか?

Cloud-init は常に Ubuntu ユーザーを追加しますか?

私は、proxmox のテンプレートを作成するために Packer と cloud-init を使用しています。途方に暮れてイライラしています。テンプレートを作成するたびに、私のユーザーは uid と gid 1000 で作成され、その直後に Ubuntu ユーザーが uid 1001 と gid 1002 で作成されます。このようなことが起こっている人はどこにもいません。ドキュメントを読むと、ユーザーが定義されている場合は 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プレイブックを追加したので、ここで共有します。

- 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'

関連情報