错误:apt不是Ansible Play的合法参数

时间:2015-08-19 06:02:27

标签: ansible

尝试运行YML文件时出现以下错误: -

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

错误

  

apt不是Ansible Play的合法参数

Ansible版本:1.9.2

YML文件: -

---

- 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

3 个答案:

答案 0 :(得分:16)

您的yml文件应如下所示:

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

答案 1 :(得分:1)

通常,这意味着您的playbook yml文件不符合yml语法。检查空格,连字符等。查看现有的yml文件,如上面答案中smiller171粘贴的文件。我也有类似的错误,结果我的语法不正确。

答案 2 :(得分:0)

您正尝试直接使用ansible-playbook执行setup.yml文件。正如@ smiler171在回答中提到的那样,正确的格式如下:

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

您当前的文件格式适用于imports and includes。如果您想在其他地方重用setup.yml中的任务,这将很有用。在这种情况下,您可以创建另一个文件(例如playbook.yml):

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

并运行它:

ansible-playbook -i hostfile playbook.yml