ansible是一款非常强大的自动化运维工具,使我们可以很快捷地实现对远程目标服务器的自动化运维,包括服务器维护,文件操作,实时监控,项目服务更新,备份等等N多行为,就像你手工远程到服务器的一系列操作,都可以通过ansible帮你完成,而且它还是可以批量操作的。今天介绍的是它的file模块。
1,file模块用来管理文件和文件属性(删除文件、符号链接或目录)
2,对于 远程服务是Windows 目标,改用ansible.windows.win_file模块
实际工作中比较常用的参数有:
path:要管理的文件的路径
state:状态这个参数,它的值有,absent,directory,file,hard,link,touch
absent:如果path指定是目录,目录将被递归删除,
如果path指定是文件,文件将被删除,文件或符号链接将被取消链接
如果要删除的目录或文件不存在,默认不会报错。
directory:使用directory值,则将创建所有中间子目录(如果它们不存在)。
由Ansible 1.7开始,具有创建中间子目录的权限
file:如果使用file值 ,但没有使用其它参数,则返回路径的当前状态
如果使用了其它参数,如mode,则会改变文件的权限,如果文件不存在,
是不会创建文件的。
hard:将创建或更改硬链接
link:将创建或更改符号链接
touch:可以用来判断文件是否存在,如果不存在,将会创建一个空文件。
mode:给文件或目录授权。授权时,如果你习惯用数字,如644,777等,
在ansible中需要写成0644,0777,或写成 "644","777"。
从1.8开始,可指使用符号授权(例如,u+rwx或u=rw,g=r,o=r)。
如果未指定mode,则新创建的文件将按当前系统默认的权限处理
该模块其他参数可参见下图:
更改文件授权
- name: Change file permissions
ansible.builtin.file:
path: /root/foo.conf
mode: '1777'
创建一个软链接
- name: Create a link
ansible.builtin.file:
src: /path1/to/link/to
dest: /path2/to/symlink
state: link
删除文件(当foo.txt文件不存在,将不会返回报错)
- name: Remove file
ansible.builtin.file:
path: /root/foo.txt
state: absent
删除目录(将删除子目录)
- name: Recursively remove directory
ansible.builtin.file:
path: /root/myfoo
state: absent
页面更新:2024-03-17
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号