Adicione módulo extra ao ansible

4

Eu instalei ansible para fazer a automação implantar meu sistema e eu preciso de algum módulo extra para trabalhar com ele. Eu baixei o módulo yumrepo.py no ansible github e adicionei-o ao meu diretório de bibliotecas. Mas quando eu corro, ele mostra o erro ERROR: yumrepo is not a legal parameter of an Ansible Play . Aqui está minha configuração no arquivo ansible.cfg.

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

e meu manual de jogo

---
- 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

Espero que alguém me ajude. Muito obrigado

    
por Ha Phuoc 31.12.2015 / 09:26

4 respostas

1

Qual repositório você baixou yumrepo.py ?

O que você provavelmente deve usar em vez disso é a função ansible-yumrepo : link ( Veja aqui mais sobre funções )

Você pode instalar isso em um diretório roles , que pode estar no mesmo diretório do seu manual. Descobri que precisava renomear o papel de ansible-yumrepo para yumrepo localmente quando eu clonava o repositório do github.

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

Em seguida, o seguinte manual pode ser usado como ponto de partida para o que você deseja fazer:

- 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
    
por 01.01.2016 / 15:16
1

yumrepo é fornecido por ansible-extras O problema é mais provável que uma versão deste módulo que contenha yumrepo ainda não foi lançado. Se você verificar o diretório extras em sua instalação ansible, poderá verificar isso. O meu está em:

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

Você verá que não há arquivo yumrepo.py. Uma solução é, portanto, como alguém já sugeriu clonar o papel yumrepo em seu diretório de funções em vez de tentar usar o módulo. Se você está absolutamente pronto para usar este módulo, você pode copiar este módulo yumrepo.py do repositório github para um diretório como ~ / unreleased-ansible-extras e adicioná-lo à sua variável de ambiente ANSIBLE_LIBRARY conforme link

por exemplo,

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

mas provavelmente é melhor você usar o papel e esperar pelo próximo lançamento.

    
por 15.01.2016 / 23:23
1

Coloque o arquivo do módulo em playbooks/library , ele irá automaticamente pegá-lo, não altere seu padrão ANSIBLE_LIBRARY vars, apenas use o que ele instala com o yum / pip. Além disso, não os coloque em um subdiretório.

Você terá algo como ...

hosts/hostfile
hosts/group_vars/all/custom_vars.yml
playbooks/library/plugin.py
playbooks/library/plugin2.py
playbooks/roles
playbooks/my_playbook.yml
    
por 02.11.2016 / 13:16
0

Eu encontrei meus pacotes extras em %código% e instalei o Ansible via /usr/local/lib/python2.7/dist-packages/ansible/modules/extras/ , mas ainda pip não está presente.

    
por 02.11.2016 / 12:49