1. file模块

功能:为被控端创建文件或目录,设定权限属性;

主要参数如下:

参数 说明
path 指定远程服务器的路径,也可以写成‘dest’,‘name’
state 状态,可以将值设定为directory表示创建目录,设定为touch表示创建文件,设定为link表示创建软连接,设定为hard表示创建硬连接,设定为absent表示删除目录文件或链接
mode 文件复制到远程并设定权限,默认file=644,directory=755
owner 文件复制到远程并设定属主,默认为root
group 文件复制到远程并设定属组,默认为root
recurese 递归修改
  • 示例一:创建文件/root/f1.sh,并设定属主、属组、权限:

    [root@xuzhichao ~]# ansible NginxWebs -m file -a 'path=/root/f1.sh owner=root group=root mode=755 state=touch'
    192.168.20.23 | CHANGED => {
    "ansible_facts": {
    "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": true,
    "dest": "/root/f1.sh",
    "gid": 0,
    "group": "root",
    "mode": "0755",
    "owner": "root",
    "size": 0,
    "state": "file",
    "uid": 0
    }
    192.168.20.22 | CHANGED => {
    "ansible_facts": {
    "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": true,
    "dest": "/root/f1.sh",
    "gid": 0,
    "group": "root",
    "mode": "0755",
    "owner": "root",
    "size": 0,
    "state": "file",
    "uid": 0
    }
  • 示例二:修改上例中文件的属主属组为xu

    [root@xuzhichao ~]# ansible NginxWebs -m file -a 'path=/root/f1.sh owner=xu group=xu'
    192.168.20.22 | CHANGED => {
    "ansible_facts": {
    "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": true,
    "gid": 1000,
    "group": "xu",
    "mode": "0755",
    "owner": "xu",
    "path": "/root/f1.sh",
    "size": 0,
    "state": "file",
    "uid": 1000
    }
    192.168.20.23 | CHANGED => {
    "ansible_facts": {
    "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": true,
    "gid": 1000,
    "group": "xu",
    "mode": "0755",
    "owner": "xu",
    "path": "/root/f1.sh",
    "size": 0,
    "state": "file",
    "uid": 1000
    } [root@nginx03 ~]# ll /root/f1.sh
    -rwxr-xr-x 1 xu xu 0 Aug 1 22:22 /root/f1.sh
  • 示例三:创建目录/root/test/,并设定属主、属组、权限

    [root@xuzhichao ~]# ansible NginxWebs -m file -a 'path=/root/test owner=root group=root mode=755 state=directory'
    192.168.20.23 | CHANGED => {
    "ansible_facts": {
    "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": true,
    "gid": 0,
    "group": "root",
    "mode": "0755",
    "owner": "root",
    "path": "/root/test",
    "size": 6,
    "state": "directory",
    "uid": 0
    }
    192.168.20.22 | CHANGED => {
    "ansible_facts": {
    "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": true,
    "gid": 0,
    "group": "root",
    "mode": "0755",
    "owner": "root",
    "path": "/root/test",
    "size": 6,
    "state": "directory",
    "uid": 0
    } [root@nginx03 ~]# ll /root/test/ -d
    drwxr-xr-x 2 root root 6 Aug 1 22:26 /root/test/
  • 示例四:为/root/f1.sh创建软链接文件/root/f1.sh.link

    [root@xuzhichao ~]# ansible NginxWebs -m file -a 'src=/root/f1.sh dest=/root/f1.sh.link state=link'
    192.168.20.23 | CHANGED => {
    "ansible_facts": {
    "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": true,
    "dest": "/root/f1.sh.link",
    "gid": 0,
    "group": "root",
    "mode": "0777",
    "owner": "root",
    "size": 11,
    "src": "/root/f1.sh",
    "state": "link",
    "uid": 0
    }
    192.168.20.22 | CHANGED => {
    "ansible_facts": {
    "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": true,
    "dest": "/root/f1.sh.link",
    "gid": 0,
    "group": "root",
    "mode": "0777",
    "owner": "root",
    "size": 11,
    "src": "/root/f1.sh",
    "state": "link",
    "uid": 0
    } [root@nginx03 ~]# ll /root/f1.sh*
    -rwxr-xr-x 1 xu xu 0 Aug 1 22:22 /root/f1.sh
    lrwxrwxrwx 1 root root 11 Aug 1 22:28 /root/f1.sh.link -> /root/f1.sh
  • 示例五:删除以上示例中创建的目录和文件:

    [root@xuzhichao ~]# ansible NginxWebs -m file -a 'path=/root/f1.sh.link state=absent'
    192.168.20.23 | CHANGED => {
    "ansible_facts": {
    "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": true,
    "path": "/root/f1.sh.link",
    "state": "absent"
    }
    192.168.20.22 | CHANGED => {
    "ansible_facts": {
    "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": true,
    "path": "/root/f1.sh.link",
    "state": "absent"
    }
    [root@xuzhichao ~]# ansible NginxWebs -m file -a 'path=/root/f1.sh state=absent' [root@xuzhichao ~]# ansible NginxWebs -m file -a 'path=/root/test state=absent'
  • 示例六:也可以删除一级目录(挂载点),会报错,但是可以清楚数据:

    [root@localhost /data] #ansible app -m file -a 'dest=/data/ state=absent'
    192.168.169.130 | FAILED! => {
    "changed": false, <==报错 [root@localhost /data] #ansible app -a 'ls -l /data/'
    total 0 <==数据已经清空
  • 示例七:递归授权目录,类似于-R的作用:

    [root@manger ~]# ansible webservers -m file -a "path=/tmp/foo state=directory owner=root group=root mode=777 recurse=yes"

ansible(7)--ansible的file模块的更多相关文章

  1. ansible 的file 模块

    创建.修改.删除文件或者目录: file模块 file模块常用的几个参数:state.path.src.dest.mode.owner.group.name.recurse state后面跟的参数:  ...

  2. ansible使用file模块管理受控机的目录与文件(ansible2.9.5)

    一,ansible的file模块的用途 file 模块实现对文件的基本操作. 例如: 创建文件或目录 删除文件或目录 修改文件权限等 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https:// ...

  3. ansible学习系列2-ansible常用模块使用

    1. 查看支持的模块 [root@localhost ~]# ansible-doc -l 这里我们看下ansible的支持的模块个数 [root@localhost ~]# ansible-doc ...

  4. ansible学习基础知识和模块(一)

    基础知识补充: 常用自动化运维工具 Ansible:使用python来开发的,无需设置Agentless(代理),一般管理几百台.与ssh的方式也不一样,ssh是基于c/s模式(客户端+服务器)来使用 ...

  5. Ansible安装部署以及常用模块详解

    一.  Ansible 介绍Ansible是一个配置管理系统configuration management system, python 语言是运维人员必须会的语言, ansible 是一个基于py ...

  6. ansible环境部署及常用模块总结 - 运维笔记

    一.  Ansible 介绍Ansible是一个配置管理系统configuration management system, python 语言是运维人员必须会的语言, ansible 是一个基于py ...

  7. Ansible安装部署及常用模块详解

    Ansible命令使用 Ansible语法使用ansible <pattern_goes_here> -m <module_name> -a <arguments> ...

  8. Ansible基础配置与常用模块使用

    环境介绍: Ansible服务端IP:192.168.2.215 Ansible客户端IP:192.168.2.216.192.168.2.218.192.168.2.113   一.创建Ansibl ...

  9. Ansible 开发调试 之【模块调试】

    本地调试 需要安装jinja2 库 yum -y install python-jinja2 使用官方提供的测试脚本调试 git clone git://github.com/ansible/ansi ...

  10. 10.Python之Ansible自动化运维常用模块

    Ansible中文权威文档:http://www.ansible.com.cn/docs/ Ansible从入门到精通:https://www.bilibili.com/video/av3361175 ...

随机推荐

  1. c语言的一些类型声明符

    基本类型: char: 字符类型 int: 整数类型 float: 单精度浮点数类型 double: 双精度浮点数类型 void: 无类型 修饰符: short: 短整数类型 long: 长整数类型 ...

  2. scala入门输出hello world!

    官网下载scala 2.12.11 版zip包,解压到自定义目录并配置环境变量.

  3. 【已解决】idea编译器插入数据到数据库乱码以及jsp页面乱码的解决方法

    1.jsp页面需要设置编码格式为utf-8 1 <%@ page contentType="text/html;charset=UTF-8" language="j ...

  4. #插头dp#洛谷 5074 HDU 1693 Eat the Trees

    题目 给出 \(n*m\) 的方格,有些格子不能铺线, 其它格子必须铺,可以形成多个闭合回路. 问有多少种铺法? \(n,m\leq 12\) 分析 设 \(dp[n][m][S][0/1]\) 表示 ...

  5. #NTT,DP#U138580 简单的打击

    题目 给出两个等长的序列\(a,b\), 重排序列\(b\),使得\(a+b\)众数出现的次数最多 分析 设\(f[i]\)表示众数为\(i\)的贡献,那么 \(f[i]=\sum_{j<i}m ...

  6. C 语言用户输入详解:scanf、fgets、内存地址解析及实用指南

    C 语言中的用户输入 您已经学习了 printf() 函数用于在 C 语言中输出值. 要获取用户输入,可以使用 scanf() 函数: // 声明一个整数变量,用于存储我们从用户那里获得的数字 int ...

  7. 【C#上位机】西门子1200PLC实用定位控制程序案例

    1. 引言 新阁教育这篇文章是一篇综合性非常强的文章,从PLC输入输出及步进电机接线开始,到PLC运动控制程序编写,再到后续的ModbusTCP通信协议及上位机编程实现最终控制,涉及知识面比较广,能够 ...

  8. SAST-数据流分析方法-理论

    引言 众所周知,数据流分析是实现污点分析的一种常用技术 数据流分析分为过程内的数据流分析与过程间的数据流分析.前者是对一个方法体内的数据流分析,主要是基于CFG分析,不涉及方法调用:后者是基于不同方法 ...

  9. MyBatis 应用的组成

    王有志,一个分享硬核Java技术的互金摸鱼侠 加入Java人的提桶跑路群:共同富裕的Java人 大家好,我是王有志.在上一篇文章的最后,我们写了一个简单的例子,今天我们就通过这个例子来看一看一个标准的 ...

  10. 重新点亮shell————awk表达式[十二]

    前言 简单介绍一下awk命令. 正文 介绍: 字段: 实例: 例子: 分割例子: 显示行号例子: awk 表达式: 赋值操作符 这个$1 解释一下,在我们的脚本中,这个$1 是第一个参数,这里是第一个 ...