Estou tentando instalar o nfs-utils (e, portanto, todas as suas dependências) em uma VM KVM RHEL6.5 sem estado. A VM está configurada para ter uma raiz somente leitura por meio do /etc/sysconfig/readonly-root
arquivo, mágica do Linux que não implementei e a opção "Somente leitura" na GUI de configurações da VM. A instalação é feita usando virt-customize -a image.img --run install_script.sh
. O script usa um documento aqui para construir o arquivo .repo (que vai para o cofre do CentOS para 6.5), então eu uso yum install -y nfs-utils
para fazer a instalação real. Adotei essa abordagem porque parece mais fácil, mais limpa e menos propensa a erros do que inicializar a VM no modo de leitura/gravação, instalar, limpar e desligar. Além disso, não consigo descobrir como inicializá-lo em leitura/gravação.
A saída do virt-customize
mostrou que os pacotes foram instalados com sucesso. A única falha foi a remoção do .repo devido a um erro de digitação.
Após esta instalação, inicializei a VM e tentei fazer login normalmente. Minhas tentativas agora estão sendo rejeitadas porque Login incorrect
.
Verifiquei virt-cat
para ter certeza de que o shell de login do usuário foi definido corretamente e que a senha criptografada /etc/shadow
parece igual à original.
Minha abordagem original era criar uma imagem ISO contendo todas as dependências e nfs-utils, anexá-la à VM e fazer com que um script cuidasse da instalação. O mesmo problema ocorreu então. Limitei a origem do problema à instalação de um dos pacotes NFS: ou nfs-utils
( nfs-utils-lib
um dos dois, não me lembro) e o rpcbind
pacote. Quando um desses pacotes é instalado e a VM é inicializada, o login é interrompido. Suponho que este seja o mesmo problema que está ocorrendo agora.
A imagem que estou usando para a VM é cp
editada a partir da imagem da VM original, pois este é um teste para descobrir como fazer a instalação corretamente.
Sim, estou digitando a senha corretamente. Tentei alterar a senha do usuário (através de libguestfs
ferramentas), mas ainda não consigo fazer login, então não tenho certeza se a alteração falhou (o código de retorno dos comandos indica sucesso) ou se o mesmo problema está em vigor .
Pergunta:
- O problema de login pode ser depurado e corrigido? Se sim, como?
- Como faço a instalação corretamente para que o login não seja interrompido? Claramente desta forma não funciona.
Responder1
A questão central aqui foi o SELinux. Existem várias maneiras de instalar software em uma VM, mas elas se resumem à inicialização ou não da VM. Este último é o que estraga tudo, e foi assim que fiz a instalação no post.
Pelo que posso imaginar, quando a VM é desligada e o software é instalado, por exemplo, por meio do comando na pergunta, o SELinux percebe que algo mudou e não sabe o que aconteceu quando a VM é inicializada após a instalação e bloqueia tudo . Permitir que o SELinux reetiquete corrige o problema, mas quebrou muitas outras coisas para mim. Efetivamente, não há como criar um script de instalação quando o sistema está off-line, porque você provavelmente se deparará com isso. Observe que esse problema pode ocorrer apenas com VMs RHEL6.5 e sua versão do SELinux (estamos com versão bloqueada para RHEL6.5).
A maneira correta de instalar uma VM como essa é inicializá-la no modo leitura/gravação e realizar a instalação montando um ISO com os RPMs necessários ou usando um gerenciador de pacotes. Durante a inicialização, o SELinux estará ciente da instalação e tudo ficará bem.