Ansible——文件管理
文件管理模块
此类模块主要用来管理anible中文件变更替换等场景
blockinfile
该模块将插入/更新/删除标记线内的的多行文本块。
参数名 | 含义 |
---|---|
path | 需要编辑的文件地址 |
block | 常用管道符表示 |
create | 当要操作的文件并不存在时,是否创建对应的文件 |
例:
vim ceshi1.yml
---
- hosts: 192.168.190.134
tasks:
- name: blockinfile
blockinfile:
path: /tmp/file.txt
block: |
omg
etc
hello
yeah
wwwwooo
example:
# BEGIN ANSIBLE MANAGED BLOCK
omg
etc
hello
yeah
wwwwooo
# END ANSIBLE MANAGED BLOCK
copy
copy模块主要用来将主控机上的文件赋值到对应被控机上的某个位置。
参数名 | 含义 |
---|---|
backup | 是否需要备份 |
src | 主控机文件地址 |
dest | 文件预存放地址 |
[root@localhost project]# vim ceshi1.yml
---
- hosts: 192.168.190.134
tasks:
- name: cp
copy:
src: files/ceshi1
dest: /tmp/ceshi1
fetch
fetch模块主要是将远程主机中的文件拷贝到本机中,和copy模块的作用刚刚相反,并且在保存的时候使用hostname来进行保存
参数名 | 含义 |
---|---|
flat | 允许覆盖默认行为从hostname/path到/file的,如果dest以/结尾,它将使用源文件的基础名称 |
src | 要获取的远程系统上的文件。这必须是文件,而不是目录 |
dest | 将文件保存到的目录 |
[root@localhost project]# vim ceshi1.yml
---
- hosts: 192.168.190.134
tasks:
- fetch:
src: /tmp/file.txt
dest: /
flat: yes
file
设置文件,符号链接或目录的属性,或修改文件的所属用户及组和权限的修改等。
参数名 | 含义 |
---|---|
group | 修改文件的所属组 |
owner | 修改文件的所属用户 |
dest | 将文件保存到的目录 |
mode | 修改权限,对应chmod |
path | 被管理文件的路径 |
state | 状态:包括directory,touch,absent,hard,link |
递归创建目录,且目录权限都为660
vim ceshi1.yml
---
- hosts: 192.168.190.134
tasks:
- name: file test
file:
path: /tmp/playbook/test1.yml
state: directory
mode: '660' 权限必须以引号引起来
修改file.txt文件的权限所属组与用户改为sawyer,且文件权限为660
[root@localhost project]# vim ceshi1.yml
---
- hosts: 192.168.190.134
tasks:
- name: file test
file:
path: /tmp/file.txt
owner: sawyer
group: sawyer
mode: '0660'