首页 > 其他分享 >ansible 常用模块 copy

ansible 常用模块 copy

时间:2023-04-03 15:33:06浏览次数:34  
标签:src Ansible foo conf dest ansible 模块 copy

模块说明

  • copy模块将文件从本地或远程机器复制到远程机器上的某个位置。

参数说明

Parameter

Comments

attributes

 

aliases: attr

string

added in Ansible 2.3

生成的文件系统对象应具有的属性。

要获得支持的标志,请查看目标系统上chattr的手册页。

该字符串应包含与lsattr显示的顺序相同的属性。

=运算符被假定为默认值,否则+or-运算符需要包含在字符串中。

backup

 

boolean

added in Ansible 0.7

创建一个包含时间戳信息的备份文件,这样如果您以某种方式错误地破坏了原始文件,您就可以找回原始文件。

选择:

  • false ← (default)

  • true

checksum

 

string

added in Ansible 2.5

正在传输的文件的 SHA1 校验和。

用于验证文件的复制是否成功。

如果未提供,ansible 将使用 src 文件的本地计算校验和。

content

string

added in Ansible 1.1

当用于代替 src时,将文件的内容直接设置为指定值。

dest仅在文件时有效。如果文件不存在则创建文件。

decrypt

 

boolean

added in Ansible 2.4

此选项控制使用保管库对源文件的自动解密。

选择:

  • false

  • true ← (default)

dest

 

path / required

应将文件复制到的远程绝对路径。

如果src是一个目录,那么这个目录也必须是一个。

如果dest是不存在的路径,并且dest以“/”结尾,或者src是目录,则会创建dest。

如果dest是相对路径,则起始目录由远程主机确定。

如果src和dest是文件,则不会创建dest的父目录,如果该父目录不存在,则任务将失败。

directory_mode

 

any

added in Ansible 1.5

进行递归复制时,请设置目录的模式。

如果没有设置,我们将使用系统默认值。

该模式仅在新创建的目录上设置,不会影响那些已经存在的目录。

follow

 

boolean

added in Ansible 1.8

此标志表示目标中的文件系统链接(如果存在)应该被遵循。

选择:

  • false ← (default)

  • true

force

 

boolean

added in Ansible 1.1

影响是否必须始终替换远程文件。

如果为true,则当内容与源文件不同时,将替换远程文件。

如果为false,则只有在目标不存在的情况下才会传输文件。

选择:

  • false

  • true ← (default)

group

string

应该拥有文件系统对象的组的名称,将被馈送到chown。

如果未指定,它将使用当前用户的当前组,除非您是root用户,在这种情况下,它可以保留以前的所有权。

local_follow

 

boolean

added in Ansible 2.4

此标志指示源树中的文件系统链接(如果存在)应该被遵循。

选择:

  • false

  • true ← (default)

mode

 

any

目标文件或目录的权限。

对于那些习惯于/usr/bin/cmod的人,请记住,模式实际上是八进制数。您必须添加一个前导零,以便Ansible的YAML解析器知道它是一个八进制数(如0644或01777),或者引用它(如“644”或“1777”),以便Anible接收一个字符串,并可以自己从字符串转换为数字。在不遵循这些规则的情况下给Ansible一个数字,最终会得到一个十进制数字,这将产生意外的结果。

从Ansible 1.8开始,该模式可以被指定为符号模式(例如,u+rwx或u=rw,g=r,o=r)。

从Ansible 2.3开始,模式也可以是特殊的字符串保留。

preserve意味着该文件将被授予与源文件相同的权限。

执行递归复制时,请参见directory_mode。

如果未指定模式并且目标文件不存在,则在为新创建的文件设置模式时,将使用系统上的默认umask。

如果未指定模式,并且目标文件确实存在,则将使用现有文件的模式。

指定模式是确保使用正确权限创建文件的最佳方式。

owner

 

string

应该拥有文件系统对象的用户的名称,正如将要提供给chown的那样。

如果未指定,它将使用当前用户,除非您是root用户,在这种情况下,它可以保留以前的所有权。

指定数字用户名将被假定为用户ID,而不是用户名。避免使用数字用户名以避免这种混淆。

