Qual é a sintaxe correta da definição de dependências de função no meta / main.yml no Ansible?

6

meta / main.yml

dependencies:
  - { role: 030.sensu-install }

resulta em:

[DEPRECATION WARNING]: The comma separated role spec format, use the
yaml/explicit format instead..
This feature will be removed in a future release. 
Deprecation warnings can be disabled by setting deprecation_warnings=False in 
ansible.cfg.

quando sudo ansible-galaxy install -r requirements/development.yml é emitido.

Tenta resolver o problema

Quando

dependencies:
  - role: 030.sensu-install
    version: 0.1.0

é definido, a verificação da sintaxe é bem-sucedida, mas o aviso de descontinuação persiste.

Quando

dependencies:
  - src: 030.sensu-install
    version: 0.1.0

é definido, sudo ansible-galaxy install -r requirements/development.yml é executado, o aviso de descontinuação é resolvido, mas ansible-playbook /etc/ansible/roles/role_under_test/tests/${playbook} --syntax-check resulta em:

ERROR! role definitions must contain a role name
    
por 030 14.09.2016 / 20:49

3 respostas

6

Atualizando o meta / main.yml de acordo com este snippet como segue:

dependencies:
  - src: 030.firewall
    version: 0.1.0
    name: 030.firewall
  - src: 030.sensu-client
    version: 0.4.1
    name: 030.sensu-client
  - src: geerlingguy.ntp
    version: 1.3.0
    name: geerlingguy.ntp    
  - src: geerlingguy.postfix
    version: 1.1.0
    name: geerlingguy.postfix
  - src: geerlingguy.redis
    version: 1.4.1
    name: geerlingguy.redis
  - src: Stouts.rabbitmq
    version: 1.2.1
    name: Stouts.rabbitmq

e a instalação dos requisitos emitindo ansible-galaxy install -r requirements/development.yml não retornou mais o problema [DEPRECATION WARNING]: The comma separated role spec format .

    
por 27.09.2016 / 10:22
2

Há uma solicitação de extração bugfix no github em relação a esse problema, mas ainda não está claro se é um bug ou você deve usar src: , verifique a discussão.

link

Acho que até que os desenvolvedores se decidam, você pode ignorar esse aviso. Além disso, você não está realmente usando a sintaxe separada por vírgulas, então este aviso não deve aparecer na minha opinião.

dependencies:
    - { role: 030.sensu-install }

deve estar ok.

    
por 19.09.2016 / 13:31
-1

se você estiver usando o repositório privado para galáxia, então

meta \ main.yml

---
# local copy
#dependencies:
#   - { role: '/roles/java', java_packages: java-1.8.0-openjdk }
#http
#dependencies:
#   - { role: 'git+http://gitlabserver/ansible-galaxy/java.git,master'}
#ssh
dependencies:
   - name: java
     src: ssh://git@gitlabserver/ansible-galaxy/java.git
     scm: git
     version: master

Nota: você pode precisar ter chave privada no host para o git clone

    
por 03.10.2016 / 07:21