当前位置: 首页 > backend >正文

Ansible模块——从控制节点向目标主机复制文件!

复制文件或字符串到被控主机的指定位置

ansible.builtin.copy:复制文件到被控主机指定位置,也可以将字符串写入文件(覆盖)。

选项

类型

默认值

描述

attributesstrnull

设置目标文件的额外属性,如 immutable 等。

backupboolfalse

如果目标存在,操作前创建备份文件。

checksumstrnull

用来验证源文件内容的一致性的 SHA1 校验值。

contentstrnull

直接指定要写入文件的文本内容(不从 src 读取)。

decryptbooltrue

如果 src 是加密的 vault 文件,是否解密。

destpathnull目标路径

,必须指定。

directory_modestrnull

如果递归复制目录时(目标目录不存在),目录使用的权限模式。

followboolfalse

如果目标中存在文件系统链接,则应遵循该链接。

forcebooltrue

如果目标存在且不同,是否强制覆盖。

groupstrnull

设置目标文件的属组。

local_followboolfalse

控制在 local(控制机)上的源文件是否跟随符号链接。

modestrnull

设置目标文件权限(比如 06440755)。

ownerstrnull

设置目标文件的属主。

remote_srcboolnotrue

 时表示 src 是目标机器上的路径,不从控制机复制。

selevelstrnull

设置 SELinux 的 level 属性。通常不需要。

serolestrnull

设置 SELinux 的 role 属性。

setypestrnull

设置 SELinux 的 type 属性。

seuserstrnull

设置 SELinux 的 user 属性。

srcpathnull

源文件路径(在控制机或者远程主机,根据 remote_src)。

unsafe_writesboolfalse

允许以不安全的方式写入文件,提升性能(但可能有风险,比如写一半被打断)。

validatestrnull

在复制文件之前执行指定的验证命令,验证命令的返回值决定是否继续执行文件复制。如果命令返回非零状态,复制操作将失败。(s% 表示源文件,命令不支持管道符、重定向等 Shell 高级功能)

常用选项:

选项

类型

默认值

描述

backupboolfalse

如果目标存在,操作前创建备份文件。

contentstrnull

直接指定要写入文件的文本内容(不从 src 读取)。

destpathnull目标路径

,必须指定。

directory_modestrnull

如果递归复制目录时(目标目录不存在),目录使用的权限模式。

followboolfalse

如果目标中存在文件系统链接,则应遵循该链接。

forcebooltrue

如果目标存在且不同,是否强制覆盖。

groupstrnull

设置目标文件的属组。

local_followboolfalse

控制在 local(控制机)上的源文件是否跟随符号链接。

modestrnull

设置目标文件权限(比如 06440755)。

ownerstrnull

设置目标文件的属主。

remote_srcboolfalsetrue

 时表示 src 是目标机器上的路径,不从控制机复制。

srcpathnull

源文件路径(在控制机或者远程主机,根据 remote_src)。

validatestrnull

在复制文件之前执行指定的验证命令,验证命令的返回值决定是否继续执行文件复制。如果命令返回非零状态,复制操作将失败。(s% 表示源文件,命令不支持管道符、重定向等 Shell 高级功能)

- name: Copy file with owner and permissionsansible.builtin.copy:src: /srv/myfiles/foo.confdest: /etc/foo.confowner: foogroup: foomode: '0644'- name: Another symbolic mode example, adding some permissions and removing othersansible.builtin.copy:src: /srv/myfiles/foo.confdest: /etc/foo.confowner: foogroup: foomode: u+rw,g-wx,o-rwx- name: Copy a new "ntp.conf" file into place, backing up the original if it differs from the copied versionansible.builtin.copy:src: /mine/ntp.confdest: /etc/ntp.confowner: rootgroup: rootmode: '0644'backup: yes- name: Copy a "sudoers" file on the remote machine for editingansible.builtin.copy:src: /etc/sudoersdest: /etc/sudoers.editremote_src: yesvalidate: /usr/sbin/visudo -csf %s- name: Copy using inline contentansible.builtin.copy:content: '# This file was moved to /etc/other.conf'dest: /etc/mine.conf- name: If follow=yes, /path/to/file will be overwritten by contents of foo.confansible.builtin.copy:src: /etc/foo.confdest: /path/to/link  # link to /path/to/filefollow: yes- name: If follow=no, /path/to/link will become a file and be overwritten by contents of foo.confansible.builtin.copy:src: /etc/foo.confdest: /path/to/link  # link to /path/to/filefollow: no

复制模板文件到被控节点指定位置

ansible.builtin.template:复制 Jinja2 模板文件到被控节点指定位置。

参数名

类型

默认值

描述

attributesstrnull

设置目标文件的文件属性字符串,如 +x(类似 chmod 的符号格式)。

backupboolfalse

如果目标文件发生变化,则备份原文件。

block_start_stringstr{%

Jinja2 块开始标识符(高级定制)。

block_end_stringstr%}

Jinja2 块结束标识符(高级定制)。

