
作者主页:点击!****
Ansible专栏:点击!****
创作时间:2024年5月21日15点21分

💯趣站推荐💯
前些天发现了一个巨牛的🤖人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家,人工智能, 机器算法等...... 点击跳转网页!
https://www.captainbed.cn/sis
Ansible中的文件模块允许您在远程主机上创建、删除、修改文件和目录,以及更改它们的权限和属性。
file模块的作用
- 创建、修改和删除文件和目录
- 设置文件和目录的权限、所有者和组
- 创建硬链接和符号链接
- 复制文件和目录
- 将文件的内容追加到现有文件
file模块的优点
- 易于使用:file模块使用YAML语法定义,易于阅读和理解。
- 功能强大:file模块提供了多种功能,可以满足各种文件管理需求。
- 灵活:file模块可以使用各种参数和选项来控制其行为。
- 可扩展:file模块可以与其他Ansible模块一起使用,以完成更复杂的任务。
- 高效:file模块使用高效的算法来执行文件操作。
| 参数 | 描述 |
|---|---|
| path | 指定要操作的文件或目录的路径。 |
| state | 指定要执行的操作。可选值包括absent、file、directory、link、hard。 |
| owner | 设置文件或目录的所有者。 |
| group | 设置文件或目录的所属组。 |
| mode | 设置文件或目录的权限。 |
| src | 在复制文件时指定源文件或目录的路径。 |
| dest | 在复制文件时指定目标文件或目录的路径。 |
| recurse | 递归操作目录。如果设置为yes,则会递归操作目录,包括其中的子目录和文件。 |
| force | 强制操作,即使目标文件或目录已存在也执行。 |
| backup | 在更改文件时备份原始文件。 |
| validate | 在写入文件之前验证其内容。 |
| follow | 当处理符号链接时,如果设置为yes,则遵循链接;如果设置为no,则不遵循链接。 |
| selevel | 设置SELinux标签的级别。 |
| serole | 设置SELinux标签的角色。 |
| setype | 设置SELinux标签的类型。 |
| seuser | 设置SELinux标签的用户。 |
| attributes | 设置文件或目录的扩展属性。 |
| unsafe_writes | 如果设置为yes,则会在文件写入之前备份原始文件,以防止数据丢失。 |
实例:
创建文件:
- name: Create a file
hosts: all
tasks:
- file:
path: /etc/myconfig
state: file
content: "This is my configuration file."
创建目录:
- name: Create a directory
hosts: all
tasks:
- file:
path: /var/log/myapp
state: directory
设置文件权限:
- name: Set file permissions
hosts: all
tasks:
- file:
path: /etc/myconfig
mode: "0644"
将文件的内容追加到现有文件:
- name: Append to a file
hosts: all
tasks:
- file:
path: /var/log/myapp.log
state: file
append: yes
content: "This is a new log message."
实验要求
通过Ansible服务器给两台服务器创建文件
帮助手册
ansible-doc file
1.增加主机组
通过以下配置就是创建一个webServers组 并且加入两个主机 再给组赋予变量 用户名和密码 这样组下的所有主机都可以访问 更加的便捷

2.创建文件
创建一个文件
[root@ansible ~]# ansible webServers -m file -a 'path=/root/1.txt mode=777 state=touch'
-m file:此选项告诉Ansible使用file模块,该模块用于管理远程计算机上的文件和目录。-a 'path=/root/1.txt mode=777 state=touch':这是传递给file模块的参数字符串。让我们进一步分解它:
path=/root/1.txt:这定义了你要管理的文件的路径。在这种情况下,它是/root/1.txt。mode=777:设置文件的权限。在这里,777将读、写和执行权限赋予每个人(所有者、组和其他人),出于安全原因,通常不建议这样做。state=touch:此参数指示file模块在不存在空文件时创建空文件。touch参数通常用于此目的。

客户端测试

3.创建文件夹
创建一个文件夹并且赋予权限
[root@ansible ~]# ansible webServers -m file -a 'path=/root/mkdir mode=777 state=directory'
-m file:指定用于管理文件和目录的file模块。-a 'path=/root/mkdir mode=777 state=directory':这是参数字符串:
- #0000;有一个错误。目录名不应该包含在路径中。它应该指定要创建的目录。这里,
/root/mkdir将在/root目录中创建一个名为"mkdir"的目录。- 我们想要创建一个名为特定名称的目录,所以让我们用所需的路径替换它,例如:
path=/var/www/html。mode=777:设置目录的权限。将其设置为777是一种安全风险,授予每个人读,写和执行权限。state=directory:这指示模块创建一个目录,如果它不存在。

客户端查看

https://www.captainbed.cn/sis