22.04 服务器自动安装密码

22.04 服务器自动安装密码

我正在使用 Packer 为 Ubuntu Server 22.04 生成新的 VMware vCenter 模板。Packer 构建过程非常顺利,直到接近尾声时,似乎遇到了 ssh 密码问题。当我尝试登录时,通过用户数据设置的密码不起作用,尽管 Packer 能够使用密码执行脚本而没有任何问题。我一开始使用的用户数据文件与我在 Focal 中成功使用的文件基本相同。我多次重新生成密码,但都没有成功,这个加密密码对 Focal 来说很管用。

有人发现我的用户数据有问题吗?我是否遗漏了 22.04 中的一些问题?我尝试过使用和不使用“用户”块,但似乎没有什么区别。

谢谢!

#cloud-config
autoinstall:
    version: 1
    early-commands:
        # workaround to stop ssh for packer as it thinks it timed out
        - sudo systemctl stop ssh
    users:
    - default
    - name: ansible
      passwd: '$6$rounds=4096$UHMNxOtuu$.4zAwGuhVEC8w06EnkMbWPMUJx/4VMDOyk.J9a9SksieOJcZflaU61w7El.V5QBTdsNnqsYncNPcJ6cxOKwgI1'
      shell: /bin/bash
      lock-passwd: false
      ssh_pwauth: True
      chpasswd: { expire: False }
      sudo: ALL=(ALL) NOPASSWD:ALL
      groups: users, admin
      locale: en_US
      keyboard:
          layout: en
          variant: us
    packages: [open-vm-tools]
    network:
        network:
            version: 2
            ethernets:
                ens192:
                    dhcp4: true
    identity:
        hostname: ubuntu-server
        username: ubuntu
        password: '$6$rounds=4096$UHMNxOtuu$.4zAwGuhVEC8w06EnkMbWPMUJx/4VMDOyk.J9a9SksieOJcZflaU61w7El.V5QBTdsNnqsYncNPcJ6cxOKwgI1'
    ssh:
        install-server: yes
        allow-pw: yes
       
    storage:
        layout:
            name: lvm
    user-data:
        disable_root: false
    late-commands:
        - echo 'ubuntu ALL=(ALL) NOPASSWD:ALL' > /target/etc/sudoers.d/ubuntu
        - curtin in-target --target=/target -- chmod 440 /etc/sudoers.d/ubuntu

编辑:我能够启动模板,但似乎从未创建过“ansible”用户。我可以在 /var/log/cloud-init.log 中看到创建了 ubuntu 用户,但 ansible 用户从未出现在该日志中。

答案1

您的users部分需要位于该user-data部分之下。

此外,如果您指定了一个identity部分,那么该users部分将被完全忽略。这没有记录,要么是一个错误,要么是文档记录不全。

这是示例配置,它将创建ubuntu用户和ansible用户,并为他们分配相同的密码。用户ubuntu是根据default列表项创建的,然后chpasswd用于更新其密码。这只是完整user-data文件的片段。文件的其余部分必须不是包含一个identity部分。

#cloud-config
autoinstall:
  user-data:
    users:
    - default
    - name: ansible
      passwd: $6$rounds=4096$UHMNxOtuu$.4zAwGuhVEC8w06EnkMbWPMUJx/4VMDOyk.J9a9SksieOJcZflaU61w7El.V5QBTdsNnqsYncNPcJ6cxOKwgI1
      shell: /bin/bash
      lock-passwd: false
      sudo: ALL=(ALL) NOPASSWD:ALL
      groups: users, admin
    chpasswd:
      expire: false
      list:
        - ubuntu:$6$rounds=4096$UHMNxOtuu$.4zAwGuhVEC8w06EnkMbWPMUJx/4VMDOyk.J9a9SksieOJcZflaU61w7El.V5QBTdsNnqsYncNPcJ6cxOKwgI1

也可以看看

笔记

我在 Ubuntu 22.04 上成功测试了这个代码片段(subiquity 22.04.2

相关内容