Ansible(三)-- ansible中 常用模块之文件操作--fetch模块、copy模块、file模块、blockinfile模块、lineinfile模块、synchronize模块

一、fetch模块

作用: 从受管主机中拉取文件
参数: ansible-doc -s fetch查看一下fetch模块的参数`

在这里插入图片描述
命令行使用:

ansible testA -m fetch -a "src=/etc/fstab dest=/testdir/ansible/"

playbook使用

--- 
- name: how to use fetch
  hosts: A
  tasks:
    - name: task1
      fetch:
        src:/etc/fstab
        dest:/testdir/ansible/

二、copy模块

作用:copy模块的作用就是拷贝文件,它与之前介绍的fetch模块类似,不过,fetch模块是从远程主机中拉取文件到ansible主机,而copy模块是将ansible主机上的文件拷贝到远程主机中。
参数ansible-doc -scopy查看一下fetch模块的参数`

src参数 	用于指定需要copy的文件或目录
dest参数 	用于指定文件将被拷贝到远程主机的哪个目录中,dest为必须参数
content参数 	当不使用src指定拷贝的文件时,可以使用content直接指定文件内容,src与content两个参数必有其一,否则会报错。
force参数 	当远程主机的目标路径中已经存在同名文件,并且与ansible主机中的文件内容不同时,是否强制覆盖,可选值有yes和no,默认值为yes,表示覆盖,如果设置为no,则不会执行覆盖拷贝操作,远程主机中的文件保持不变。
backup参数 	当远程主机的目标路径中已经存在同名文件,并且与ansible主机中的文件内容不同时,是否对远程主机的文件进行备份,可选值有yes和no,当设置为yes时,会先备份远程主机中的文件,然后再将ansible主机中的文件拷贝到远程主机。
owner参数 	指定文件拷贝到远程主机后的属主,但是远程主机上必须有对应的用户,否则会报错。
group参数 	指定文件拷贝到远程主机后的属组,但是远程主机上必须有对应的组,否则会报错。
mode参数 	指定文件拷贝到远程主机后的权限,如果你想将权限设置为"rw-r–r--",则可以使用mode=0644表示,如果你想要在user对应的权限位上添加执行权限,则可以使用mode=u+x表示。

命令行使用:

ansible testA -m copy -a "src=/etc/fstab dest=/testdir/ansible/"拷贝文件到受管主机

ansible testB -m copy -a 'content="aaa\nbbb\n" dest=/opt/test'把指定内容写入受管主机指定文件


playbook使用:

--- 
- name: how to use copy
  hosts: A
  tasks:
    - name: task1
      copy:
        src:/etc/fstab
        dest:/testdir/ansible/
        owner:root
        group:root
        mode: 0644

三、file模块

作用:file模块可以帮助我们完成一些对文件的基本操作,比如,创建文件或目录、删除文件或目录、修改文件权限等
参数ansible-doc -s file查看一下fetch模块的参数`

path参数 	必须参数,用于指定要操作的文件或目录。
recurse参数 	当要操作的文件为目录,将recurse设置为yes,可以递归的修改目录中文件的属性。

state参数 	
当我们想要创建的/testdir/a/b是一个目录时,需要将state的值设置为directory,
当我们想要操作的/testdir/a/b是一个文件时,则需要将state的值设置为touch,
当我们想要创建软链接文件时,需将state设置为link,
想要创建硬链接文件时,需要将state设置为hard,
当我们想要删除一个文件时,则需要将state的值设置为absent

src参数 	当state设置为link或者hard时,表示我们想要创建一个软链或者硬链,所以,我们必须指明软链或硬链链接的哪个文件,通过src参数即可指定链接源 。
force参数 	当state=link的时候,可配合此参数强制创建链接文件,当force=yes时,表示强制创建链接文件,不过强制创建链接文件分为两种情况,情况一:当你要创建的链接文件指向的源文件并不存在时,使用此参数,可以先强制创建出链接文件。情况二:当你要创建链接文件的目录中已经存在与链接文件同名的文件时,将force设置为yes,会将同名文件覆盖为链接文件,相当于删除同名文件,创建链接文件。情况三:当你要创建链接文件的目录中已经存在与链接文件同名的文件,并且链接文件指向的源文件也不存在,这时会强制替换同名文件为链接文件。
owner参数 	用于指定被操作文件的属主,属主对应的用户必须在远程主机中存在,否则会报错。
group参数 	用于指定被操作文件的属组,属组对应的组必须在远程主机中存在,否则会报错。
mode参数 	用于指定被操作文件的权限,比如,如果想要将文件权限设置为"rw-r-x—",则可以使用mode=650进行设置,或者使用mode=0650,效果也是相同的,如果你想要设置特殊权限,比如为二进制文件设置suid,则可以使用mode=4700,很方便吧。
setpye参数     临时设置安全上下午

命令行使用:

ansible testB -m file -a "path=/testdir/westos state=touch"在testB(server3)主机上创建一个名为westos的文件,

ansible testB -m file -a "path=/testdir/westosdir state=directory"在testB(server3)主机上创建一个名为westosdir的目录,

ansible testB -m file -a "path=/testdir/linkwestos state=link src=/testdir/westos"在testB(server3)上为westos文件创建软链接文件,软链接名为linkwestos

ansible testB -m file -a "path=/testdir/linkwestos state=absent"删除远程机器上的指定文件或目录

 ansible testB -m file -a "path=/testdir/1/2 state=directory owner=cl group=cl recurse=yes"当操作远程主机中的目录时,同时递归的创建目录并将目录中的文件的属主属组都设置为cl。

playbook使用:

--- 
- name: how to use copy
  hosts: A
  tasks:
    - name: task1
      file:
        path:/testdir/1/2 
        owner:root
        group:root
        mode: 0644
        state: touch
   - name: task2
      file:
        path:/testdir/1/2 
        setype:samba_share_t 临时设置安全上下文
        
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值