dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2160
  • 铜币13127枚
  • 威望5808点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
阅读:186回复:0

Ansible synchronize 模块

楼主#
更多 发布于:2018-07-03 10:21
目标
1. 了解 ansible synchronize 模块的功能。
2. 使用 synchronize 模块,同步远程服务器数据到本地。

要点
1. synchronize 模块要求,主控与被控双方系统必须安装 rsync 系统包,否则无法使用此模块。
2. 默认的同步的方式是 push推送模式,如果使用 pull拉取模式,需要显示指定参数 mode=pull

举个例子
1. 同步远程服务器的数据,到本地 /tmp 目录。
ansible node1 -m synchronize -a "mode=pull src=/var/lib/rancher/volumes/rancher-nfs dest=/tmp/"
node1 | SUCCESS => {
    "changed": true,
    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsh=/usr/bin/ssh -S none -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null --out-format=<<CHANGED>>%i %n%L node1:/var/lib/rancher/volumes/rancher-nfs /tmp/",
    "msg": ".d..t...... rancher-nfs/scfs_web-data_4a5b7/\n>f+++++++++ rancher-nfs/scfs_web-data_4a5b7/abc\n",
    "rc": 0,
    "stdout_lines": [
        ".d..t...... rancher-nfs/scfs_web-data_4a5b7/",
        ">f+++++++++ rancher-nfs/scfs_web-data_4a5b7/abc"
    ]
}

2. 命令中的参数
-m 使用 synchronize 模块。
-a 使用 这个模块的参数。
mode=pull 拉取模式,即同步远程数据到本地,默认为 push模式,是推送本地数据到远程服务器。
src=xxx 数据源地址。
dest=xxx 目标地址。

playbook 使用 synchronize 模块
# 使用 synchronize 模块,同步(备份) rancher 数据。
1. 配置文件
cat sync.yml
---
- hosts: node1
  tasks:
    - name: rancher-nfs
      synchronize:
        mode: pull
        src: "/var/lib/rancher/volumes/rancher-nfs"
        dest: "/data/backup/node1/"

    - name: node1-aof
      synchronize:
        mode: pull
        src: "/var/lib/docker/volumes/smln_rds-data_569fb"
        dest: "/data/backup/node1/"

- hosts: node3
  tasks:
    - name: node3-aof
      synchronize:
        mode: pull
        src: "/var/lib/docker/volumes/scfs_redis-data_9ef00"
        dest: "/data/backup/node3/"

    - name: node3-sign
      synchronize:
        mode: pull
        src: "/var/lib/docker/volumes/smln_sign-data_19978"
        dest: "/data/backup/node3/"

2. 执行任务
ansible-playbook sync.yml

3. 验证
tree -d -L 1 /data/backup/
/data/backup/
├── node1
└── node3

2 directories

参考
https://docs.ansible.com/ansible/latest/modules/synchronize_module.html?highlight=synchronize
#
游客

返回顶部