私は、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'