2.Ansible的copy模块,我最常用的模块

1. 简述

先从我自身的情况来说,我不是运维人员,并且对linux操作也不是特别熟悉,所以工作中我使用ansible基本就是在平常的自动化部署中,而使用最多的模块就是copy模块。我使用copy模块也主要是来替换生产环境的配置文件。所以,这里我主要介绍一下copy模块。说实话,对于其他模块,我接触的也不多。

2.copy 模块的用法

2.1 官方概念

我们先看官方文档怎么说的copy这个模块
在这里插入图片描述
The copy' module copies a file from the local or remote machine to a location on the remote machine. Use the [fetch] module to copy files from remote locations to the local box. If you need variable interpolation in copied files, use the [template] module. Using a variable in the content’ field will result in unpredictable output. For Windows targets, use the [win_copy] module instead.

2.2 参数描述

参数描述
src指定被copy的文件或目录
dest指定文件将被拷贝到远程主机的哪个目录中
force当远程主机的目标路径中已经存在同名文件,并且与ansible主机中的文件内容不同时,是否强制覆盖,可选值有yes和no,默认值为yes,表示覆盖,如果设置为no,则不会执行覆盖拷贝操作,远程主机中的文件保持不变。
backup当远程主机的目标路径中已经存在同名文件,并且与ansible主机中的文件内容不同时,是否对远程主机的文件进行备份,可选值有yes和no,当设置为yes时,会先备份远程主机中的文件,然后再将ansible主机中的文件拷贝到远程主机。
mode指定文件拷贝到远程主机后的权限,比如你想将权限设置为”rw-r–r–“,则可以使用mode=0644表示,如果你想要在user对应的权限位上添加执行权限,则可以使用mode=u+x表示

3. 示例

3.1 将主机文件复制到远程机器上某个目录下

more test/a.txt

在这里插入图片描述
执行copy命令

ansible all  -m copy -a "src=/test/a.txt dest=/test/"

在这里插入图片描述
在这里插入图片描述
复制成功了。
这个时候如果我们再执行一次,可以看到结果发生了变化
在这里插入图片描述
在这里插入图片描述
在远程机器上也看到了这个文件
在这里插入图片描述

3.2 在主机上将文本内容复制到远程机器上文件中

3.2.1 执行命令

ansible all -m copy -a 'content="qqqqq\nwwww\n" dest="/test2/a_1.txt"'

在这里插入图片描述

3.2.2 结果异常

FAILED! => {
“ansible_facts”: {
“discovered_interpreter_python”: “/usr/bin/python”
},
“changed”: false,
“checksum”: “a9dd8f985a0e22e8ce07dc2e9ec61d92fdeb96f9”,
“msg”: “Destination directory /test2 does not exist”
}

在这里插入图片描述
这里说是远程主机没有这个目录,是不是很尴尬啊。

3.2.3 问题解决

这个时候需要使用file模块,先创建目录:

ansible all -m file -a 'path=/test2/ state=directory'

在这里插入图片描述
在这里插入图片描述

3.2.4 重新执行创建文件命令

在这里插入图片描述
在这里插入图片描述

3.2.4 重新执行创建文件命令

在这里插入图片描述
在这里插入图片描述

3.2.5 验证

在这里插入图片描述
远程机器上有了这个文件,文件中也是我们的内容。

3.3 将主机文件复制到远程机器上某个目录下,如果远程主机中已经存在该文件,并且文件内容与 ansible 主机中的源文件的内容不一致,则不执行拷贝操作,远程主机中的文件内容也不会被改变

3.3.1 修改主控机文件

在这里插入图片描述

3.3.2 执行命令

ansible all -m copy -a 'src="/test/a.txt" dest="/test/" force=no'

在这里插入图片描述

3.3.3 结果验证

通过上面的结果,我们看到,文件没有改变成功。我们现在去远程机器上看一下情况。

在这里插入图片描述
文件内容确实没有改变。

3.4 将主机文件复制到远程机器上某个目录下,如果远程主机中已经存在该文件,并且文件内容与 ansible 主机中的源文件的内容不一致,则执行拷贝操作,远程主机中的文件内容也会被改变,并且在远程文件夹中会生成一个备份文件

3.4.1 执行命令

ansible all -m copy -a 'src="/test/a.txt" dest="/test/" backup=yes'

在这里插入图片描述
在这里插入图片描述

3.4.2 结果验证

从上面的返回结果,我们看到文件已经改变了。现在去远程机器上看一下
在这里插入图片描述
文件被改变,并且生成了备份文件,验证符合预期。

3.5 copy文件时加入权限

3.5.1 执行命令

ansible all  -m copy -a "src=/test/a.txt dest=/test/ mode=0421"

在这里插入图片描述
在这里插入图片描述

3.5.2 结果验证

执行前:
在这里插入图片描述
执行后:
在这里插入图片描述
我们看到发生了变化,符合预期。

3.5.3 linux权限小知识

可能有些同学对这个数字权限不是很清楚,这里简单说一下。
在Linu系统下用命令ll或者ls -la的时候会看到前面-rw-rw-r–一串字符,
r:read 代表读取权限 用数字4表示
w:write 代表写入权限 用数字2表示
x:excute 代表执行权限 用数字1表示

