错误:apt不是Ansible剧本的法定参数
尝试运行YML文件时出现以下错误:-错误: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
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的示例