ansible playbook 恢复备份文件

有的时候我们用copy模块备份的文件想要回滚

ansible -i pbs_hosts all -m copy -a "src=file/hosts dest=/etc/ backup=yes"

那我们就可以用下面这种方式进行回滚

cat restore.hosts.yml

--- #固定格式
#- hosts: "{{ ansiblegroupnames }}" #需要操作的组或者服务器,可以使用-e传入
- hosts: "saas_hosts"
  gather_facts: false
  
  vars:
    file_name: /etc/hosts #需要恢复的远程文件位置,可以使用-e传入,当前位置为测试用文件
    ansiblegroupnames: 127.0.0.1
  
  tasks:
    - name: "查找指定文件:{{ file_name }}"
      find:
        recurse: no
        paths:
          - "{{ file_name | dirname }}"
          #- "/etc/"
        patterns:
          - '{{ file_name | basename }}\..*~'  #这里必须使用单引号
        use_regex: true
      register: backup_file #注册成变量
   # - name:
   #   debug: 
   #     msg: "{{ backup_file }}"
  
    - name: "查找最后一个备份文件按mtime时间排序"
      set_fact:
        latest_backup: "{{ (backup_file.files | sort(attribute='mtime') | last).path }}"
  
    - name: "还原备份文件:{{ file_name }}"
      copy:
        src: "{{ latest_backup }}"
        remote_src: true
        dest: "{{ file_name }}"

cat saas_hosts_all

[saas_hosts]
192.168.1.1

ansible-playbook -i saas_hosts_all  restore.hosts.yml -C

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只晨兴夜不得寐的运维人

你的打赏,是我今晚餐桌上的鸡腿

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值