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 劇本以供其運行作為解決方法,在這裡分享

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

相關內容