我有一本剧本,其中有一个步骤可以使用get_url下载文件
- name: Download file
get_url:
url: https://website.com/file.sh
dest: /tmp/file.sh
mode: 0777
我不想在任务中添加硬编码的URL。相反,我想将其作为如下所示的常量变量
url: https://website.com/file.sh
并像这样在剧本中声明
- name: Download file
get_url:
url: {{$url}}
dest: /tmp/file.sh
mode: 0777
我不知道是否可能。
答案 0 :(得分:0)
通过阅读Ansible文档,您将找到“在命令行上传递变量”部分,该示例给出了以下内容:
ansible-playbook test.yml --extra-vars "version=1.23.45 other_variable=foo"
这是将变量传递到您的剧本的方法,另一种方法是使用 Jinja 模板,您必须详细阅读它,该信息也存在于ansible文档中。
答案 1 :(得分:0)
1)您可以在如下的剧本中使用vars选项
---
- name: Play
hosts: HOST01
vars:
url: https://website.com/file.sh
tasks:
- name: Download file
get_url:
url: {{ url }}
dest: /tmp/file.sh
mode: 0777
...
2)使用ansible提供的“ set_fact”模块
tasks:
- name : Setting the variable url
set_fact:
url: https://website.com/file.sh
- name: Download file
get_url:
url: {{ url }}
dest: /tmp/file.sh
mode: 0777