Even when a broken playbook or a broken yaml file is includes as role it validates as correct with 1.4.
Op vrijdag 27 december 2013 08:16:26 UTC+1 schreef TextEditor: > > It is run on the YAML files because when run on just the playbook which > includes the roles it does not check the includes roles. > > And, as also can be seen in the ticket, checking of all the YAML files > with Ansible 1.3 did work just fine. > > > Op vrijdag 27 december 2013 02:23:52 UTC+1 schreef Matt Martz: >> >> I believe the issue is that you are running a --syntax-check against >> something that is not a playbook. The error message actually states that >> as well: >> >> "ERROR: apt is not a legal parameter in an Ansible Playbook” >> >> And that is a correct error, as ‘apt’ is not a legal parameter in a >> playbook. >> >> From the looks of things, you are running --syntax-check against yaml >> files from a role. >> >> The syntax of a playbook and a role are inherently different. >> >> When you do a --syntax-check on a playbook, it will run through the >> entirety of the playbook, all includes, etc…and return the status of the >> full syntax check. >> >> Is there a reason you are attempting to run it on all yaml files and not >> just running it on your playbooks? Seems like you are taking some >> unnecessary steps. >> -- >> Matt Martz >> [email protected] >> >> On December 26, 2013 at 5:50:45 PM, TextEditor ([email protected]) wrote: >> >> Since my bug report is ignored and closed I'm asking for support here. >> Since the upgrade to Ansible 1.4 the --syntax-check feature broke when used >> with role files. >> >> This is the ticket: https://github.com/ansible/ansible/issues/5412 >> >> --syntax-check fails on 1.4.with ERROR: MODULE is not a legal parameter >> in an Ansible Playbook >> >> The --syntax-check option does not work for me. Ansible 1.4.3, installed >> via pip on OS X 10.9. >> >> Basic playbook which consists out of a few roles: >> >> # cat ./playbooks/default-vps-setup.yml >> --- >> - hosts: local >> user: remy >> connection: ssh # or paramiko >> >> roles: >> - { role: basic-debian-setup, sudo: yes } >> - { role: git-setup } >> - { role: vim } >> - { role: bash } >> - { role: screen } >> - { role: openssh, sudo: yes } >> - { role: fail2ban, sudo: yes } >> - { role: sudo, sudo: yes } >> - { role: postfix, sudo: yes } >> - { role: vnstat, sudo: yes } >> >> Specific role: >> >> # cat playbooks/roles/vim/tasks/main.yml >> --- >> - apt: pkg=vim-tiny state=latest update_cache=yes >> sudo: yes >> >> - file: path=/home/{{ user }}/.vimrc src=/home/{{ user }}/conf/vimrc >> state=link owner={{ user }} force=yes >> sudo: no >> >> The command fails: ansible-playbook --syntax-check -i tests/ansible_hosts >> ./playbooks/roles/vim/tasks/main.yml >> >> Result: >> >> playbook: ./playbooks/roles/vim/tasks/main.yml >> >> ERROR: apt is not a legal parameter in an Ansible Playbook >> >> When manually setting the Library path it also fails: >> >> ANSIBLE_LIBRARY=/usr/share/ansible/ ansible-playbook --syntax-check -i >> tests/ansible_hosts ./playbooks/roles/vim/tasks/main.yml >> >> playbook: ./playbooks/roles/vim/tasks/main.yml >> >> ERROR: apt is not a legal parameter in an Ansible Playbook >> >> When checking the playbook which includes the roles it always works, even >> when the included roles do not exist or are syntaxically incorrect. >> >> This worked on Ansible 1.3. (checking the individual files). >> >> I noticed this because my CI started bombarding me with emails. (It >> checks my ansible repository with this command: find ./playbooks/roles >> -name '*.yml' -not -path './roles/*/files/*' | xargs -t -n1 >> ansible-playbook --syntax-check -i tests/ansible_hosts.) >> >> >> This was a clean install of Ansible to test. On a new VM with 1.3 it >> works, a new VM with 1.4 fails. >> >> And it is not just the APT module, it is every module. See the full >> output here: >> >> find ./playbooks -name '*.yml' -not -path './playbooks/group_vars/*' >> -not -path './playbooks/roles/*/files/*' | xargs -n1 ansible-playbook >> --syntax-check -i tests/ansible_hosts >> >> playbook: ./playbooks/debug.yml >> >> >> >> playbook: ./playbooks/default-vps-setup.yml >> >> >> >> playbook: ./playbooks/nginx-vps-for-raymii.org.yml >> >> >> >> playbook: ./playbooks/roles/bash/tasks/main.yml >> >> ERROR: apt is not a legal parameter in an Ansible Playbook >> >> playbook: ./playbooks/roles/basic-debian-setup/tasks/main.yml >> >> ERROR: apt is not a legal parameter in an Ansible Playbook >> >> playbook: ./playbooks/roles/debug/tasks/main.yml >> >> ERROR: register is not a legal parameter in an Ansible Playbook >> >> playbook: ./playbooks/roles/fail2ban/handlers/main.yml >> >> ERROR: service is not a legal parameter in an Ansible Playbook >> >> playbook: ./playbooks/roles/fail2ban/tasks/main.yml >> >> ERROR: apt is not a legal parameter in an Ansible Playbook >> ERROR: parse error: playbooks must be formatted as a YAML list >> >> playbook: ./playbooks/roles/git-setup/tasks/main.yml >> >> ERROR: apt is not a legal parameter in an Ansible Playbook >> >> playbook: ./playbooks/roles/nginx/handlers/main.yml >> >> ERROR: service is not a legal parameter in an Ansible Playbook >> >> playbook: ./playbooks/roles/nginx/tasks/main.yml >> >> ERROR: template is not a legal parameter in an Ansible Playbook >> >> playbook: ./playbooks/roles/openssh/handlers/main.yml >> >> ERROR: service is not a legal parameter in an Ansible Playbook >> >> playbook: ./playbooks/roles/openssh/tasks/main.yml >> >> ERROR: apt is not a legal parameter in an Ansible Playbook >> ERROR: parse error: playbooks must be formatted as a YAML list >> >> playbook: ./playbooks/roles/postfix/handlers/main.yml >> >> ERROR: service is not a legal parameter in an Ansible Playbook >> >> playbook: ./playbooks/roles/postfix/tasks/main.yml >> >> ERROR: apt is not a legal parameter in an Ansible Playbook >> >> playbook: ./playbooks/roles/screen/tasks/main.yml >> >> ERROR: apt is not a legal parameter in an Ansible Playbook >> >> playbook: ./playbooks/roles/sudo/tasks/main.yml >> >> ERROR: apt is not a legal parameter in an Ansible Playbook >> >> playbook: ./playbooks/roles/vim/tasks/main.yml >> >> ERROR: apt is not a legal parameter in an Ansible Playbook >> >> playbook: ./playbooks/roles/vnstat/handlers/main.yml >> >> ERROR: action is not a legal parameter in an Ansible Playbook >> >> playbook: ./playbooks/roles/vnstat/tasks/main.yml >> >> ERROR: apt is not a legal parameter in an Ansible Playbook >> >> >> On a fresh install of Ansible 1.3 it all works, on a fresh install (both >> in new clean VM's) of 1.4 it fails. >> -- >> You received this message because you are subscribed to the Google Groups >> "Ansible Project" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To post to this group, send email to [email protected]. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> -- You received this message because you are subscribed to the Google Groups "Ansible Project" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
