Я новичок в доступе и пытаюсь скопировать и установить 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, она уже должна быть доступна в репозиториях, и вы можете избежать всего этого копирования файлов.