ansible之synchronize模块数据同步

时间:2016-05-03 10:55:59   收藏:0   阅读:14845

sync数据同步文件等,官方栗子http://docs.ansible.com/ansible/synchronize_module.html


用法

[root@ansible ~]# ansible-doc -s synchronize
less 436
Copyright (C) 1984-2009 Mark Nudelman
less comes with NO WARRANTY, to the extent permitted by law.
For information about the terms of redistribution,
see the file named README in the less distribution.
Homepage: http://www.greenwoodsoftware.com/less
- name: Uses rsync to make synchronizing file paths in your playbooks quick and easy.
  action: synchronize
      archive                # Mirrors the rsync archive flag, enables recursive, links, perms, times, owner, group flags and
                               -D.
      checksum               # Skip based on checksum, rather than mod-time & size; Note that that "archive" option is still
                               enabled by default - the "checksum" option will not disable it.
      compress               # Compress file data during the transfer. In most cases, leave this enabled unless it causes
                               problems.
      copy_links             # Copy symlinks as the item that they point to (the referent) is copied, rather than the symlink.
      delete                 # Delete files that don‘t exist (after transfer, not before) in the `src‘ path. This option
                               requires `recursive=yes‘.
      dest=                  # Path on the destination host that will be synchronized from the source; The path can be absolute
                               or relative.
      dest_port              # Port number for ssh on the destination host. Prior to ansible 2.0, the ansible_ssh_port inventory
                               var took precedence over this value.
      dirs                   # Transfer directories without recursing
      existing_only          # Skip creating new files on receiver.
      group                  # Preserve group
      links                  # Copy symlinks as symlinks.
      mode                   # Specify the direction of the synchronization. In push mode the localhost or delegate is the
                               source; In pull mode the remote host in context is the source.
      owner                  # Preserve owner (super user only)
      partial                # Tells rsync to keep the partial file which should make a subsequent transfer of the rest of the
                               file much faster.
      perms                  # Preserve permissions.
      recursive              # Recurse into directories.
      rsync_opts             # Specify additional rsync options by passing in an array.
      rsync_path             # Specify the rsync command to run on the remote host. See `--rsync-path‘ on the rsync man page.
      rsync_timeout          # Specify a --timeout for the rsync command in seconds.
      set_remote_user        # put user@ for the remote paths. If you have a custom ssh config to define the remote user for a
                               host that does not match the inventory user, you should set this
                               parameter to "no".
      src=\‘#\‘" /pre>

选项说明

archive                # 是否采用归档模式同步,即以源文件相同属性同步到目标地址

checksum               # 是否效验

compress               # 开启压缩,默认为开启

copy_links             # 同步的时候是否复制连接

delete                 # 删除源中没有而目标存在的文件(即以推送方为主)

dest=                  # 目标地址

dest_port              # 目标接受的端口,ansible配置文件中的 ansible_ssh_port 变量优先级高于该 dest_port 变量

dirs                   # 以非递归的方式传输目录

existing_only          # Skip creating new files on receiver.

group                  # Preserve group

links                  # Copy symlinks as symlinks.

mode                   # 模式,rsync 同步的方式 PUSH\PULL,默认都是推送push。如果你在使用拉取pull功能的时候,可以参考如下来实现mode=pull   更改推送模式为拉取模式

recursive              # 是否递归 yes/no

rsync_opts             # 使用rsync 的参数

rsync_path             # 服务的路径,指定 rsync 命令来在远程服务器上运行。这个参考rsync命令的--rsync-path参数,--rsync-path=PATH     # 指定远程服务器上的rsync命令所在路径信息

rsync_timeout          # 指定 rsync 操作的 IP 超时时间,和rsync命令的 --timeout 参数效果一样.

set_remote_user        # put user@ for the remote paths. If you have a custom ssh config to define the remote user for

src=\‘#\‘"                 # 源,同步的数据源

times                  # 

--exclude=.Git  忽略同步.git结尾的文件

由于模块默认启用了archive参数,该参数默认开启了recursive, links, perms, times, owner,group和-D参数。如果你将该参数设置为no,那么你将停止很多参数,比如会导致如下目的递归失败,导致无法拉取

使用rsync 模块,系统必须安装rsync 包,否则无法使用这个模块

[root@ansible ~]# ansible web -m synchronize -a ‘src=time.sh dest=/tmp/‘

web | FAILED! => {

    "changed": false, 

    "failed": true, 

    "msg": "Failed to find required executable rsync"

}

安装rsync

[root@ansible ~]# ansible web -a ‘yum install rsync -y‘

web | SUCCESS | rc=0 >>

Loaded plugins: fastestmirror

Determining fastest mirrors

 * base: mirrors.opencas.cn

 * extras: mirrors.opencas.cn

 * updates: mirrors.opencas.cn

Setting up Install Process

Resolving Dependencies

--> Running transaction check

---> Package rsync.x86_64 0:3.0.6-12.el6 will be installed

--> Finished Dependency Resolution


Dependencies Resolved


================================================================================

 Package         Arch             Version                  Repository      Size

================================================================================

Installing:

 rsync           x86_64           3.0.6-12.el6             base           335 k


Transaction Summary

================================================================================

Install       1 Package(s)


Total download size: 335 k

Installed size: 682 k

Downloading Packages:

Running rpm_check_debug

Running Transaction Test

Transaction Test Succeeded

Running Transaction

  Installing : rsync-3.0.6-12.el6.x86_64                                    1/1 

  Verifying  : rsync-3.0.6-12.el6.x86_64                                    1/1 


Installed:

  rsync.x86_64 0:3.0.6-12.el6                                                   


Complete!



未完待续

示例



本文出自 “村里的男孩” 博客,请务必保留此出处http://noodle.blog.51cto.com/2925423/1769574

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!