美文网首页ansible常用模块
ansible核心模块之file

ansible核心模块之file

作者: wh0am11 | 来源:发表于2020-12-10 16:04 被阅读0次

    file模块

    帮助我们完成一些对文件的基本操作,比如,创建文件或目录、删除文件或目录、修改文件权限等

    常用参数 (=号后面的强制要求):

    • attributes

    设置特殊属性,参考 chattr 用法设置 (别名: attr)
    默认值: null
    添加于版本: 2.3

    • follow

    此标志如果存在,应遵循文件系统链接
    在 Ansible 2.5 之前的版本中,默认情况下为 no
    默认值: yes
    类型: bool
    添加于版本: 1.8

    • force

    state=link 时,可配合此参数强制创建链接文件,当 force=yes 时,表示强制创建链接文件,不过强制创建链接文件分为三种情况,情况一:当你要创建的链接文件指向的源文件并不存在时,使用此参数,可以先强制创建出链接文件。情况二:当你要创建链接文件的目录中已经存在与链接文件同名的文件时,将 force 设置为 yes,会将同名文件覆盖为链接文件,相当于删除同名文件,创建链接文件。情况三:当你要创建链接文件的目录中已经存在与链接文件同名的文件,并且链接文件指向的源文件也不存在,这时会强制替换同名文件为链接文件
    默认值: no
    类型:bool

    • group

    用于指定被操作文件的属组,属组对应的组必须在远程主机中存在,否则会报错
    默认值: null

    • mode

    用于指定被操作文件的权限,比如,如果想要将文件权限设置为"rw-r-x---",可以使用 mode=650 进行设置,或者mode=0650,效果也是相同的。如果你想要设置特殊权限,比如为二进制文件设置suid,可以使用mode=4700
    默认值:null

    • owner

    用于指定被操作文件的属主,属主对应的用户必须在远程主机中存在,否则会报错
    默认值: null

    • =path

    要操作的文件或目录(别名: destname)

    • recurse

    当要操作的文件为目录,将recurse设置为yes,可以递归的修改目录中文件的属性
    默认值:no
    类型: bool
    添加于版本: 1.1

    • src

    state 设置为 link 或者 hard 时,表示我们想要创建一个软链或者硬链,所以,我们必须指明软链或硬链链接的哪个文件,通过 src 参数即可指定链接源
    默认值: null

    • state

    此参数非常灵活,此参数对应的值需要根据情况设定,比如,当我们需要在远程主机中创建一个目录的时候,我们需要使用 path 参数指定对应的目录路径,假设,我想要在远程主机上创建 /testdir/a/b 目录,那么我则需要设置 path=/testdir/a/b,但是,我们无法从 /testdir/a/b 这个路径看出b是一个文件还是一个目录,ansible也同样无法单单从一个字符串就知道你要创建文件还是目录,所以,我们需要通过state 参数进行说明,当我们想要创建的 /testdir/a/b 是一个目录时,需要将 state 的值设置为 directorydirectory 为目录之意,当它与 path 结合,ansible就能知道我们要操作的目标是一个目录,同理,当我们想要操作的 /testdir/a/b 是一个文件时,则需要将 state 的值设置为touch,当我们想要创建软链接文件时,需将 state 设置为 link,想要创建硬链接文件时,需要将 state 设置为hard,当我们想要删除一个文件时(删除时不用区分目标是文件、目录、还是链接),则需要将 state 的值设置为absentabsent 为缺席之意,当我们想让操作的目标"缺席"时,就表示我们想要删除目标
    默认值:file

    实例:

    #更改文件所有权,组和模式。 使用八进制数字指定模式时,第一位应始终为0
    - file:
        path: /etc/foo.conf
        owner: foo
        group: foo
        mode: 0644
    - file:
        path: /work
        owner: root
        group: root
        mode: 01777
    - file:
        src: /file/to/link/to
        dest: /path/to/symlink
        owner: foo
        group: foo
        state: link
    - file:
        src: '/tmp/{{ item.src }}'
        dest: '{{ item.dest }}'
        state: link
      with_items:
        - { src: 'x', dest: 'y' }
        - { src: 'z', dest: 'k' }
    
    # 创建文件,使用符号模式设置权限(等同于0644)
    - file:
        path: /etc/foo.conf
        state: touch
        mode: "u=rw,g=r,o=r"
    
    # 新增或删除文件权限
    - file:
        path: /etc/foo.conf
        state: touch
        mode: "u+rw,g-wx,o-rwx"
    
    # 创建文件夹(若文件夹不存在)
    - file:
        path: /etc/some_directory
        state: directory
        mode: 0755
    

    相关文章

      网友评论

        本文标题:ansible核心模块之file

        本文链接:https://www.haomeiwen.com/subject/ecfrgktx.html