Перенесите файл RPM с помощью Ansible и установите их локально

Lo que está haciendo es establecer la variable LD_LIBRARY_PATHen el valor /usr/local/liby PKG_CONFIG_PATHen el valor /usr/local/lib/pkgconfig.

El comando exportsignifica que las variables se agregan al entorno de los comandos ejecutados posteriormente. Entonces, lo que sea que esté ejecutando después de exportar estas variables tendrá acceso a ellas.

Entonces su aplicación buscará las variables LD_LIBRARY_PATH& PKG_CONFIG_PATH.

2
28.06.2019, 18:54
1 ответ

Предисловие

Вы никогда не должны использовать loopили with_itemс модулем yum, если только у вас нет чрезвычайно конкретной ситуации, потому что (цитирование документа )

When used with a loop: each package will be processed individually, it is much more efficient to pass the list directly to the name option.

И сделайте себе одолжение :используйте современный полный синтаксис yaml для вызова модулей. Его легче читать и линтеры (, например. yamllint)будет обнаруживать больше ошибок раньше.

Мой пример следует этим двум правилам.

Основной ответ

Ни одна из указанных выше попыток не отправляет фактический список файлов в модуль yum с абсолютным путем для каждого элемента. Эту информацию довольно легко получить из задачи копирования, если вы зарегистрируете результат. Затем вы можете отфильтровать данные (, например. json_query), чтобы получить только нужную информацию.

Нижеприведенная книга должна дать вам ключи для выполнения этой работы

---
- name: Copy and install rpms
  hosts: all

  vars:
    RPM: 
      - gskcrypt64-8.0.50.86.linux.ppcle.rpm 
      - gskssl64-8.0.50.86.linux.ppcle.rpm 
      - TIVsm-API64.ppc64le.rpm 
      - TIVsm-BA.ppc64le.rpm

  tasks:

    - name: "Transfer Files"
      copy:
        src: "/root/ansible_playbooks/{{ item }}"
        dest: /root/
      loop: "{{ RPM }}"
      register: copied

    - name: "Install RPMs from local copied files"
      yum:
        name: "{{ copied | json_query('results[?!failed].dest[]') }}"

Примечания

  • Фильтр ?!failedв запросе предназначен только для фильтрации результатов с ошибкой, если вы решите игнорировать ошибки в задаче копирования. Вы можете удалить его, если хотите (, т.е.json_query('results[].dest'))
  • loop: "{{ RPM }}"строго эквивалентно with_items: "{{ RPM }}". loop— это более новый синтаксис, представленный в ansible 2.5. Оба синтаксиса допустимы. См. документацию по циклам для более подробной информации.
2
27.01.2020, 22:26

Теги

Похожие вопросы