错误:apt不是Ansible剧本的法定参数

错误:apt不是Ansible剧本的法定参数,ansible,Ansible,尝试运行YML文件时出现以下错误:- user@ubuntuA:~$ ansible-playbook -i hostfile setup.yml 错误: apt不是Ansible戏剧的法律参数 Ansible版本:1.9.2 yml文件:- --- - name: Install MySQL server apt: name=mysql-server state=latest - name: Install Apache module for MySQL authentication

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

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

apt不是Ansible戏剧的法律参数

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

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

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

您正试图使用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
您当前的文件格式适用于。如果您想在其他地方重用setup.yml中的任务,这将非常有用。在这种情况下,您可以创建另一个文件(比如playbook.yml),如下所示:

---
- hosts: all
  tasks: 
  - import_tasks: setup.yml
然后运行它:

ansible-playbook -i hostfile playbook.yml

您还有其他文件吗?另外,提供的yml文件是否为setup.yml?第二个示例允许您循环执行单个任务,而不是列出三个单独的任务。在使用一些基本Linux软件包编写简单的ansible role时,会出现相同的错误。请帮帮我,没有你的代码我帮不了你多少忙。对于一个角色,你需要一个剧本,其中有一个“角色”部分按名称调用你的角色,你需要一个“角色”目录,在该目录下有一个目录,在剧本中引用的是谁的名字。下面需要一个名为“tasks”的目录,main.yml应该类似于OP的示例