尝试运行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
答案 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