Como definir uma senha para Ubuntu Cloud Images (ou seja, NÃO usar ssh)

Como definir uma senha para Ubuntu Cloud Images (ou seja, NÃO usar ssh)

Estou executando uma nuvem OpenStack com uma configuração de rede muito específica, que torna impossível para uma instância se comunicar com qualquer coisa no mundo externo até que eu faça login nela e defina vários arquivos de configuração.

Como resultado disso, eunão podefaça login nas instâncias usando chaves SSH. Existe uma maneira de definir uma senha padrão em uma imagem de nuvem do Ubuntu 12.04 (tem que ser 12.04) para que eu possa fazer login diretamente no console do Horizon? Tentei usar o procedimento descrito emhttps://ask.openstack.org/en/question/5531/defining-default-user-password-for-ubuntu-cloud-image/mas não funcionou no Ubuntu 12.04... mas funcionou no 14.04.

Responder1

Configuração do 18.04 passo a passo

Resumindo, você precisa de:

sudo apt-get install cloud-image-utils

cat >user-data <<EOF
#cloud-config
password: asdfqwer
chpasswd: { expire: False }
ssh_pwauth: True
EOF

cloud-localds user-data.img user-data

# user-data.img MUST come after the rootfs. 
qemu-system-x86_64 \
-drive file=ubuntu-18.04-server-cloudimg-amd64.img,format=qcow2 \
-drive file=user-data.img,format=raw
...

e agora você pode fazer login com:

  • nome de usuário:ubuntu
  • senha:asdfqwer

Aqui eu descrevo um exemplo completo e mínimo de trabalho do QEMU:Existe alguma imagem QEMU Ubuntu pré-construída (32 bits) online?

Responder2

Você pode primeiro criar uma imagem de máquina virtual (VM) do virtualbox ou vmware que já possui um par de chaves. como você pode controlar sua caixa virtual ou VMware livremente, você pode obter o par de chaves do host virtual.

  1. em seguida, importe o par de chaves para o seu openstack.

  2. carregue esta imagem de máquina virtual

  3. crie uma instância (A) a partir desta imagem

  4. crie uma instância (B) a partir da imagem da nuvem com o par de chaves (carregado na etapa 1) injetado

  5. abra o console (no horizonte) da instância A, agora você pode conectar a instância B de A, porque B injetou a chave pública de A

  6. depois de logado, você pode configurar o ambiente para a instância B e alterar a configuração

Responder3

sua imagem é: focal-server-cloudimg-amd64.img

rm -f vm_0001-focal-server-cloudimg-amd64.qcow2
qemu-img create -f qcow2 -F qcow2 -b focal-server-cloudimg-amd64.img  vm_0001-focal-server-cloudimg-amd64.qcow2 20G
qemu-img info vm_0001-focal-server-cloudimg-amd64.qcow2
VM_NAME="ubuntu-20-cloud-image"
USERNAME="programster"
PASSWORD="thisok"
echo "#cloud-config
system_info:
  default_user:
    name: $USERNAME
    home: /home/$USERNAME

password: $PASSWORD
chpasswd: { expire: False }
hostname: $VM_NAME

# configure sshd to allow users logging in using password 
# rather than just keys
ssh_pwauth: True
" | sudo tee user-data
cloud-localds ./cidata.iso user-data
qemu-system-x86_64 -m 2048 -smp 4 -hda ./vm_0001-focal-server-cloudimg-amd64.qcow2 \
      -cdrom ./cidata.iso -device e1000,netdev=net0 -netdev user,id=net0,hostfwd=tcp::5555-:22 -nographic

informação relacionada