gpt4 book ai didi

include - 如何在ansible中使用include_vars

转载 作者:行者123 更新时间:2023-12-03 04:53:26 24 4
gpt4 key购买 nike

我已经创建了自己的自定义库,并将自定义库添加到了存储库的公共(public)文件夹中。因为我需要动态传递变量。这是一个 secret 密码,所以我在 ansible 中使用“vault”。

因为我的要求是如何在主机之前传递tasks\main.yml中的include_vars

例如:mytasks.yml

- include_vars: sample_vault.yml
- include: sample_tasks.yml
- hosts: localhost
tasks:
name: "free task"
command: ls -a

我的目录结构是这样的:

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

在这里,我需要使用 sample_vault.yml 文件中传递的变量运行sample_tasks 文件,然后再使用ansible 执行主机任务。如果我使用额外的变量意味着密码是可见的,所以我不需要它。

当我在 tasks/main.yml 文件中使用 include_vars 时,它显示以下错误:

ERROR! 'include_vars' is not a valid attribute for a Play

最佳答案

您不能以这种方式使用 include_vars,它只能在 tasks 下使用。
如果 sample_tasks.yml 是任务列表,您也无法在 playbook 级别使用它。看我的other answer进行解释。

您可以像这样使用vars_files:

- hosts: localhost
vars_files:
- sample_vault.yml
tasks:
name: "free task"
command: ls -a

或者将文件作为额外变量传递:

ansible-playbook --ask-vault-pass -e @sample_vault.yml myplaybook.yml

关于include - 如何在ansible中使用include_vars,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39805949/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com