4232342 发表于 2016-5-4 09:27:09

ansible之synchronize模块数据同步

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

用法





选项说明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 包,否则无法使用这个模块

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# ansible web -m synchronize -a 'src=time.sh dest=/tmp/'
web | FAILED! => {
    "changed": false,
    "failed": true,
    "msg": "Failed to find required executable rsync"
}
安装rsync
# 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!







示例,吧本机的epel-release-latest-6.noarch.rpm拷贝到web主机上。

吧tom目录推送到web主机上的/tmp目录下




拉取web主机上的zabbix目录到本地的/opt目录下

拉取模式mode=pull
验证下是否拉取到本地的/opt目录下
数据同步文件就先到这了。。。。


页: [1]
查看完整版本: ansible之synchronize模块数据同步