我知道可以通过以下几行将任务/处理程序文件包含在其他类似文件中
- name: Configure django
include: django.yml
- name: Configure nginx reverse proxy
include: nginx.yml
Run Code Online (Sandbox Code Playgroud)
但是根据文档,对于vars/
或下的文件似乎不存在此功能defaults/
。我面临的问题是,我有很多变量从根本上修改了角色的不同方面,但是所有变量只是defaults/main.yml
使用注释(例如# BEGIN RoR config vars
... # END RoR config vars
)在同一文件 ( ) 中分为不同部分。
它非常丑陋和笨拙,但更重要的是它不是模块化的,它使得维护它变得更加困难。
编辑:由于有人投票关闭,因为他们觉得这不清楚......
这类似于我所拥有的(全部在一个文件中):
## Database variables
database:
user: bob
pass: bobs_pass
host: dbhost
## Server variable
server:
su_user: nobody
max_connections: 50
Run Code Online (Sandbox Code Playgroud)
给出 ls -R 输出:
./defaults/main.yml
Run Code Online (Sandbox Code Playgroud)
这就是我希望拥有的:
- name: Include database vars
include: database.yml
- name: Include app server vars
include: server.yml
Run Code Online (Sandbox Code Playgroud)
使用 ls -R 输出:
./defaults/main.yml
./defaults/database.yml
./defaults/server.yml
Run Code Online (Sandbox Code Playgroud)
为什么不?我一直在roles/whatever/tasks/main.yml
使用include_vars这样做:
- include_vars: whatever_os_{{ ansible_distribution }}_{{ ansible_distribution_major_version }}.yml
Run Code Online (Sandbox Code Playgroud)
变量从vars
角色的目录加载。在剧本中,路径是相对于剧本的,或者您可以使用绝对路径。
在上述情况下,我在这些文件中有特定于操作系统的变量:
$ ls -l roles/whatever/vars
total 48
lrwxrwxrwx. 1 error error 24 Feb 2 21:56 whatever_os_CentOS_5.yml -> whatever_os_RedHat_5.yml
lrwxrwxrwx. 1 error error 24 Feb 2 21:56 whatever_os_CentOS_6.yml -> whatever_os_RedHat_6.yml
lrwxrwxrwx. 1 error error 24 Feb 2 21:56 whatever_os_CentOS_7.yml -> whatever_os_RedHat_7.yml
-rw-rw-r--. 1 error error 81 May 9 23:17 whatever_os_Debian_6.yml
-rw-rw-r--. 1 error error 81 May 9 23:17 whatever_os_Debian_7.yml
-rw-rw-r--. 1 error error 81 May 9 23:17 whatever_os_Debian_8.yml
-rw-r--r--. 1 error error 173 Apr 28 14:59 whatever_os_Fedora_20.yml
-rw-r--r--. 1 error error 173 Mar 22 01:51 whatever_os_Fedora_21.yml
-rw-r--r--. 1 error error 173 May 9 23:18 whatever_os_Fedora_22.yml
-rw-r--r--. 1 error error 188 Mar 22 01:51 whatever_os_RedHat_5.yml
-rw-r--r--. 1 error error 191 Mar 22 01:51 whatever_os_RedHat_6.yml
-rw-r--r--. 1 error error 189 Mar 22 01:51 whatever_os_RedHat_7.yml
-rw-rw-r--. 1 error error 81 May 9 23:17 whatever_os_Ubuntu_10.yml
-rw-rw-r--. 1 error error 81 May 9 23:17 whatever_os_Ubuntu_12.yml
-rw-rw-r--. 1 error error 81 May 9 23:17 whatever_os_Ubuntu_14.yml
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
18664 次 |
最近记录: |