一,copy模块的作用:

复制文件到受控的远程主机

说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

对应的源码可以访问这里获取: https://github.com/liuhongdi/

说明:作者:刘宏缔 邮箱: 371125307@qq.com

二,copy模块的例子:

1,复制文件

#src : 被复制到远程主机的本地文件

#dest : 源文件复制到的远程主机的绝对路径

[liuhongdi@centos8 ~]$ ansible yujian -m copy -a 'src=/home/liuhongdi/china_ip.txt dest=/home/webop/china_ip2.txt'

2,受控机目标文件所在目录不存在时会报错:

[liuhongdi@centos8 ~]$ ansible yujian -m copy -a 'src=/home/liuhongdi/china_ip.txt dest=/home/webop1/china_ip2.txt'
121.122.123.47 | FAILED! => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/libexec/platform-python"
},
"changed": false,
"checksum": "9194708f7a019d4fecf3af3284734136cc0b3383",
"msg": "Destination directory /home/webop1 does not exist"
}

3,目标文件已存在?

如果与源文件内容相同,则不会改变,

如果与源文件内容不同,则会覆盖目标文件

可以用backup指定是否覆盖前做备份

例子:

#backup=yes : 指定在覆盖目标文件前要做备份

[liuhongdi@centos8 ~]$ ansible yujian -m copy -a 'src=/home/liuhongdi/china_ip.txt dest=/home/webop/china_ip2.txt backup=yes'

备份文件的格式:带有时间标志:登录到受控机查看

[webop@blog ~]$ ls
china_ip2.txt china_ip2.txt.814.2020-04-19@11:09:53~

4,指定目标文件的权限

例:

#owner: 设置文件/目录的所属用户

#group: 设置文件/目录的所属组

#mode:  设置文件权限,使用八进制数字(如0777,0644)

[liuhongdi@centos8 ~]$ ansible yujian -m copy -a 'src=/home/liuhongdi/china_ip.txt dest=/home/webop/china_ip3.txt owner=webop group=webop mode=0777'

登录到受控机查看效果:

[webop@blog ~]$ ll
-rwxrwxrwx 1 webop webop 131707 Apr 19 11:32 china_ip3.txt

5,复制一个目录:

# 源目录带/和不带/的区别:

#带/表示只复制目录下的文件

#不带/表示复制目录本身及目录下的文件

[liuhongdi@centos8 ~]$ ls work
multi-user.target.service.txt userid.csv
[liuhongdi@centos8 ~]$ ansible yujian -m copy -a 'src=/home/liuhongdi/work/ dest=/home/webop/'
121.122.123.47 | CHANGED => {
"changed": true,
"dest": "/home/webop/",
"src": "/home/liuhongdi/work/"
}
[liuhongdi@centos8 ~]$ ansible yujian -m copy -a 'src=/home/liuhongdi/work dest=/home/webop/work2'
121.122.123.47 | CHANGED => {
"changed": true,
"dest": "/home/webop/work2/",
"src": "/home/liuhongdi/work"
}

6,指定目标文件内容:

#content:用content代替src参数,会把文档的内容输出到指定的目标文件

[liuhongdi@centos8 ~]$ ansible yujian -m copy -a 'content="abc" dest=/home/webop/china_ip4.txt'

登录到受控机查看效果

[webop@blog ~]$ more china_ip4.txt
abc

7,当目标文件存在,且内容不一致时,不替换目标文件

#force=no,则只有在目标不存在的情况下才会传输文件

[liuhongdi@centos8 ~]$ ansible yujian -m copy -a 'src=/home/liuhongdi/china_ip.txt dest=/home/webop/china_ip3.txt force=no'

三,查看ansible版本

[root@centos8 liuhongdi]# ansible --version
ansible 2.9.5

四,查看centos版本

[root@centos8 conf]# cat /etc/redhat-release
CentOS Linux release 8.1.1911 (Core)

