我在 Ansible 文档中找到了为使用 include_role
执行的角色指定要设置的变量的示例。自己尝试此操作时,角色失败并显示错误。
在主要剧本中:
- name: Install Mysql
include_role:
name: mysql
vars:
app_name: pantrio
在 mysql/tasks/main.yml 中:
- name: Install Mysql
apt:
name: mysql-server
state: present
- name: Make sure pymysql is installed
apt:
name: python-pymysql
state: present
- name: Create a new database with name [app_name]
community.mysql.mysql_db:
login_unix_socket: /var/run/mysqld/mysqld.sock
name: "{{ app_name }}"
state: present
错误:
TASK [mysql : Create a new database with name [app_name]] **********************
fatal: [192.168.33.77]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'app_name' is undefined
The error appears to be in '/ansible/roles/mysql/tasks/main.yml': line 12, column 3, but may
be elsewhere in the file depending on the exact syntax problem.
The offending line appears to be:
- name: Create a new database with name [app_name]
^ here
"}
我做错了什么?