首页 > 解决方案 > 使用 Ansible 在目标服务器上创建文件

问题描述

我正在尝试使用 Ansible 在目标服务器上创建一个文件。

我想从目标服务器上的 env 变量中获取路径。

代码是:

- name: Create a file 
  win_file: 
    path: ansible_env.CONFIG_HOME\conf\xyz.txt
    state: file

我收到的错误是:

“改变”:错误,

"msg": "不会创建路径 ansible_env.CONFIG_HOME\conf\xyz.txt"

标签: ansible

解决方案


这里有两个问题。

首先,由于您尝试使用环境变量,因此需要大括号{{ }}来插入值。

其次,仔细阅读文档,了解win_file它谈论state行为方式的地方:

If file, 如果文件不存在,则不会创建该文件

if touch,如果路径不存在,将创建一个空文件

考虑到上述情况,以下内容应该适合您:

- name: Create a file 
  win_file: 
    path: "{{ ansible_env.CONFIG_HOME }}\conf\xyz.txt"
    state: touch

推荐阅读