Cloud-init가 항상 Ubuntu 사용자를 추가합니까?

Cloud-init가 항상 Ubuntu 사용자를 추가합니까?

Proxmox용 템플릿을 생성하기 위해 Packer와 cloud-init를 사용하고 있습니다. 나는 너무 길을 잃고 짜증이 난다. 템플릿을 만들 때마다 내 사용자는 uid와 gid 1000으로 생성되고 그 직후 Ubuntu 사용자는 uid 1001과 gid 1002로 생성됩니다. 어디에서나 이런 일이 일어나는 것을 찾을 수 없습니다. 문서를 읽었는데 사용자가 정의되면 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에서도 이 문제가 나타납니다.

해결 방법으로 실행할 수 있는 플레이북을 추가하고 여기에서 공유했습니다.

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

관련 정보