Я установил 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
нет.