gpt4 book ai didi

Ansible:将变量设置为文件内容

转载 作者:行者123 更新时间:2023-12-02 08:54:21 24 4
gpt4 key购买 nike

我正在使用带有 ansible-playbook 的 ec2 模块,我想为文件的内容设置一个变量。这就是我目前正在做的事情。

  1. 带有文件名的变量
  2. 用于 cat 文件的 shell 任务
  3. 使用 cat 的结果传递给 ec2 模块。

我的剧本的示例内容。

vars:
amazon_linux_ami: "ami-fb8e9292"
user_data_file: "base-ami-userdata.sh"
tasks:
- name: user_data_contents
shell: cat {{ user_data_file }}
register: user_data_action
- name: launch ec2-instance
local_action:
...
user_data: "{{ user_data_action.stdout }}"

我认为有一种更简单的方法可以做到这一点,但我在搜索 Ansible 文档时找不到它。

最佳答案

您可以使用lookups在 Ansible 中为了获取本地计算机上文件的内容,例如

user_data: "{{ lookup('file', user_data_file) }}"

警告:此查找将适用于本地文件,而不是远程文件。

这是一个complete example from the docs :

- hosts: all
vars:
contents: "{{ lookup('file', '/etc/foo.txt') }}"
tasks:
- debug: msg="the value of foo.txt is {{ contents }}"

关于Ansible:将变量设置为文件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24003880/

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