ansible的copy模块应用(ansible 2.9.5)的更多相关文章

  1. Ansible的copy模块批量下发文件

    copy模块的参数,ansible 主机组 -m copy -a '' src: 指定源文件或目录 dest: 指定目标服务器的文件或目录 backup: 是否要备份 owner: 拷贝到目标服务器后 ...

  2. Ansible Playbooks常用模块

    File模块 在目标主机创建文件或目录,并赋予其系统权限 - name: create a file file:'path=/oot/foo.txt state=touch mode=0755 own ...

  3. ansible copy 模块的使用

    copy copy 模块是将 ansible 管理主机上的文件拷贝上远程主机中,与 fetch 相反,如果目标路径不存在,则自动创建,如果 src 的目录带“/” 则复制该目录下的所有东西,如果 sr ...

  4. ansible copy 模块详解

    ansible 模块 copy one.概述 copy 模块的作用就是拷贝文件,它与之前介绍过的 fetch 模块类似,不过,fetch 模块是从远程主机中拉取文件到 ansible 管理主机,而 c ...

  5. ansible小结常用模块

    根据官方的分类,将模块按功能分类为:云模块.命令模块.数据库模块.文件模块.资产模块.消息模块.监控模块.网络模块.通知模块.包管理模块.源码控制模块.系统模块.单元模块.web设施模块.window ...

  6. ansible中常用模块详解

    ansible中常用的模块详解: file模块 ansible内置的可以查看模块用法的命令如下: [root@docker5 ~]# ansible-doc -s file - name: Sets ...

  7. ansible经常使用模块使用方法

    ansible 默认提供了非常多模块来供我们使用. 在 Linux 中,我们能够通过 ansible-doc -l 命令查看到当前 ansible 都支持哪些模块,通过 ansible-doc  -s ...

  8. 【Ansible】 各种模块

    [Ansible 模块] 就如python库一样,ansible的模块也分成了基本模块和第三方拓展模块(自定义的模块).这些模块其实才是作为真实的逻辑载体,在帮助ansible进行作业. ansibl ...

  9. ansible api常用模块与参数

    ###ansibleAPI 常用模块 用于读取yaml,json格式的文件 from ansible.parsing.dataloader import DataLoader #用于管理变量的类,包括 ...

随机推荐

  1. db2错误代码可能的原因

    一. SQL5005C运行cmd未用管理员权限打开 SQLCODE-303  数据类型不兼容 SQLCODE-305   查出的数据有NULL未处理直接写入接收变量 二.应该不会有人直接写sql用这个 ...

  2. 乔悟空-CTF-i春秋-Web-Backdoor

    2020.09.05 每次遇到不会的,想两分钟就放弃了,直接奔wp,一看wp发现,wc,就这?我怎么没想到--心里想着下道题一定自己想,不看wp,然后周而复始

  3. 基于docker部署jenkins

    1. 拉镜像 和其他的部署的镜像的方式一样,通常是直接使用docker search jenkins 然后直接docker pull jenkins 此时,在安装插件的时候发现插件都安装失败,提示je ...

  4. Group Convolution组卷积

    思路按照常规卷积到组卷积来. 常规卷积: 如果输入feature map尺寸为C∗H∗W C*H*WC∗H∗W,卷积核有N NN个,输出feature map与卷积核的数量相同也是N NN,每个卷积核 ...

  5. pwnable.kr-coin1-witeup

    是一个小游戏,会给100堆小硬币,在每堆硬币中找到假币(重量为9,其他重量为10),其中每堆硬币都设置了金币数和固定的尝试次数. 思路是:在每堆硬币中,在有限的尝试次数中对硬币通过二分法计算硬币重量不 ...

  6. Vue mustache语法

    mustache语法 Vue中的插值语法mustache本意为胡子,可能是{{}}长得像胡子吧. 下面是对mustache插值语法一个最简单的使用. 被管理元素会通过data属性拿到其中的数据对象. ...

  7. Java反应式框架Reactor中的Mono和Flux

    1. 前言 最近写关于响应式编程的东西有点多,很多同学反映对Flux和Mono这两个Reactor中的概念有点懵逼.但是目前Java响应式编程中我们对这两个对象的接触又最多,诸如Spring WebF ...

  8. 如何写出优美的 JavaScript 代码?

    一.变量相关 (1)变量数量的定义 NO:滥用变量 let kpi = 4; // 定义好了之后再也没用过 function example() { var a = 1; var b = 2; var ...

  9. Apache HTTP Server 2.2.34安装

    Windows 下载 安装方式有自己编译源码和下载别人编译好的,这里选择从第三方下载,官网地址http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/bin ...

  10. PADS Layout VX.2.3 灌铜之后只显示灌铜外框,没有显示整块铜皮

    操作系统:Windows 10 x64 工具1:PADS Layout VX.2.3 使用Copper Pour功能,画了一个灌铜区,并分配了网络. Tools > Pour Manager,打 ...