我的要求是我想在我的 Ansible 脚本中动态包含一个变量文件。我可以通过在我的 ansible 任务中加入以下内容来做到这一点-
- name: Include vars file
include_vars: vars/dev.yml
- name: Some other task
cp: copy something
如果我将 保留dev.yml
在我的 vars 目录中,则上述内容有效。现在我实际上不想将 dev.yml 放在目录中,我想从 S3 中提取它然后使用其中的变量。像下面这样的——
- name: Get dev file
s3:
bucket: bucket_name
object: object_name
dest: "dest_directory" ## Here I want the destination to be vars/dev.yml
mode: get
aws_access_key: "{{ s3.aws_access_key }}"
aws_access_key: "{{ s3.aws_secret_key }}"
- name: Include vars file
include_vars: vars/dev.yml
- name: Some other task that uses vars in dev.yml
template: render some template using vars in dev.yml and copy to server
以上实际上不起作用。我该怎么做呢?
感谢康斯坦丁苏沃洛夫的帮助。我只需要添加delegate_to
我的任务。
- name: Get dev file
s3:
bucket: bucket_name
object: object_name
dest: vars/dev.yml
mode: get
aws_access_key: "{{ s3.aws_access_key }}"
aws_access_key: "{{ s3.aws_secret_key }}"
delegate_to: localhost
- name: Include vars file
include_vars: vars/dev.yml
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句