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

Добавить дополнительный модуль в анзибль

Я установил ansible, чтобы автоматизировать развертывание моей системы, и мне нужен дополнительный модуль для работы с ним. Я загрузил модуль yumrepo.py на доступный github и добавил его в каталог моей библиотеки. Но когда я бегу, появляется ошибка ERROR: yumrepo is not a legal parameter of an Ansible Play. Вот моя конфигурация в файле ansible.cfg.

inventory      = /etc/ansible/hosts
library        = /etc/ansible/module/
remote_tmp     = $HOME/.ansible/tmp

и моя игра

---
- name: Add multiple repositories into the same file (1/2)
  yumrepo:
    name: epel
    description: EPEL YUM repo
    file: external_repos
    baseurl: http://download.fedoraproject.org/pub/epel/$releasever/$basearch/
    gpgcheck: no

Надеюсь, что кто-нибудь мне поможет. Большое спасибо

Поместите файл модуля в playbooks/library он автоматически подберет его, не меняйте переменные ANSIBLE_LIBRARY по умолчанию, просто используйте то, что он устанавливает, с помощью yum / pip. Кроме того, не помещайте их в подкаталог.

У вас будет что-то вроде ...

hosts/hostfile
hosts/group_vars/all/custom_vars.yml
playbooks/library/plugin.py
playbooks/library/plugin2.py
playbooks/roles
playbooks/my_playbook.yml

yumrepo предоставляется ансибль-экстры Проблема, скорее всего, в том, что версия этого модуля, содержащая yumrepo, еще не выпущена. Если вы проверите каталог extras в своей установке ansible, вы можете убедиться в этом. Моя находится по адресу:

/usr/local/lib/python2.7/site-packages/ansible/modules/extras/packaging/os/
ls -ltr 

Вы увидите, что файла yumrepo.py нет. Поэтому одним из решений является то, что кто-то уже предложил клонировать роль yumrepo в каталог ролей вместо того, чтобы пытаться использовать модуль. Если вы абсолютно настроены на использование этого модуля, вы можете скопировать этот модуль yumrepo.py из репозитория github в каталог, скажем, ~ / unreleased-ansible-extras, и добавить его в свою переменную среды ANSIBLE_LIBRARY в соответствии с http://docs.ansible.com/ansible/developing_modules.html

например

export ANSIBLE_LIBRARY=$ANSIBLE_LIBRARY:~/unreleased-ansible-extras

но, вероятно, лучше просто использовать роль и пока ждать следующего выпуска.

Какой репозиторий вы скачали yumrepo.py из?

Вместо этого вам, вероятно, следует использовать ansible-yumrepo роль : https://github.com/picotrading/ansible-yumrepo (См. Здесь для больше о ролях)

Вы можете установить это в roles каталог, который может находиться в том же каталоге, что и ваша книга. Я обнаружил, что мне нужно переименовать роль из ansible-yumrepo к yumrepo локально, когда я клонировал репозиторий с github.

$ git clone https://github.com/picotrading/ansible-yumrepo.git roles/yumrepo

Тогда следующий сценарий можно использовать как отправная точка для того, что вы хотите сделать:

- hosts: all
  roles:
    - role: yumrepo
      yumrepo_repos:
        myrepo1:
          name: epel
          description: EPEL YUM repo
          file: external_repos
          baseurl: http://download.fedoraproject.org/pub/epel/$releasever/$basearch/
          gpgcheck: no

Я нашел свои дополнительные пакеты в /usr/local/lib/python2.7/dist-packages/ansible/modules/extras/ и я установил Ansible через pip, но все равно yumrepo нет.