Установите rpm после копирования с помощью ansible - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть ansible playbook, который скопирует файл в папку на удаленном сервере. Работает нормально. В этом случае файл является rpm. Вот как это работает:

---
- hosts: my_host
  tasks:
    - name: mkdir /tmp/RPMS
      file: path=/tmp/RPMS state=directory

    - name: copy RPMs to /tmp/RPMS
      copy:
        src: "{{ item }}"
        dest: /tmp/RPMS
        mode: 0755
      with_items:
        [any_rpm-x86_64.rpm]
      register: rpms_copied

Теперь, когда файл успешно установлен на удаленном сервере, мне нужно запустить новый logi c, который установит rpm, который находится в / tmp / RPMS. Я запустил много разных версий ниже (поэтому этот код добавлен в вышеуказанный блок):

    - name: install rpm from file
  yum:
    name: /tmp/RPMS/any_rpm-x86_64.rpm
    state: present
  become: true

Я не знаю, является ли форматирование неправильным, или это не так. Кто-нибудь может посоветовать, как я могу получить rpm в каталоге / tmp / RPMS, установленном с помощью нескольких новых строк в существующей книге воспроизведения?

Спасибо.

1 Ответ

0 голосов
/ 03 февраля 2020

Я не нашел этого больше нигде, и мне действительно потребовался весь мой рабочий день, чтобы добраться до этой точки. Для всех, кто борется:

- name: Install my package from a file on server
  shell: rpm -ivh /tmp/RPMS/*.rpm
  async: 1800
  poll: 0
  become_method: sudo
  become: yes
  become_user: root
...