ansible copy模块--持续创作中

copy模块用于将文件从ansible控制节点(管理主机)或者远程主机复制到远程主机上。其操作类似于scp(secure copy protocol)。

关键参数标红。

参数:

src:(source:源)

要复制到远程服务器的文件的本地路径。这可以是绝对的,也可以是相对的。若路径是一个目录它将被递归复制。如果路径以“/”结尾,则仅在其内容内部目录被复制到目标。否则,如果没有以“/”结尾,包含所有内容的目录本身为复制。此行为类似于“rsync”命令行工具。

对于远程到远程的复制,更推荐使用synchronizefetch模块。

模板文件除了直接复制文件外,src还可以是一个Jinja2模板文件,Ansible会在传输前根据变量渲染这个模板。

当复制模板文件时,文件扩展名应为.j2,表明这是一个需要渲染的模板文件。

dest:(destination:目的地)

选项:必须、必填

文件应复制到的远程绝对路径。如果“src”是目录,那么它也必须是目录。如果“dest”是不存在的路径,并且其中一个“dest“结束如果“/”或“src”是目录,则会创建“dest”。如果“dest”是相对路径,则起始目录为由远程主机确定。如果“src”和“dest”是文件,则“dest“的父目录未创建,如果任务尚未创建则会失败存在。

remote_src:(remote_source:远程源)

类型:bool        选项:可选

默认情况下,src参数指向本地主机的文件。但当你需要从远程主机复制文件到另一台远程主机时,可以将此参数设为yes,此时src应指向远程主机的文件路径。

owner:(description:主人;所有权人)

类型:str        选项:可选。        默认值: 保持与源文件相同的属主(如果可能的话)

文件的所有者,执行后返回:成功

描述: 指定远程主机上目标文件或目录的所有者的用户名。

group:(group:组;群;类)

类型:str        选项:可选。        默认值: 保持与源文件相同的属组(如果可能的话)

描述:指定目标文件或目录在远程主机上的所属用户组。执行后返回:成功

mode:(mode:模式;方式;形式;风格)

类型: 字符串                必填: 否        默认值: 保持与源文件相同的权限(如果可能的话)

描述: 设置目标文件或目录的权限。(权限值遵循标准的Unix八进制权限表示法。)

backup:(backup:备份)

类型:bool(布尔型参数)        必填: no

默认值为no,意味着不会自动备份文件。当你将其设置为yes时,Ansible会在覆盖远程主机上的目标文件之前,创建该文件的一个备份。

备份文件命名规则

备份文件通常会被保存在同一目录下,并且文件名会被修改以包含时间戳,以便于追踪和区分不同时间点的备份。备份文件的命名格式通常形如filename.ext.ansible_bak_YYYY-MM-DD_HH.MM.SS,其中YYYY-MM-DD_HH.MM.SS代表备份创建的日期和时间。

force:(force:力量;武力)

类型:bool        默认值:True        

当设置为yes时,即使目标文件和源文件内容相同也会强制复制。默认是yes,但当使用checksum参数时,会根据校验和决定是否复制。

checksum:(checksum:检查和)

类型:str        选项:可选

使用此参数可以让Ansible通过计算源文件的校验和(默认是SHA1)来决定是否需要复制,这对于大文件尤其有用,可以避免不必要的复制。

directory_mode:(directory_mode:目录属性)

类型:raw        选项:可选

当复制目录时,设置目录的权限模式。如果没有设置,将使用系统默认值。该模式仅设置在新创建的目录上,并且不会影响那些已经存在的。

content:(content:内容;含量;所容纳之物)

类型:str        选项:可选

当代替“src”使用时,设置文件的内容直接设置为指定值。仅当“dest”是文件时才有效。创建文件(如果有)不存在。对于高级格式,或者如果“内容”包含变量,使用[template]模块。

(当你不想从本地文件系统复制文件,而是想直接提供文件内容时,可以使用此参数。内容可以是字符串或者引用Ansible变量。)

特点和注意事项

contentsrc是互斥的,这意味着在一个copy任务中不能同时使用这两个参数。

当使用content时,你可以利用YAML的多行文本特性(使用|符号),方便地编写多行内容。

如果你需要对内容进行更复杂的处理,比如变量插值或循环,可能需要考虑使用template模块而非直接使用content

content选项非常适合于小规模的文本内容或者配置片段的部署,而对于大文件或二进制文件,直接指定源文件路径(使用src)会更加合适。

通过content选项,Ansible的copy模块提供了灵活的方式来处理文件内容的创建或更新,特别适合于自动化配置文件生成或简单文本文件的分发。

validate:(validate:验证;确认;使生效)

类型:str        选项:可选

对于特定类型的文件(如配置文件),可以提供一个命令来验证目标文件的有效性。

例如,对于Apache配置文件,你可以用validate: apache2ctl configtest来确保配置是有效的。

