在CentOS 7上使用Ansible创建目录的问题解决方案

99次阅读
没有评论

问题描述

在使用Ansible时遇到了创建目录的问题。他的Ansible脚本似乎无法正确创建目录,并且在运行--check选项时出现了错误。

解决方案

请注意以下操作可能会因Ansible版本差异而有所不同。

问题分析

首先,让我们看一下你的Ansible脚本和输出。你的脚本尝试使用file模块来创建目录,但是存在一些错误。以下是你的脚本示例:

- hosts: localhost
  tasks:
    - file:
        name: add dir
        path: /etc/ansible/roles/webservers/'{{item}}'
        state: directory
        mode: 0755
        owner: nikola
      vars:
        dir_list:
          - handlers
          - vars
          - defaults
          - meta
      with_items: ' {{ dir_list }} '

解决步骤

根据你的问题描述和最佳回答,以下是修复你的脚本的步骤:

  1. 修复name参数问题: file模块的name参数是path的别名,所以你不应该在这里使用name。将其更正为path

  2. 修复路径问题: 在路径中,你不需要使用单引号。单引号会被包含在路径中,导致路径不正确。正确的路径应该是/etc/ansible/roles/webservers/{{ item }}

以下是修复后的Ansible脚本示例:

- hosts: localhost
  tasks:
    - name: Add directories
      file:
        path: '/etc/ansible/roles/webservers/{{ item }}'
        state: directory
        mode: '0755'
        owner: nikola
      loop: '{{ dir_list }}'

在上面的修复后的脚本中,我们将name更正为Add directories,并使用loop来遍历dir_list中的目录列表。同时,我们修正了路径问题,不再使用单引号。

通过采用上述修复步骤,你的Ansible脚本应该能够成功创建目录,不再出现错误。

结论

在使用Ansible时,确保正确配置模块参数和路径,以避免类似的错误。以上修复步骤应该能够帮助你解决创建目录的问题,并使你的脚本能够按预期运行。

请在实际操作之前,确保你已经做好了必要的备份和版本控制。

正文完