remote_src

 

boolean

added in Ansible 2.0

影响src是否需要传输或已经远程存在。

如果为false,它将在控制器节点上搜索src。

如果为true,它将在托管(远程)节点上搜索src。

remote_src从2.8版本开始支持递归复制。

remote_src仅适用于2.6版本的mode=preserve。

当remote_src=yes时,文件的自动解密不起作用。

选择:

  • false ← (default)

  • true

selevel

 

string

ELinux文件系统对象上下文的级别部分。

这是MLS/MCS属性,有时也称为范围。

当设置为_default时,它将使用策略的级别部分(如果可用)。

serole

 

string

SELinux文件系统对象上下文的角色部分。

当设置为_default时,它将使用策略的角色部分(如果可用)。

setype

 

string

SELinux文件系统对象上下文的类型部分。

当设置为_default时,它将使用策略的类型部分(如果可用)。

seuser

 

string

SELinux文件系统对象上下文的用户部分。

默认情况下,它会在适用的情况下使用系统策略。

当设置为_default时,它将使用策略的用户部分(如果可用)。

src

 

path

要复制到远程服务器的文件的本地路径。

这可以是绝对的,也可以是相对的。

若路径是一个目录,它将被递归复制。在这种情况下,如果路径以“/”结尾,则只有该目录的内部内容才会被复制到目标。否则,如果它不以“/”结尾,则会复制包含所有内容的目录本身。这种行为类似于rsync命令行工具。

unsafe_writes

 

boolean

added in Ansible 2.2

影响何时使用原子操作来防止数据损坏或从目标文件系统对象进行不一致的读取。

默认情况下,该模块使用原子操作来防止数据损坏或从目标文件系统对象进行不一致的读取,但有时会以防止这种情况发生的方式配置或破坏系统。一个例子是安装在docker上的文件系统对象,它不能从容器内部进行原子更新,只能以不安全的方式写入。

此选项允许Ansible在原子操作失败时返回到更新文件系统对象的不安全方法(但是,它不会强制Ansible执行不安全的写入)。

重要!不安全的写入会受到竞争条件的影响,并可能导致数据损坏。

选择:

  • false ← (default)

  • true

validate

 

string

将更新后的文件复制到最终目标之前要运行的验证命令。

临时文件路径用于验证,通过“%s”传入,该路径必须存在,如下例所示。

此外,该命令是安全传递的,因此扩展和管道等shell功能将无法工作。

示例

- name: Copy file with owner and permissions
  ansible.builtin.copy:
    src: /srv/myfiles/foo.conf
    dest: /etc/foo.conf
    owner: foo
    group: foo
    mode: '0644'

- name: Copy file with owner and permission, using symbolic representation
  ansible.builtin.copy:
    src: /srv/myfiles/foo.conf
    dest: /etc/foo.conf
    owner: foo
    group: foo
    mode: u=rw,g=r,o=r

- name: Another symbolic mode example, adding some permissions and removing others
  ansible.builtin.copy:
    src: /srv/myfiles/foo.conf
    dest: /etc/foo.conf
    owner: foo
    group: foo
    mode: 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 version
  ansible.builtin.copy:
    src: /mine/ntp.conf
    dest: /etc/ntp.conf
    owner: root
    group: root
    mode: '0644'
    backup: yes

- name: Copy a new "sudoers" file into place, after passing validation with visudo
  ansible.builtin.copy:
    src: /mine/sudoers
    dest: /etc/sudoers
    validate: /usr/sbin/visudo -csf %s

- name: Copy a "sudoers" file on the remote machine for editing
  ansible.builtin.copy:
    src: /etc/sudoers
    dest: /etc/sudoers.edit
    remote_src: yes
    validate: /usr/sbin/visudo -csf %s

- name: Copy using inline content
  ansible.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.conf
  ansible.builtin.copy:
    src: /etc/foo.conf
    dest: /path/to/link  # link to /path/to/file
    follow: yes

- name: If follow=no, /path/to/link will become a file and be overwritten by contents of foo.conf
  ansible.builtin.copy:
    src: /etc/foo.conf
    dest: /path/to/link  # link to /path/to/file
    follow: no

