gpt4 book ai didi

ansible - 如何使用 ansible 备份文件和文件夹?

转载 作者:行者123 更新时间:2023-12-03 19:45:18 27 4
gpt4 key购买 nike

我有一个包含一些模板文件的文件夹和子文件夹,这些模板文件需要部署在远程机器上,但在部署这些文件和文件夹之前,我需要在控制系统(运行 ansible 的地方)中备份这些文件和文件夹。需要部署的文件数量不是固定的,它可能会改变。可以在ansible中做到这一点吗?

下面是我的 ansible 配置和全局变量文件,它在提取步骤之前一直有效。

---
#Global vars
aws_access_key: xxx
aws_secret_key: xxx
aws_bucket: s3-artifacts
aws_bucket_download: /deployment/trial/deployment.tar.gz
local_download: deployment.tar.gz
current_dir: /root/tools/deployment/trial/
local_extract_dir: extracted

deployment_usr: root
deployment_grp: root
mode: 775
...




---
- hosts: web
tasks:
- name: Download from S3
s3: aws_access_key="{{ aws_access_key }}" aws_secret_key="{{ aws_secret_key }}" bucket="{{ aws_bucket }}" object="{{ aws_bucket_download }}" dest="{{ current_dir }}/{{ local_download }}" mode=get overwrite=true
#Change permissions
- name: Change permissions
file: path="{{ current_dir }}/{{ local_download }}" owner="{{ deployment_usr }}" group="{{ deployment_grp }}" mode="{{ mode }}"
#Extract
- name: mkdir local_extract_dir
file: path="{{ current_dir }}/{{ local_extract_dir }}" state=directory mode="{{ mode }}"
- name: Extracting deployment folder
unarchive: src="{{ current_dir }}/{{ local_download }}" dest="{{ current_dir }}/{{ local_extract_dir }}"
- name: Give permissions
file: path="{{ current_dir }}/{{ local_extract_dir }}" owner="{{ deployment_usr }}" group="{{ deployment_grp }}" mode="{{ mode }}"

#Backup
#- name: Synchronize
#synchronize: src="{{ current_dir }}/{{ local_extract_dir }}"

...

我也试过运行 (cd extracted; find .) | cut -c 3-命令提供提取的文件和文件夹的列表,但需要帮助从远程计算机备份这些文件。

最佳答案

如果我正确理解您的问题,您正在寻找 copy模块:

- name: Copy some directory
copy:
src: "{{ current_dir }}/{{ local_extract_dir }}/"
dest: "{{ backup_dir }}/"
delegate_to: localhost

也看看 synchronize module如果您更喜欢基于 rsync 的解决方案。

关于ansible - 如何使用 ansible 备份文件和文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40014539/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com