Faça uma máquina parecer com o resto de pacotes

1

Recebi a difícil tarefa de implantar os pacotes de uma máquina "pura" para o resto deles - cerca de 120 máquinas no total. Todas as máquinas estão executando o CentOS 6.8. Os usuários avançados fizeram um checkout funcional na máquina original e consideraram que valeria a pena para todos os testes / simulações, etc.

Você acha que isso seria tão simples quanto fazer uma lista yum instalada > pristinemachine_pkgs.txt na máquina original, então, no resto deles, yum install $ (cat pristinemachine_pkgs.txt) . No entanto, há diferenças suficientes nos resultados do yum que produzem "Pacote não disponível". O que é funcionando é este:

rpm -qa --qf="%{NAME}.%{ARCH}\n" | sort > pristinemachine_pkgs.txt

Em seguida, na máquina de teste:

yum install $(cat pristinemachine_pkgs.txt)

No entanto, estou encontrando alguns problemas ao analisar os resultados da máquina original e da máquina de teste depois de fazer isso. Aparentemente, meu antecessor tinha habilitado temporariamente um repo EPEL, pacotes instalados, removido o repositório e instalado RPM's únicos. Felizmente, essa lista não é tão grande assim. Para aqueles curiosos em saber como eu criei isso, eu rodei o comando de manifesto do RPM anterior em ambas as máquinas e o sdiff'ed:

http://pastebin.com/pFempAZN

Em seguida, copie / cole os itens da coluna da direita em um novo arquivo, e agora estou tentando encontrar algum tipo de acordo de linha yin info extrarpms.txt para analisar o repositório de origem. Estou tendo problemas duas vezes:

for i in $(cat extrarpms.txt); do yum info $i | grep Name && grep From; done

Aqui está o pastebin de extrarpms.txt para referência: link

Nosso ambiente atualmente não permite soluções de gerenciamento de configuração (mas estou incomodando-as) como Ansible, Puppet, Chef, Salt, etc. Isso não depende de mim, infelizmente. Por último, eu preciso rpm --nodeps -ev a lista de RPMs na máquina candidata da coluna esquerda da saída do sdiff. Temos medo de fazer o yum erase $ (cat badpkgs.txt) porque fomos mordidos pelo yum antes de remover mais coisas do que deveria. Daí a opção --nodeps.

Então, para finalizar tudo isso, se algum de vocês tivesse algo semelhante, como você poderia lidar com esse esforço, fazer download de RPMs individuais da lista da máquina original que não combina com as máquinas candidatas e algo ao longo do linhas de:

for i in $(cat newpkgs.txt) do; rpm --nodeps -ivh $i; done

para os pacotes que o yum info shows não instalou de qualquer repositório?

    
por loadedmind 02.03.2017 / 18:03

0 respostas