Tanuj Kumar
Tanuj Kumar

Reputation: 151

ERROR: apt is not a legal parameter of an Ansible Play

I'm getting the following error when trying to run a YML file:-

user@ubuntuA:~$ ansible-playbook -i hostfile setup.yml

ERROR:

apt is not a legal parameter of an Ansible Play

Ansible version: 1.9.2

yml-file:-

---

- name: Install MySQL server
  apt: name=mysql-server state=latest

- name: Install Apache module for MySQL authentication
  apt: name=libapache2-mod-auth-mysql state=latest

- name: Install MySQL module for PHP
  apt: name=php5-mysql state=latest

Upvotes: 15

Views: 29136

Answers (3)

MillerGeek
MillerGeek

Reputation: 3137

Your yml file should look something like this:

---
- hosts: all
  become: yes
  tasks: 
  - name: Install packages
    apt:
      name:
      - mysql-server
      - libapache2-mod-auth-mysql
      - php5-mysql
      state: latest
      cache_valid_time: 3600    # update cache if more than an hour old

Upvotes: 21

Marat Safin
Marat Safin

Reputation: 1909

You are trying to execute your setup.yml file directly with ansible-playbook. As @smiler171 mentioned in his answer, correct format for this is the following:

---
- hosts: all
  tasks: 
  - name: Install MySQL server
    apt: name=mysql-server state=latest

  - name: Install Apache module for MySQL authentication
    apt: name=libapache2-mod-auth-mysql state=latest

  - name: Install MySQL module for PHP
    apt: name=php5-mysql state=latest

Your current file format is for imports and includes. It is useful if you want to reuse tasks from setup.yml somewhere else. In this case you can create another file (let's say playbook.yml) like that:

---
- hosts: all
  tasks: 
  - import_tasks: setup.yml

and run it:

ansible-playbook -i hostfile playbook.yml

Upvotes: 3

Binita Bharati
Binita Bharati

Reputation: 5898

Usually, that means that your playbook yml file does not comply with yml syntax. Check for spaces , hyphen etc. Take a look at existing working yml files, like the one pasted by smiller171 in the above answer. I also had a similar error , turned out that my syntax was incorrect.

Upvotes: 1

Related Questions