Onde o ansible module module procura pelo nome do pacote fornecido?

1

Eu sou novo em ansible e tentando copiar e instalar o jdk em uma máquina remota. Eu gostaria de usar o rpm instalar apenas considerando que eu tenho todos os diferentes tipos de clientes (RHEL, Centos, Ubuntu etc). Abaixo está meu manual de jogo

    - hosts: all_clients
      remote_user: root
      tasks:
       - name: copy jdk rpm on client machine usr/tmp
         copy:
             src: ./RPM/jdk8u73x64.rpm
             dest: /usr/tmp/jdk8u73x64.rpm

       - name: start installation of jdk
         package:
             name: /usr/tmp/jdk8u73x64.rpm
             #name: jdk8u73x64.rpm
             state: latest
             #use: rpm

Mas estou ficando abaixo do erro.

TASK [setup] *******************************************************************
ok: [10.219.161.98]

TASK [copy jdk rpm on client machine usr/tmp] **********************************
ok: [10.219.161.98]

TASK [start installation of jdk] ***********************************************
fatal: [10.219.161.98]: FAILED! => {"changed": false, "failed": true, "msg": "No Package matching 'jdk8u73x64.rpm' found available, installed or updated", "rc": 0, "results": []}

NO MORE HOSTS LEFT *************************************************************
        to retry, use: --limit @test2.retry

PLAY RECAP *********************************************************************
10.219.161.98              : ok=2    changed=0    unreachable=0    failed=1
A descrição do módulo de pacote não diz muito sobre onde ela pesquisa o pacote na máquina do cliente. Alguém pode me ajudar a fazer funcionar?

    
por Ashif Nataliya 16.03.2016 / 14:55

1 resposta

2

Primeiro, os locais geralmente são resolvidos a partir do local do manual.

Em segundo lugar, package não foi projetado para instalar um arquivo local, mas sim para buscar a partir dos repositórios remotos.

Em terceiro lugar, o motivo pelo qual package se comporta assim é porque realmente não faz sentido que uma camada independente do SO seja alimentada com um arquivo dependente do sistema operacional; por definição, um .rpm só pode ser instalado em um sistema com rpm , e não aquele que usa apt , ou pacman , ou portage , ou o que for.

Você desejará usar o módulo yum para instalar o rpm em suas máquinas baseadas em rpm. Se, como você diz, também é compatível com máquinas Ubuntu, você precisará filtrá-las usando um condicional e adicione uma regra separada para instalar um .deb equivalente neles.

No entanto, se tudo o que você está tentando fazer é instalar o Java, que já deve estar disponível nos repositórios, e você pode evitar toda essa cópia de arquivos.

    
por 18.03.2016 / 00:15