ansible.windows.win_environment 模块 – 修改 Windows 主机上的环境变量

注意

此模块是 ansible.windows 集合(版本 2.5.0)的一部分。

如果您正在使用 ansible 包,您可能已经安装了此集合。 它不包含在 ansible-core 中。 要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install ansible.windows

要在 playbook 中使用它,请指定:ansible.windows.win_environment

概要

  • 使用 .net Environment 设置或删除环境变量,并且可以在用户、计算机或进程级别进行设置。

  • 用户级别的环境变量将被设置,但在用户注销并重新登录之前不可用。

参数

参数

注释

level

字符串 / 必需

设置环境变量的级别。

使用 machine 为所有用户设置。

使用 user 为 Ansible 连接的当前用户设置。

使用 process 为当前进程设置。 可能不是很有用。

选择

  • "machine"

  • "process"

  • "user"

name

字符串

环境变量的名称。 当 state=absent 时必需。

state

字符串

设置为 present 以确保设置环境变量。

设置为 absent 以确保删除环境变量。

当使用 variables 时,不要设置此选项。

选择

  • "absent"

  • "present"

value

字符串

要存储在环境变量中的值。

state=present 时必须设置,并且不能为空字符串。

对于 state=absentvariables,应省略此项。

variables

字典

在 ansible.windows 1.3.0 中添加

一个字典,可以在其中一次定义多个环境变量。

当设置 state 时无效。 具有值的变量将被设置(present),而具有空值的变量将被取消设置(absent)。

level 适用于以此方式定义的所有变量。

注意

注意

  • 此模块最适合设置环境变量的整个值。 对于基于元素的路径式环境变量的安全管理,请使用 ansible.windows.win_path 模块。

  • 此模块不广播更改事件。 这意味着少数可以更改其环境而无需重新启动的 Windows 应用程序不会收到通知,因此需要重新启动才能获取新的环境设置。 用户级别的环境变量将需要用户注销并再次登录才能变得可用。

  • 在返回中,当使用 variables 时,before_valuevalue 将设置为最后的值。 如果您需要查找特定变量的前后值,最好在这种情况下使用 values

参见

另请参阅

ansible.windows.win_path

管理 Windows 路径环境变量。

示例

- name: Set an environment variable for all users
  ansible.windows.win_environment:
    state: present
    name: TestVariable
    value: Test value
    level: machine

- name: Remove an environment variable for the current user
  ansible.windows.win_environment:
    state: absent
    name: TestVariable
    level: user

- name: Set several variables at once
  ansible.windows.win_environment:
    level: machine
    variables:
      TestVariable: Test value
      CUSTOM_APP_VAR: 'Very important value'
      ANOTHER_VAR: '{{ my_ansible_var }}'

- name: Set and remove multiple variables at once
  ansible.windows.win_environment:
    level: user
    variables:
      TestVariable: Test value
      CUSTOM_APP_VAR: 'Very important value'
      ANOTHER_VAR: '{{ my_ansible_var }}'
      UNWANTED_VAR: ''  # < this will be removed

返回值

常见的返回值记录在这里,以下是此模块独有的字段

描述

before_value

字符串

更改之前环境变量键的值,如果它不存在则为空

返回: 始终

示例: "C:\\Windows\\System32"

value

字符串

环境变量键已设置为的值,如果已删除则为空

返回: 始终

示例: "C:\\Program Files\\jdk1.8"

values

字典

在 ansible.windows 1.3.0 中添加

前后值的字典; 每个键是一个变量名称,每个值是另一个带有 beforeafterchanged 键的字典

返回: 始终

作者

  • Jon Hawkesworth (@jhawkesworth)

  • Brian Scholer (@briantist)