Instalação do sistema operacional convidado LXC

1

Eu criei um servidor físico virtualizado LXC com o Centos 6.8 como sistema operacional host.
Agora, quando estou criando o convidado VM usando o modelo padrão do Centos, ele está criando as VMs com o Centos 6.8 como o sistema operacional convidado.
Eu queria criar uma VM com a versão do Centos 7.2 como o sistema operacional convidado. Isso é possível?

Eu fiz as etapas abaixo para criar a VM e começar.

  1. Criei uma cópia do modelo centos e codifiquei a versão 7.2 dentro do modelo. (Pelo que entendi, verifica se há / etc / os-release para ID de CPE)
  2. Criei uma VM guest apontando para esse novo modelo criado. (A versão do Centos 7.2 foi baixada e colocada no cache do LXC)
  3. A VM convidada é criada. Eu mudei o link de rede no arquivo de configuração para conectar a rede.
  4. Iniciei a VM guest, mas só consigo ver se o processo systemd foi iniciado (usando o comando pstree ), se não há endereço IP atribuído à VM e não consigo fazer login na VM guest.

Eu precisava de uma VM com o Centos 7.2 nesse ambiente. Por favor, orientar sobre como conseguir isso.

    
por nirmalraj17 09.05.2017 / 09:01

1 resposta

1

Eu ajustei o template lxc do CentOS para suportar o CentOS 7.

Uma cópia do modelo lxc que criei é colocada no link

Isso foi feito porque havia algumas etapas relacionadas à versão 7 do sistema operacional, que não foi mencionada no modelo lxc-centos atual, e foi mencionada no modelo lxc-oracle. Eu retirei as seções relevantes do lc-oracle e as adicionei ao template atual do lxc-centos e criei um novo template chamado lxc-centos-7.

Em seguida, crie um contêiner lxc usando o comando

lxc-create -n centos7 -t /usr/local/share/lxc/templates/lxc-centos-7  -- -R 7

Isso fará o download dos arquivos necessários para a versão de lançamento 7

Depois disso, se você tentar iniciar o contêiner LXC, receberá "[!!!!!!] Falha ao alocar o objeto gerenciador, congelando." ao tentar iniciar.

Agora crie um diretório systemd em / cgroup

Monte usando o comando abaixo.

 mount -t cgroup -o none,name=systemd cgroup /cgroup/systemd

Agora, se você iniciar o contêiner LXC e tentar efetuar login, receberá a mensagem de erro " servidor recusou alocar pty "

Para evitar isso, pare o contêiner e crie um script de shell que fará as ações necessárias.

[root@centos ~]# vi /usr/local/var/lib/{container_name}/rooftfs/usr/local/bin/device_initiation.sh
    #!/bin/bash
    mknod -m 600 /dev/console c 5 1 2>/dev/null
    mknod -m 666 /dev/null c 1 3 2>/dev/null
    mount -n -t tmpfs none /dev 2>/dev/null
    mknod -m 622 /dev/console c 5 1 2>/dev/null
    mknod -m 666 /dev/null c 1 3 2>/dev/null
    mknod -m 666 /dev/zero c 1 5 2>/dev/null
    mknod -m 666 /dev/ptmx c 5 2 2>/dev/null
    mknod -m 666 /dev/tty c 5 0 2>/dev/null
    mknod -m 444 /dev/random c 1 8 2>/dev/null
    mknod -m 444 /dev/urandom c 1 9 2>/dev/null
    chown root:tty /dev/{console,ptmx,tty} 2>/dev/null
    ln -s /proc/self/fd /dev/fd 2>/dev/null
    ln -s /proc/self/fd/0 /dev/stdin 2>/dev/null
    ln -s /proc/self/fd/1 /dev/stdout 2>/dev/null
    ln -s /proc/self/fd/2 /dev/stderr 2>/dev/null
    ln -s /proc/kcore /dev/core 2>/dev/null
    mkdir /dev/pts 2>/dev/null
    mkdir /dev/shm 2>/dev/null
    mount -t devpts -o gid=4,mode=620 none /dev/pts 2>/dev/null
    mount -t tmpfs none /dev/shm 2>/dev/null

Como estamos colocando este arquivo em usr / local / bin, este comando estará acessível diretamente no sistema.

Agora, para inicializar o servidor e executar este script de shell, criei um script de shell.

[root@centos ~]# vi startup_centos7.sh
#!/bin/bash
lxc-start -n centos7
lxc-attach -n centos7 device_initiation.sh
exit

Depois de executar o script, o CentOS 7 será iniciado e você poderá fazer login sem problemas.

Depois de seguir os passos acima, eu comecei a trabalhar com a versão CentOS 7.3 instalada no novo container LXC.

    
por 15.05.2017 / 12:31