Ansible上在被管理节点上创建文件或目录

1.描述文件模块

Files模块库包含的模块允许用户完成与Linux文件管理相关的大多数任务,如创建、复制、编辑和修改文件的权限和其他属性。下表提供了常用文件管理模块的列表:

常用的文件模块
模块名称 模块说明
blockinfile 插入、更新或删除由可自定义标记线包围的多行文本块
copy 将文件从本地或远程计算机复制到受管主机上的某个位置。类似于file模块,copy模块还可以设置文件属性,包括SELinux上下文件。
fetch 此模块的作用和copy模块类似,但以相反方式工作。此模块用于从远程计算机获取文件到控制节点,并将它们存储在按主机名组织的文件树中。
file 设置权限、所有权、SELinux上下文以及常规文件、符号链接、硬链接和目录的时间戳等属性。此模块还可以创建或删除常规文件、符号链接、硬链接和目录。其他多个与文件相关的模块支持与file模块相同的属性设置选项,包括copy模块。
lineinfile 确保特定行位于某文件中,或使用反向引用正则表达式来替换现有行。此模块主要在用户想要更改文件的某一行时使用。
stat 检索文件的状态信息,类似于Linux中的stat命令。
synchronize 围绕rsync命令的一个打包程序,可加快和简化常见任务。synchronize模块无法提供对rsync命令的完整功能的访问权限,但确实最常见的调用更容易实施。用户可能仍需通过run command模块直接调用rsync命令。

2.确保受管主机上存在文件

使用file模块处理受管主机上的文件。其工作方式与touch命令类似,如果不存在则创建一个空文件,如果存在,则更新其修改时间。

---
- hosts: all
  tasks:
    - name: asdasda
      file:
        path: /etc/opt/2
        owner: simple
        group: simple
        mode: 0744
        state: touch


[root@localhost opt]# ll
总用量 0
-rwxr--r--  1 simple simple  0 98 04:42 2

3.在受管主机上复制和编辑文件

copy模块用于将位于控制节点上的Ansible工作目录中的文件复制到选定的受管主机。

默认情况下,此模块假定设置了force: yes。这会强制该模块覆盖远程文件(如果存在但包含与正在复制的文件不同的内容)。如果设置force: no,则它仅会将该文件复制到受管主机(如果该文件尚不存在)。

---
- hosts: all
  tasks:
    - name: copy
      copy:
        src: files/1.sh
        dest: /etc/opt/1.sh

[root@localhost opt]# ls
1.sh  2  chrome

要从受管主机检索文件,请使用fetch模块:

---
- hosts: all
  tasks:
    - name: copy
      fetch:
        src: /etc/opt/1.sh
        dest: /files/

要确保现有文件中存在特定的单行文本,请使用lineinfile模块:

---
- hosts: all
  tasks:
    - name: adsd
      lineinfile:
        path: /etc/opt/1.sh
        line: 'ls'
        state: present

[root@localhost opt]# cat 1.sh 
ls

文本块添加到现有文件,请使用blockinfile模块:

---
- hosts: all
  tasks:
    - name: adsd
      blockinfile:
        path: /etc/opt/1.sh
        block: |
          6666
          s1mple
        state: present

[root@ansible jay]# ansible-playbook playbook.yml 

PLAY [all] 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值