jak*_*ake 13 include ansible ansible-playbook ansible-vault
我创建了自己的自定义库,我将自定义库添加到我的存储库的公共文件夹中.我需要动态传递变量.这是一个保密的密码,所以我在ansible中使用"vault".
在我的要求是如何通过include_vars在tasks\main.yml主机前.
例如:mytasks.yml
- include_vars: sample_vault.yml
- include: sample_tasks.yml
- hosts: localhost
tasks:
name: "free task"
command: ls -a
Run Code Online (Sandbox Code Playgroud)
我的目录结构如下:
myfolder
- common
-library
-my file.py
- sample_tasks.yml
- mytasks
-mytasks.yml(my main master playbook file)
-sample_vault.yml (note:i create this using vault for confidential purpose)
- roles
-myrole
Run Code Online (Sandbox Code Playgroud)
在sample_vault.yml使用ansible执行hosts任务之前,我需要使用文件中传递的变量运行sample_tasks文件.如果我使用额外的变量意味着密码可见,所以我不需要.
当我include_vars在我的tasks/main.yml文件中使用时,它显示以下错误:
错误!'include_vars'不是Play的有效属性
Kon*_*rov 26
你不能用include_vars这种方式,它只能在下面使用tasks.
如果sample_tasks.yml是任务列表,您也无法在playbook级别使用它.请参阅我的其他答案进行解释.
你可以vars_files像这样使用:
- hosts: localhost
vars_files:
- sample_vault.yml
tasks:
name: "free task"
command: ls -a
Run Code Online (Sandbox Code Playgroud)
或者将文件作为额外变量传递:
ansible-playbook --ask-vault-pass -e @sample_vault.yml myplaybook.yml
Run Code Online (Sandbox Code Playgroud)