Security Enhanced Linux(安全上下文)

如果你想要设定与SELinux相关的安全上下文(Security Enhanced Linux),在Ansible的copy模块中,可能会用到的是以下几个与SELinux相关的参数:

seuser:

类型:str

  • seuser: 设置文件的安全上下文中的用户部分。

参数用于设置复制到远程主机上的文件或目录的SELinux安全上下文中的用户部分。SELinux(Security-Enhanced Linux)是一个为Linux系统提供强制访问控制(MAC)的安全模块,它增加了额外的安全层,通过标签和策略来控制进程对文件和资源的访问。

描述: 指定文件或目录在远程主机上的SELinux安全上下文中的用户字段。这个值通常用来定义文件应该由哪个SELinux用户类型来访问。

使用场景

当你在启用SELinux的系统上部署应用或配置文件时,正确设置SELinux上下文对于确保系统和服务能够正常运行至关重要。例如,如果你需要将一个文件设置为由HTTP服务的SELinux用户访问,你可能会使用像httpd_sys_content_t这样的用户标签。

serole:

类型:str

  • serole: 设置文件的安全上下文中的角色(role)部分,这可能就是你所询问的类似于selevel的部分,但实际上正确的参数名是serole

描述: 指定文件或目录在远程主机上的SELinux安全上下文中的角色字段。角色决定了哪些类型的进程可以访问哪种类型的文件。

使用场景

当你的部署环境中启用了SELinux,并且需要精确控制文件访问权限时,设置正确的角色就显得尤为重要。例如,在部署Web服务相关的文件时,你可能需要将其角色设置为system_r中的某个特定角色,如允许Web服务进程访问的httpd_sys_content_t所对应的角色。

selevel:

类型:str

  • selevel: 或许是想表达SELinux级别的设置,但标准的Ansible参数应该是secontext,它允许你指定完整的SELinux上下文,如system_u:object_r:my_custom_t:s0

与SELinux相关的选项通常是selinux状态下划线role(如selinux状态下划线userselinux状态下划线groupselinux状态下划线mode等),用于控制目标文件或目录的SELinux上下文设置。

  • setype: 这是另一个可能与你提到的selevel有所关联的参数,它用于指定SELinux类型(Type)。

八进制权限表示法

在Unix/Linux中,文件权限由三组数字表示,每组数字分别对应文件所有者的权限、所属组的权限和其他用户的权限,每一组由三位组成,可能的位值包括4(读权限)、2(写权限)、1(执行权限)或0(无权限)。因此,一个典型的权限字符串可能是755,意味着:

  • 第一位7(4+2+1)代表所有者有读、写、执行权限。
  • 第二位5(4+1)代表所属组有读和执行权限。
  • 第三位5同样代表其他人有读和执行权限。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/30971.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL Xid、trx_id 作用及区别

1、Xid: Xid是用来联系bin log和redo log的。 存在于binlog和redolog之中。 在宕机后进行恢复时,判断事务是否已经提交成功,还是说需要回滚。 比如redo log里面有一个事务是prepare状态(第1阶段提交),那就可以用Xid去binlog里面查询该事务…

Effective C++ 改善程序与设计的55个具体做法笔记与心得 3

三. 资源管理 13. 以对象管理资源 请记住: 为防止资源泄露,使用智能指针 14. 在资源管理类中小心copying行为 请记住: 复制RAII对象必须一并复制他所管理的资源,所以资源的copying行为决定RAII对象的copying行为普遍而常见的…

2024年6月20日 (周四) 叶子游戏新闻

超市播音系统: 定时播放不同音乐 强制卸载软件: 一款强制卸载软件 免费多人沙盒游戏《宝藏世界》推出更新“潮起潮落”,带来全新克苏鲁风冒险准备好迎接一场超凡的冒险吧,MMORPG发行商gamigo宣布《宝藏世界》的最新更新:“潮起潮落”。这次更…

探索Linux命令的新利器:linux-command

在Linux操作系统中,熟练掌握各种命令是成为一名高效开发者或管理员的关键。然而,即使是经验丰富的用户,有时也会遇到命令用法不熟悉或者记忆模糊的情况。这时,一个功能强大的命令搜索工具就显得格外重要。最近在逛github的时候正好…

代码随想录算法训练营第29天(贪心)|455.分发饼干、376. 摆动序列、53. 最大子序和

