我正在尝试创建一个配置文件来自动创建容器,但在使用 cloud-init 时遇到了问题。由于某种原因,没有为用户设置密码,也没有将其添加为 sudoer。以下是 YAML:
config:
boot.autostart: "false"
limits.cpu: "2"
limits.memory: "4GB"
user.user-data: |
#cloud-config
users:
- name: matheus
gecos: Matheus Saraiva da Silva
lock_password: false
plain_text_passwd: tyy7854
ssh-authorized-keys:
- ssh-rsa myrsa
package_update: true
package_upgrade: true
package_reboot_if_required: true
snap:
commands:
00: snap install juju --classic
01: snap install charmcraft --classic
02: snap install node --classic
apt:
preserve_source_list: true
packages:
- gcc
- podman
runcmd:
- usermod, -aG, sudo matheus
- [su, matheus, -c, "wget https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb -P /home/matheus/Downloads"]
- [su, matheus, -c, "sudo dpkg -i /home/matheus/minikube_latest_amd64.deb"]
- [su, matheus, -c, "git config --global user.name matheusssilva"]
- [su, matheus, -c, "git config --global user.email [email protected]"]
description: TaskStack enviroment lxd profile
devices:
eth0:
name: eth0
network: lxdbr0
type: nic
root:
path: /
pool: default
type: disk
name: TaskStack
used_by: []
当我尝试使用 sudo 执行某些操作时,配置文件中的密码不起作用。因此我不得不使用 root 用户更改用户密码#passwd matheus
。这是错误吗?
答案1
您需要将用户添加到sudo
组中,另外您使用的密钥无效lock_password
,应该是lock_passwd
。如果您检查,/var/log/cloud-init.log
您会注意到以下日志:
subp.py[DEBUG]: Running command ['passwd', '-l', 'matheus'] with allowed return codes [0] (shell=False, capture=True)
正在运行,因为默认设置是禁用用户密码
运行cloud-init schema --system
以验证系统云配置用户数据是否有效。