Назад | Перейти на главную страницу

Где модуль ansible package ищет данное имя пакета?

Я новичок в доступе и пытаюсь скопировать и установить jdk на удаленном компьютере. Я хотел бы использовать установку rpm только с учетом того, что у меня есть все типы клиентов (RHEL, Centos, Ubuntu и т. Д.). Ниже моя игра

    - 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

Но я получаю ошибку ниже.

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

Ansible описание модуля пакета не говорит много о том, где он ищет пакет на клиентской машине. Может ли кто-нибудь помочь мне заставить его работать?

Во-первых, местоположения обычно определяются из местоположения playbook.

Во-вторых, package не предназначен для установки локального файла, а скорее для загрузки из удаленных репозиториев.

В-третьих, причина package ведет себя так, потому что на самом деле не имеет смысла для независимого от ОС уровня загружать зависимый от ОС файл; по определению .rpm может быть установлен только в системе с rpm, а не тот, который вместо этого использует apt, или pacman, или portage, или что угодно.

Вы захочет использовать модуль yum для установки rpm на ваших машинах на базе rpm. Если, как вы говорите, вы также поддерживаете машины с Ubuntu, вам необходимо отфильтровать их, используя условный и добавить отдельное правило для установки эквивалента .deb на них.

Однако, если все, что вы пытаетесь сделать, это установить Java, она уже должна быть доступна в репозиториях, и вы можете избежать всего этого копирования файлов.