Como eu defino uma senha em uma imagem de nuvem do Ubuntu?

3

Estou tentando iniciar o .ova com o VirtualBox e quero importar a mesma imagem posteriormente no vSphere.

As imagens da nuvem do Ubuntu não têm mais uma senha padrão.

Gostaria de editar o .ova para configurar uma senha. (e mais tarde chaves SSH)

O arquivo .ova baixado tem uma propriedade de senha.

Eu encontrei uma ferramenta chamada cot (ferramenta OVF comum) para editar as propriedades.

Eu tentei:

cot edit-properties ubuntu-18.04-server-cloudimg-amd64-custom.ova -p password=ubuntu

Também tentei:

cot edit-properties ubuntu-18.04-server-cloudimg-amd64-custom.ova -p user-data="password: ubuntu"

Ambas as tentativas sem sucesso. (incapaz de entrar)

Existe uma etapa para aplicar essa configuração nas imagens ou essas propriedades são transmitidas para a imagem quando ela é iniciada?

Alguma idéia?

Atualizado: (respostas a perguntas básicas)

  1. Como primeiro passo, quero acesso root, para poder testar a configuração de rede do adaptador, ponte, rotas, DNS.
  2. Um novo usuário com chave ssh e sudo é o segundo objetivo.
  3. Ubuntu 17.10 (breve 18.04)
  4. VirtualBox 5.2.14
  5. vSphere 5.5
por Eddy Pronk 09.07.2018 / 15:51

7 respostas

3

Perguntas

Seria útil se você pudesse adicionar informações básicas à pergunta, como:

  1. Por que você precisa definir uma senha de root? Talvez haja um caminho alternativo. O que você está tentando realizar?
  2. De acordo com (1), a maneira recomendada pode ser uma entre várias opções: usuário root com senha, um novo usuário com chave ssh e sudo, outros.
  3. Qual é o seu sistema operacional host?
  4. versão do VirtualBox?
  5. Versão do VMware vsphere?

Plano geral

  1. Defina as configurações corretas para o Virtualbox
  2. Crie os arquivos de dados do usuário e de metadados
  3. Gere a imagem ISO para cloud-init
  4. Inicialize a VM com a imagem ISO anexada como um dispositivo removível

Virtualbox

  1. Você pode importar o OVA como um appliance, usar um disco IMG ou VMDK. Você pode fazer isso na GUI ou na linha de comando.
  2. Você deve ativar a porta serial nas configurações de hardware da VM. Opcionalmente, , aponte para um arquivo não processado em sua casa, para que você possa ver o registro em caso de problemas.
  3. Você precisa do iso / img gerado abaixo para cloud-init e montá-lo no dispositivo de dvd ou cd para a VM que você importou. Se a VM não incluir um dispositivo de DVD / CD, você precisará adicionar um. Adicione-o como IDE e master, depois carregue o ISO gerado abaixo.

Cloud-Init

Se você está usando as Imagens da nuvem do Ubuntu , você deve usar Cloud-Init para definir a configuração inicial, permite que você configure:

  • Localidade padrão
  • Nome do host
  • Gerando e configurando chaves privadas SSH

... entre outras funcionalidades.

O comportamento do Cloud-init pode ser configurado por meio do sinalizador de dados do usuário para comandos sequenciais ou da chamada de um arquivo de configuração do tipo YAML com as configurações a serem aplicadas.

Isso pode ser feito através do argumento --user-data ou --user-data-file quando você está executando inline, ou você pode fazê-lo com o ISO. Vou mostrar os passos para o modo de montagem ISO.

Eu não configurarei uma senha para root ou o usuário, estou criando um novo usuário com acesso SSH via chaves públicas ssh e permitindo as permissões sudo do usuário.

Aqui está um arquivo cloud-config de usuário-dados , crie-o com seu editor de texto e respeite o nome ou o arquivo de origem não será uma semente válida e não funcionará.

#cloud-config
users:
  - default
  - name: eddypronk
    ssh-authorized-keys:
      - <your user public key here>
    sudo: ALL=(ALL) NOPASSWD:ALL
    groups: sudo
    shell: /bin/bash

