我正在尝试在我的 Ubuntu 服务器自动安装程序中配置 docker。
大多数情况下,一切都按预期进行,但我无法弄清楚如何将我的用户作为此自动安装的一部分添加到 docker 组。
如果我使用这些identity:
字段,可以很好地创建用户,但我无法将用户添加到 docker 组。
因此我尝试了users:
“用户数据”文件中的功能,但这导致安装程序挂起并且无法完成:
#cloud-config
autoinstall:
version: 1
users:
- name: dev
passwd: "$y$j9T$XepKXdMTA7iJf8iCSNxpq.$0rSTu6/CrWNDM/wZvfSY0otUBUP5GjAKTvWiZ2puxS2"
primary_group: dev
groups: docker
locale: en_US
keyboard:
layout: us
ssh:
install-server: true
apt:
sources:
docker:
# https://download.docker.com/linux/ubuntu/dists/
source: deb [arch=amd64] https://download.docker.com/linux/ubuntu jammy stable
#
key: |
-----BEGIN PGP PUBLIC KEY BLOCK-----
<pgp text is here but figured that didn't need to make the post longer>
-----END PGP PUBLIC KEY BLOCK-----
packages:
- tree
- wget
- curl
- gnupg
- ca-certificates
- lsb-release
- docker-ce
- docker-ce-cli
- containerd.io
late-commands:
- cp /cdrom/data_files/setup.sh /target/root/
- curtin in-target --target=/target -- chmod +x /root/setup.sh
- curtin in-target --target=/target -- bash /root/setup.sh
- shutdown -h now
于是我回到田野identity:
,尝试其他的事情。
正如您在我最近的命令中看到的,我调用了一个脚本。我尝试usermod -aG docker dev
向该脚本添加内容,但脚本失败并显示错误代码 -1。我没有收集到其他信息。
此外,我尝试在 中添加相同的 usermod 命令late-commands
,但失败了。然后我尝试添加 usermod 命令,但runcmd
同样失败了。我无法确定失败的原因,因为日志只是说失败了或返回了 6 个错误代码。我尝试查找,但没有成功。
显然我做错了什么,但我不确定那是什么。作为自动安装程序的一部分,将用户添加到 docker 组或任何组的正确方法是什么?
编辑:
根据建议,我尝试了此格式users:
。安装完成后,我无法登录。
user-data:
users:
- default
- name: dev
passwd: "$y$j9T$XepKXdMTA7iJf8iCSNxpq.$0rSTu6/CrWNDM/wZvfSY0otUBUP5GjAKTvWiZ2puxS2"
primary_group: dev
groups: users, admin, docker
sudo: ALL=(ALL)
hostname: FixMe
答案1
我认为您需要将“用户”部分包含在“用户数据”部分中。如下所示:
#cloud-config
autoinstall:
version: 1
locale: en_US
keyboard:
layout: us
ssh:
install-server: true
apt:
sources:
docker:
# https://download.docker.com/linux/ubuntu/dists/
source: deb [arch=amd64] https://download.docker.com/linux/ubuntu jammy stable
#
key: |
-----BEGIN PGP PUBLIC KEY BLOCK-----
<pgp text is here but figured that didn't need to make the post longer>
-----END PGP PUBLIC KEY BLOCK-----
packages:
- tree
- wget
- curl
- gnupg
- ca-certificates
- lsb-release
- docker-ce
- docker-ce-cli
- containerd.io
late-commands:
- cp /cdrom/data_files/setup.sh /target/root/
- curtin in-target --target=/target -- chmod +x /root/setup.sh
- curtin in-target --target=/target -- bash /root/setup.sh
- shutdown -h now
user-data:
users:
- name: dev
passwd: "$y$j9T$XepKXdMTA7iJf8iCSNxpq.$0rSTu6/CrWNDM/wZvfSY0otUBUP5GjAKTvWiZ2puxS2"
primary_group: dev
groups: docker
hostname: computername
fqdn: copmutername.something.something
在我的工作自动安装中,我在用户下列出了以下内容:
- name: localuser
gecos: Local Ubuntu User
sudo: ALL=(ALL) (ALL)
passwd: <hashed password>
shell: /bin/bash
groups: [adm, cdrom, dip, lxd, sudo]
lock_passwd: false
我使用以下命令生成密码:
mkpasswd --method=SHA-512
注意:您必须在单独的系统上执行此操作。mkpasswd 是 whois 包的一部分。