Como atualizar o contêiner LXC depois de 'do-release-upgrade' para o Wily?

1

Acabei de fazer um do-release-upgrade -m server de

  

Linux boson 3.19.0-31-generic #36-Ubuntu SMP Wed Oct 7 15:04:02 UTC 2015 x86_64 Linux-3.19.0-31-generic-x86_64-with-Ubuntu-15.04-vivid

para

  

Linux boson 4.2.0-16-generic #19-Ubuntu SMP Thu Oct 8 15:35:06 UTC 2015 x86_64 Linux-4.2.0-16-generic-x86_64-with-Ubuntu-15.10-wily

Eu imaginava que os contêineres LXC também seriam atualizados automaticamente. No entanto, embora uname -r retorne 4.2.0-16-generic , o que confirma que o kernel está no Wily, fazer um apt-get update mostra que o contêiner ainda está apontado para o repositório Vivid.

do-release-upgrade , enquanto anexado ao contêiner, retorna bash: do-release-upgrade: command not found .

Como faço para atualizar os contêineres LXC também? Existe uma ferramenta disponível?

(eu não tenho o X instalado)

    
por Mausy5043 30.10.2015 / 11:29

4 respostas

1

Eu também pesquisei uma pergunta semelhante e encontrei sua pergunta. :) Antes de começar a testar, eu crio um instantâneo para o contêiner, caso eu estrague algo quando estou tentando. Felizmente, a atualização é muito suave.

Acho que o contêiner não será atualizado automaticamente quando o host for atualizado.

Acabei de fazer uma atualização de release do Wily para o Xenial para meu contêiner LXD. Abaixo está o que estou fazendo. Eu acho que seria semelhante para o recipiente LXC.

Anexar ao console do contêiner, você será root; e você não precisa se preocupar com o serviço ssh desde que você está usando o console:

$ lxc exec <container name> -- bash

Primeiro atualize seus pacotes de software, especialmente para o apt:

# apt-get update
# apt-get dist-upgrade
# reboot (maybe not needed)

se você não tiver "do-release-upgrade":

# apt-get install ubuntu-release-upgrader-core

Então você pode começar a atualização:

# do-release-upgrade -m server

No caso de “do-release-upgrade” reclamar “Deve estar conectado a um terminal.”, não tenho idéia do porquê isso acontecer, acho que esse contêiner se baseia na imagem de nuvem do Ubuntu. Então tem que usar uma conexão ssh e "sudo" s.

    
por alfred 06.05.2016 / 17:40
0

Veja o que parece ter funcionado para mim:

$ sudo lxc-attach --name <container>

Em seguida, edite /etc/apt/sources.list e substitua todas as ocorrências de vivid a wily .

Em seguida, faça:

# apt-get update
# apt-get upgrade
# apt-get dist-upgrade
# apt-get autoclean
# apt-get autoremove
# reboot

Repita isso algumas vezes até que todos os pacotes sejam atualizados.

    
por Mausy5043 02.08.2016 / 09:39
0

Se eu não quiser / precisar passar os caminhos do código do programa de atualização, eu gosto da postagem mencionada apenas substituindo o nome da versão em /etc/apt/sources.list.

Mas se eu quiser / precisar fazer-release-upgrade para realmente rodar eu apenas habilito o ssh. Pode haver maneiras mais fáceis de se convencer de ter um console adequado, mas é fácil e funciona.

Para fazer isso

# go into the container
lxc exec <container> bash
# set PasswordAuthentication yes here
vim /etc/ssh/sshd_config
# restart containers ssh
service ssh restart
# set a pw of the default ubuntu user
passwd ubuntu
# exit container and get the container IP
lxc info <container>
# connect to it via ssh
ssh ubuntu@<ip>
# run do-release-upgrade as you want
do-release-upgrade
    
por Christian Ehrhardt 07.11.2016 / 10:40
0

Não é possível comentar sobre a resposta @alfred, então desculpe-me por uma nova.

"Deve estar conectado a um terminal." reclamar pode ser resolvido com o comando:

exec >/dev/tty 2>/dev/tty </dev/tty

Apenas execute o fazer-release-upgrade.

    
por Pavel Francírek 24.07.2018 / 18:14