Você também pode ter metadados para o nome do host e outras definições:

instance-id: set-an-unique-instance-name-id
local-hostname: set-the-hostname

Depois de criar os arquivos, gere um arquivo iso para carregar como um cdrom ou dvd do gerenciador virtual:

genisoimage -output nocloud.iso -volid cidata -joliet -rock user-data meta-data

Você precisa de genisoimage para esta ou cloud-utils tool cloud-localds para esta outra opção:

cloud-localds my-seed.img my-user-data my-meta-data

Lembre-se de que se você deixar a semente / nocloud iso montada, ela irá sobrescrever as configurações na VM com as dos arquivos de dados. E se você mudar alguma coisa nos dados do usuário ou meta-dados, precisará reconstruir a iso ou img.

Inicialização

Agora você pode inicializar a VM. Por padrão, você não pode ssh para a máquina usando o nome de usuário e senha ou conectar-se através do console VNC (a janela "gráfica" da VM no Virtualbox). Você precisa usar o método de autenticação de chave pública / privada com o ssh. Isso significa habilitar um usuário com uma chave ssh pública no arquivo YAML user-data . Além disso, a sução de privilégios do sudo para a conta do Ubuntu é sem senha, mas a conta é bloqueada por padrão.

    
por 16.07.2018 / 06:56
4

Aqui está um link para a possível solução link

Crie um arquivo chamado userdata.txt com o conteúdo abaixo:

#cloud-config
password: mypasswd
chpasswd: { expire: False }
ssh_pwauth: True

Agora, passe o arquivo userdata.txt como uma entrada ao criar uma nova instância, conforme mostrado abaixo:

#openstack server create --flavor m1.small --image Ubuntu-Trusty --key-name  mykey --nic net-id=88536e89-12a9-41eb-8aed-57983ee299e8 --security-group default --user-data=userdata.txt my-ubuntu

O comando acima irá definir a senha mypasswd para o usuário padrão ubuntu .

    
por 16.07.2018 / 14:29
1

de acordo com a web, a senha das imagens é gerada aleatoriamente.

O nome de usuário será ubuntu, mas as imagens irão 'cuspir' a senha gerada aleatoriamente em sua primeira inicialização.

"Obtenha a senha para 'ubuntu' e faça o login A seleção padrão no menu grub resultará em uma senha gerada aleatoriamente para o usuário 'ubuntu' na primeira inicialização. A senha é escrita em dois lugares, o console e o dispositivo serial.No console, você verá linhas como: "

Leia este link, passo 4:

link

    
por 12.07.2018 / 16:29
1

Minha suposição é que a propriedade de senha que você está definindo é redefinida quando a VM está sendo iniciada, porque o cloud-init desabilita a autenticação de senha por padrão. Pode ser que você possa tentar montar a imagem e configurar o cloud.cfg como abaixo:

/etc/cloud/cloud.cfg

#cloud-config
password: mysecret
chpasswd: { expire: False }
ssh_pwauth: True

Isso deve ativar a autenticação de senha e definir uma senha, conforme mencionado no link a seguir:

link

    
por 13.07.2018 / 10:11
1

A imagem que você tem tem o cloud-init instalado. Isso significa que você pode usar Fonte de dados NoCloud para carregar a configuração de uma imagem de disquete (vfat) ou cd (ISO9660) . Nessa imagem, você pode ter um arquivo cloud-config, no qual pode configurar as chaves ssh

Para mais detalhes, leia também: link

    
por 13.07.2018 / 21:07
1

18.04 configuração passo-a-passo

Em suma, você precisa:

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

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

A unidade user-data.img deve ser a segunda após a primeira imagem de entrada.

Aqui eu descrevo um exemplo completo de QEMU funcional mínimo: link

    
por 19.11.2018 / 12:12
0

Por que você não importa o OVA, inicializa a VM no VBox, adiciona uma senha, exporta a VM para um OVA e usa isso da próxima vez que precisar criar uma nova VM?

    
por 12.07.2018 / 02:04