读取、写入、运行三项权限可以用数字表示,就是r=4,w=2,x=1。所以,-r—w—x用数字表示成421。
常用的一些Linux文件权限如下:
444 r–r–r–
600 rw-------
644 rw-r–r–
666 rw-rw-rw-
700 rwx------
744 rwxr–r–
755 rwxr-xr-x
777 rwxrwxrwx
以755为例:

1-3位7等于4+2+1,rwx,所有者具有读取、写入、执行权限;
4-6位5等于4+1+0,r-x,同组用户具有读取、执行权限但没有写入权限;
7-9位5,同上,也是r-x,其他用户具有读取、执行权限但没有写入权限。

4.小结

对于copy模块,我就写一下我自己平时常用的,仅供参考。

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

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

相关文章

功率信号源简介及其应用有哪些内容

功率信号源是一种能够提供稳定输出功率信号的设备或电路。它在许多领域中都有广泛的应用。以下是一些关于功率信号源的内容: 功率信号源简介:功率信号源是一种电子设备或电路,它能够提供稳定的输出功率信号。功率信号源通常由放大器、稳压器、…

Unity随笔1 - 安卓打包JDK not found

今天遇到一个很奇怪的事情,之前可以正常打安卓包,但是突然报错如下: 提示很明显,找不到JDK了。可是我在下载Unity的时候明明安装了所有需要的组件,为什么今天突然不行。 看了眼Unity hub里面,没问题。 那就…

物联网实训室虚拟仿真软件建设方案

一、概述 物联网实训室虚拟仿真软件旨在紧密围绕立德树人的根本任务,充分依托先进的数字技术,并对接物联网行业的发展趋势和人才需求。通过对比真实企业工作环境,融合创新创业教育基因,秉承虚拟仿真技术与教育教学深度融合的理念&…

vivado实现分析与收敛技巧1

智能设计运行 智能设计运行 (IDR) 是一种特殊类型的实现运行 , 它使用复杂流程来尝试达成时序收敛。由于 IDR 可能较为激进 , 因此预计编译时间可达标准运行的约 3.5 倍。 IDR 围绕复杂的时序收敛功能特性展示了一个简单的用户界面 , 对…

Sentinel的一些知识二

11231041 下一个是 熔断规则是异常数 和异常比例一样 只是换成了异常个数 1秒内的异常数有3个,就熔断2秒 下一步 进行压力测试 11231343 热点规则 没懂这个热点规则存在的意义 某个用户访问过于频繁,对其进行限制,给其他用户访问的机…

nexus制品库的介绍及详细部署使用

一、nexus 介绍 Nexus 是一个强大的仓库管理工具,用于管理和分发 Maven、npm、Docker 等软件包。它提供了一个集中的存储库,用于存储和管理软件包,并提供了版本控制、访问控制、构建和部署等功能。 Nexus 可以帮助开发团队提高软件包管理的效…

Ps:用好钢笔工具

使用钢笔工具时,应随时注意鼠标指针的形状。 ◆ ◆ ◆ 基本操作方法 1、绘制闭合路径 路径绘制结束时回到起点即可创建闭合路径。 2、绘制开放路径 想结束绘制时,按住 Ctrl 键点击画布空白处,或者,直接按 Esc 键,即可…

hadoop完全分布式搭建

文章目录 集群部署规划服务器准备Mobaxterm 远程登录实验前准备安装软件工具关闭防火墙 安装 JDK 和 Hadoop创建软件包目录解压软件包配置环境变量 集群搭建先创建 HDFS 工作目录和 LOG 目录配置集群配置环境配置 HDFS 主节点信息、持久化和数据文件的主目录配置 HDFS 默认的数…

万户ezOFFICE wpsservlet任意文件上传漏洞复现

0x01 产品简介 万户OA ezoffice是万户网络协同办公产品多年来一直将主要精力致力于中高端市场的一款OA协同办公软件产品,统一的基础管理平台,实现用户数据统一管理、权限统一分配、身份统一认证。统一规划门户网站群和协同办公平台,将外网信息…

深信服技术认证“SCSA-S”划重点:SQL注入漏洞

为帮助大家更加系统化地学习网络安全知识,以及更高效地通过深信服安全服务认证工程师考核,深信服特别推出“SCSA-S认证备考秘笈”共十期内容,“考试重点”内容框架,帮助大家快速get重点知识~ 划重点来啦 深信服安全服务认证工程师…

CANDENCE: PCB 中 元器件对齐

PCB 中 元器件对齐 以下面的几个电阻为例: step1:选择以下工具 step2:选中要对齐的器件,右键 Align Components 选择你想要的对齐方式即可

python进阶技巧

1.闭包 通过函数嵌套,可以让内部函数依赖外部变量,可以避免全局变量的污染问题 闭包注意事项: 总结: 2.装饰器 2.1装饰器的一般写法 2.2 装饰器的语法糖写法 def outer(func):def inner():print(睡了)func()print(起床)retur…