Как добавить один или несколько путей к поисковому пути Ansible (для файлов или шаблонов)? - PullRequest
0 голосов
/ 16 февраля 2019

В моем случае я монтирую свой Ansible-код внутри контейнера Docker в /ansible/playbook/.В этом каталоге вы увидите roles, inventories

Я хотел бы смонтировать другой каталог, содержащий некоторые RPM-файлы.

В Ansible у меня есть этот код:

---
- name: copy ZooKeeper rpm file
  copy:
    src: zookeeper-3.4.13-1.x86_64.rpm
    dest: /tmp

- name: install ZooKeeper rpm package
  yum:
    name: /tmp/zookeeper-3.4.13-1.x86_64.rpm
    state: present

Проблема в том, что ZooKeeper не существует ни в одном из путей поиска по умолчанию:

Could not find or access 'zookeeper-3.4.13-1.x86_64.rpm'
Searched in:
    /ansible/playbook/roles/kafka/files/zookeeper-3.4.13-1.x86_64.rpm
    /ansible/playbook/roles/kafka/zookeeper-3.4.13-1.x86_64.rpm
    /ansible/playbook/roles/kafka/tasks/files/zookeeper-3.4.13-1.x86_64.rpm
    /ansible/playbook/roles/kafka/tasks/zookeeper-3.4.13-1.x86_64.rpm
    /ansible/playbook/files/zookeeper-3.4.13-1.x86_64.rpm
    /ansible/playbook/zookeeper-3.4.13-1.x86_64.rpm

Как добавить дополнительные пути поиска в этот список, например:

    /ansible/rpms/zookeeper-3.4.13-1.x86_64.rpm//

Я не хочу жестко кодировать абсолютные пути (если это работает) в коде Ansible.Я хотел бы предоставить что-то вроде: ANSIBLE_EXTRA_SEARCH_PATH.

Как я могу это сделать?

PS: я не могу создать символическую ссылку на мой каталог RPM внутри уже смонтированного /ansible/playbook, потому что Dockerувидит его и неверную ссылку (не сможет прочитать ее, поскольку целевой каталог, содержащий RPM-файлы, не является частью файловой системы контейнера Docker.)

1 Ответ

0 голосов
/ 16 февраля 2019

В качестве варианта можно было бы

  • поместить число оборотов в минуту в any_path
  • ссылка any_path на / ansible / playbook / rpms
  • use src: rpms / zookeeper-3.4.13-1.x86_64.rpm
...