首页 > 解决方案 > 如何在 Ansible 剧本中冻结变量值

问题描述

鉴于此 Ansible 剧本:


- name: CI/CD management, via cidre.io
  hosts: 127.0.0.1
  connection: local

  vars:
    cidre_version: "{{ lookup('file', '../VERSION') | default('v0.1.0') }}"

  roles:
  - role1
  - role2

我明白每次我使用cidre_version变量,Ansible 读取VERSION文件,因此值是动态的并且可以跨任务改变。

剧本启动时如何冻结此值?

标签: ansible

解决方案


好问题。

您可以执行以下操作:

  1. 创建一个任务,如果存在则复制该文件,否则创建一个添加默认值的新文件。
  2. 初始化从此新文件中读取的变量。

这应该可以解决您的问题。


推荐阅读