455.分发饼干 题目链接:455.分发饼干 文档讲解:代码随想录 状态:so easy 思路:对胃口和饼干大小排序,小胃口对应小饼干,不满足的话用下一块饼干试探。 题解: public int findContentChildren(i…

CSS--解决图片变形的方法

原文网址:CSS--解决图片变形的方法_IT利刃出鞘的博客-CSDN博客 简介 本文介绍html文件中图片变形的解决方法。 问题描述 我们经常需要指定所有图片的大小,让它们排列起来时看起来更整齐。但是,如果我们指定了width和height,那…

力扣41 缺失的正数

给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1: 输入:nums [1,2,0] 输出:3 解释:范围 [1,2] 中的数字都在数组中…

volatile关键字(juc编程)

volatile关键字 3.1 看程序说结果 分析如下程序,说出在控制台的输出结果。 Thread的子类 public class VolatileThread extends Thread {// 定义成员变量private boolean flag false ;public boolean isFlag() { return flag;}Overridepublic void run() {// 线…

灵感互娱U3D笔试题

文章目录 题目1解析 题目2解析 题目3解析 题目4数组链表 题目5解析 题目6解析 题目7解析题目8解析 后话 题目1 以下C#代码的输出顺序是什么 namespace ConsoleApp2 {internal class Program{class A{ public A(string text){Console.WriteLine(text);}}class B{static A a1 …

原子性(juc编程)

原子性 概述:所谓的原子性是指在一次操作或者多次操作中,要么所有的操作全部都得到了执行并且不会受到任何因素的干扰而中断,要么所有的操作都不执行,多个操作是一个不可以分割的整体。 //比如说:你喂你女朋友吃冰淇…

ScheduledExecutorService引起的线上问题(抛出异常后不继续执行)

线上有一个服务,采用ScheduledExecutorService定时任务刷新数据库数据到本地缓存作为路由信息 private ScheduledExecutorService scheduledExecutorService Executors.newScheduledThreadPool(1);scheduledExecutorService.scheduleWithFixedDelay(new Runnable()…

【docker】adoptopenjdk/openjdk8-openj9:alpine-slim了解

adoptopenjdk/openjdk8-openj9:alpine-slim 是一个 Docker 镜像的标签,它指的是一个特定的软件包,用于在容器化环境中运行 Java 应用程序。 镜像相关的网站和资源: AdoptOpenJDK 官方网站 - AdoptOpenJDK 这是 AdoptOpenJDK 项目的官方网站&…

Nginx Rewrite技术

一:理解地址重写 与 地址转发的含义。二:理解 Rewrite指令 使用三:理解if指令四:理解防盗链及nginx配置 简介:Rewrite是Nginx服务器提供的一个重要的功能,它可以实现URL重定向功能。 一:理解地…

数据库异常恢复2-备份文件恢复(快速恢复的手动启动方式)

(四) 备份文件备份恢复的概念 本次所说的数据恢复有异于数据的导入导出 1. 备份工具 gbase8s数据库提供了两种工具进行完成系统物理备份、逻辑日志备份和系统恢复:ontape和onbar ontape:提供了基本的系统物理备份、日志备份和恢复能力,其…

C++基础知识——命名空间

P. S.:以下代码均在VS2019环境下测试,不代表所有编译器均可通过。 P. S.:测试代码均未展示头文件stdio.h的声明,使用时请自行添加。 博主主页:Yan. yan. 文章目录 1、什么是命名空间2、命名空间的作用3、如何定义命名…

js实现canvas截图功能

关键代码 使用canvas的导出功能和drawImage函数 class CropShape{cropShape(shape){let {x,y,w,h} shapeconsole.log(x,y,w,h)const roiCanvas document.createElement(canvas);document.getElementById(app).append(roiCanvas)const roiCtx roiCanvas.getContext(2d);roi…

贝叶斯优化、高斯过程相关概念总结

目录 贝叶斯优化 高斯过程 采集函数 贝叶斯优化 贝叶斯优化 &#xff5c; 黑盒优化全局最优方法 &#xff5c; Bayesian Optimization_哔哩哔哩_bilibili 贝叶斯优化用于解决寻找某个函数的最大值/最小值&#xff0c;在自变量维度比较小时(<20)表现的非常好。 适用…

Android5.1 文件AES加密

密钥最低128bits public class FileEncryptionUtil {private static final String ALGORITHM "AES";private static final String TRANSFORMATION "AES";/*** 使用AES加密算法对文件进行加密。** param key 用于加密的密钥。.* param inputFiles …

《计算机英语》Unit1 计算机概述

期末试卷组成 1、选择20道 2、判断20道 3、词汇翻译&#xff08;单词词组&#xff0c;参照课后习题&#xff09; 4、翻译2道&#xff08;一道原题&#xff0c;参照作业&#xff09; Unit One Computer Overview 单元1 计算机概述 algorithm n. 算法 operate …

byte[]转MultipartFile、byte[]转File一次看个够

目录 需求背景 当你需要将byte[]、MultipartFile、File实现互转时&#xff0c;无外乎以下场景&#xff1a; 保存第三方接口返回二进制流前/后端文件流上传微服务间调用文件格式转换 正如你所需要的&#xff0c;通过搜索引擎筛选到我的本篇文章是因为你在开发中需要将byte[]转…