comment_start_stringstr{#

Jinja2 注释开始标识符。

comment_end_stringstr#}

Jinja2 注释结束标识符。

destpathnull

模板渲染后复制到受控节点的路径。

followboolfalse

是否跟随软链接,false 表示源文件替换软链接,true 表示源文件替换软链接指向的文件。

forcebooltrue

如果目标文件存在且不同,是否强制覆盖。

groupstrnull

设置目标文件的属组。

lstrip_blocksboolfalse

去除 Jinja2 块标签前的空格。

modestrnull

设置目标文件的权限,如 "0644"

newline_sequencestr\n

设置模板渲染后的换行符(\n\r 或 \r\n 等)。

output_encodingstrutf-8

输出文件编码。

ownerstrnull

设置目标文件的属主。

selevelstrnull

SELinux 等级。

serolestrnull

SELinux 角色。

setypestrnull

SELinux 类型。

seuserstrnull

SELinux 用户。

srcpathnull

本地模板文件的路径(相对于 templates/ 目录)。

trim_blocksboolfalse

控制是否移除 Jinja2 块之间的换行符。

unsafe_writesboolfalse

避免临时文件写法,某些情况下可以避免某些文件系统的问题。

validatestrnull

在替换目标文件前执行的验证命令(如 nginx -t -c %s)。

variable_start_stringstr{{

Jinja2 变量开始标识符。

variable_end_stringstr}}

Jinja2 变量结束标识符。

常用选项:

参数名

类型

默认值

描述

backupboolfalse

如果目标文件发生变化,则备份原文件。

comment_start_stringstr{#

Jinja2 注释开始标识符。

comment_end_stringstr#}

Jinja2 注释结束标识符。

destpathnull

模板渲染后复制到受控节点的路径。

followboolfalse

是否跟随软链接,false 表示源文件替换软链接,true 表示源文件替换软链接指向的文件。

forcebooltrue

如果目标文件存在且不同,是否强制覆盖。

groupstrnull

设置目标文件的属组。

modestrnull

设置目标文件的权限,如 "0644"

ownerstrnull

设置目标文件的属主。

srcpathnull

本地模板文件的路径。

validatestrnull

在替换目标文件前执行的验证命令(如 nginx -t -c %s)。

- name: Template a file to /etc/file.confansible.builtin.template:src: /mytemplates/foo.j2dest: /etc/file.confowner: bingroup: wheelmode: '0644'- name: Template a file, using symbolic modes (equivalent to 0644)ansible.builtin.template:src: /mytemplates/foo.j2dest: /etc/file.confowner: bingroup: wheelmode: u=rw,g=r,o=r- name: Create a DOS-style text file from a templateansible.builtin.template:src: config.ini.j2dest: /share/windows/config.ininewline_sequence: '\r\n'- name: Copy a new sudoers file into place, after passing validation with visudoansible.builtin.template:src: /mine/sudoersdest: /etc/sudoersvalidate: /usr/sbin/visudo -cf %s- name: Update sshd configuration safely, avoid locking yourself outansible.builtin.template:src: etc/ssh/sshd_config.j2dest: /etc/ssh/sshd_configowner: rootgroup: rootmode: '0600'validate: /usr/sbin/sshd -t -f %sbackup: yes

ansible.builtin.template 要配合 jinja2 使用,找时间写一下如何利用 ansible.builtin.template 配合 jinja2 复制文件。

http://www.xdnf.cn/news/5252.html

相关文章:

  • 文生视频模型速读:LTX-Video
  • Flink 运维监控与指标采集实战
  • 排序算法——总结
  • MySQL COUNT(*) 查询优化详解!
  • 【C++】string类(一)构造、重载、容量操作、访问与遍历(迭代器、范围for)、练习
  • 计算机网络:WiFi路由器发射的电磁波在空气中的状态是什么样的?
  • 打工人TOP,截图工具天花板
  • 智能商品推荐系统技术路线图
  • RabbitMQ深入学习
  • Taccel:一个高性能的GPU加速视触觉机器人模拟平台
  • yum install 如何卸载
  • vue3的响应式设计原理
  • DHT11温湿度传感器
  • 05 mysql之DDL
  • 复习javascript
  • MindSpore框架学习项目-ResNet药物分类-模型评估
  • 前端EXCEL插件,智表ZCELL产品V3.0 版本发布,底层采用canvas全部重构,功能大幅扩展,性能极致提升,满足千万级单元格加载
  • git 忽略 打包文件
  • CSS弹性布局
  • 深入解析进程地址空间:从虚拟到物理的奇妙之旅
  • PySide6 GUI 学习笔记——常用类及控件使用方法(常用类字体QFont)
  • Linux基本指令(一)
  • HDFS 常用基础命令详解——快速上手分布式文件系统
  • [python] 类
  • AtCoder Beginner Contest 405(CD)
  • 问题及解决01-面板无法随着窗口的放大而放大
  • 互联网大厂Java求职面试:基于RAG的智能问答系统设计与实现-3
  • 游戏引擎学习第270天:生成可行走的点
  • 阿里云CDN的源站配置:权重的详解
  • AI安全之对抗样本攻击---FGSM实战脚本解析