参考文档

https://docs.ansible.com/ansible/latest/collections/ansible/builtin/copy_module.html#ansible-collections-ansible-builtin-copy-module

标签:src,Ansible,foo,conf,dest,ansible,模块,copy
From: https://www.cnblogs.com/wangguishe/p/17283196.html

相关文章

  • 【论文速递】MMM2020 - 电子科技大学提出一种新颖的局部变换模块提升小样本分割泛化性
    【论文速递】MMM2020-电子科技大学提出一种新颖的局部变换模块提升小样本分割泛化性能【论文原文】:ANewLocalTransformationModuleforFew-shotSegmentation【作者信息】:YuweiYang,FanmanMeng,HongliangLi,QingboWu,XiaolongXuandShuaiChen获取地址:https://arxi......
  • 默认python3版本,python2没有pip2模块,解决方案
    python2.7没有pip模块,需要安装pip2/usr/bin/python2:Nomodulenamedpip 直接通过pip安装出错,python3.6已经导入了 解决方案:下载pip安装文件: curlhttps://bootstrap.pypa.io/pip/2.7/get-pip.py -oget-pip.py用python2安装: python2get-pip.py   ......
  • Python导入的OpenCV模块的cv2不会提示,如何解决?
     1.找到opencv安装路径:python目录\Lib\site-packages\cv2  2.复制cv2.pyd一份到它的上级目录在这个目录下,将文件cv2.pyd,复制一份到它的上级目录:*\Lib\site-packages  3.重新启动pycharm4.测试验证,OK!              参考资料:h......
  • nginx 热加载stream模块
    报错:nginx:[emerg]unknowndirective"stream"in/usr/local/nginx/conf.d/ssh.conf判断模块是否存在 进入二进制部署包解压后目录 添加模块,与之前加载的模块一致,并新添加 --with-stream模块./configure--prefix=/usr/local/nginx--user=nginx--group=nginx......
  • BOSHIDA 电源模块使用时注意事项 ACDC DCDC
    电源模块需轻拿轻放,避免撞击或跌落造成产品损坏;禁止拆开产品外壳,禁止触摸电源内部任何器件,以避免产品遭受静电、器件应力等易损坏的情况;电源模块通电后,不要靠近模块或触摸外壳,避免模块异常工作时可能对身体造成伤害;在产品通电之前,请确认并严格按照产品技术手册,正确连接产品的输......
  • java使用模块后,用maven打包时,需要保护的maven插件
    <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.0</version><configuration><release>11</release><......
  • Python基础之pyautogui模块(详细总结鼠标键盘操作)
    来源:https://zhuanlan.zhihu.com/p/471275277仅用于个人学习(以防自己忘记)1.GUI控制功能控制鼠标键盘使用的模块为:pyautogui,这个模块操作起鼠标键盘的时候,非常的迅速,而且如果该模块控制了鼠标后,程序比较难关闭,这时我们有两个方法专门针对以上的情况:1.1自动防故障功能 ......
  • scapy模块基础使用
    一、安装scapy:完整安装,会安装ipython和scapy等模块,命令如下:pipinstall--prescapy[complete] python导入scapy使用下面语句:fromscapy.allimport* 一些工具、方法和用途:summary() 显示一个关于每个数据包的摘要列表nsummary() 同上,但规定了数据包数量conversations()......
  • 衡量模块独立的定性标准是什么?
    衡量模块独立的定性标准可以从以下几个方面考虑:高内聚:模块内部的各个组件或功能之间的耦合度尽可能低,每个模块只负责一个特定的功能或者一组相关的功能,模块内部的代码都是围绕这个特定功能或者功能组织的。模块内部的代码实现应该尽可能简单,避免过于复杂的逻辑或者算法。低......
  • 什么是模块化?为什么要模块化
    什么是模块化为什么要模块化模块化是指将一个大的系统或程序分解成独立的模块,每个模块都有自己的功能和接口。在编写代码时,开发人员可以将代码分成多个模块,每个模块只负责特定的任务或功能。这样做的好处是可以提高代码的可重用性、可维护性和可扩展性。下面是一些模块化的好......