【问题标题】:Backuping files before change更改前备份文件
【发布时间】:2021-03-25 17:55:58
【问题描述】:

由于 Ansible 备份功能因缺乏配置而存在一些问题。我正在寻找一些解决方案。

通常在脚本中我会有备份功能,您可以使用文件名调用它,它会将文件复制到更改名称的单独位置。例如 bkp_location = /tmp/backup//

假设我要备份 /etc/systemconf/network 我将它传递给函数,它会将其复制到 etc_systemconf_network 下的备份目录(它将 / 替换为 _ 以便我们知道它来自哪里)

对于这样的事情,Ansible 中的最佳解决方案是什么?我可以在每个角色中称呼它等等......

也许根目录中有一个 backup.yml 并让它包含并将变量(文件名)传递给它,这行得通吗?

编辑:

我说的备份功能:

对于某些模块有一个选项 backup: yes(据我所知,这是它们之间的共享功能),但不提供对其功能的任何修改。

比如备份文件的名称是什么,它的位置...?所以我必须在外部处理它......介于两者之间的中间步骤......但似乎包含 backup.yml 并将变量传递给它会解决问题。

【问题讨论】:

  • ansible backup feature => 你能描述一下你指的是哪个功能吗?我现在正在考虑的是在使用copytemplate 模块时保存备份文件的可能性。但是ansible不是一个备份解决方案,也没有一个整体的“备份功能”。你到底想做什么?
  • 嗨,@Zeitounator .. 是的,就是这样,有一个选项备份:对于某些模块是的(据我所知,这是它们之间的共享功能),但不提供任何修改确实如此。就像备份文件名是什么,它的位置...?所以我必须在外部处理这个......有点中间步骤......但似乎包含backup.yml并将变量传递给它会解决问题。
  • 请将此作为编辑添加到您的问题中。评论非常不稳定,可能会消失。并且应该能够仅通过您的问题的原因来理解该主题。

标签: ansible ansible-2.x


【解决方案1】:

猫备份.yml

- name: creating backup
  copy: src="{{ path_of_file }}" dest="{{ bkp_location }}/backup{{ path_of_file }}{{ contenttoaddwhilebackingup }}" remote_src=true 

在运行剧本中

include: backup.yml

所以如果你运行这样的剧本

ansible-playbook random.yml -e 'bkp_location=/tmp/backup/ path_of_file=/etc/systemconf/network contenttoaddwhilebackingup=26march2021'

它会像这样创建备份

ls -lrt /etc/systemconf/
    -rw-r--r-- 1 root root 2 Mar 25 15:22 network

ls -lrt /tmp/backup/
     -rw-r--r-- 1 root root 2 Mar 25 15:22 backupnetwork26march2021

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-14
    • 1970-01-01
    • 2018-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多