Ansible 远程备份

ansible执行远程备份

cat /search/ansible/roles/adtech/tasks/backup_data.yml 
---

- name: register variable
  shell: date -d"0 days ago" +"%Y%m%d%H"
  register: bak_var
  failed_when: bak_var.rc != 0

- debug: msg="print {{ bak_var }}"

- name: create backup dir
  file: path=/search/odin/backup/{{ bak_var.stdout }} state=directory

- name: backup bin file
  copy: src=/search/odin/bin dest=/search/odin/backup/{{ bak_var.stdout }}/ remote_src=yes

- name: backup conf
  copy: src=/search/odin/conf dest=/search/odin/backup/{{ bak_var.stdout }}/ remote_src=yes

- name: delete 5 days ago data
  shell: find /search/odin/backup/ -mtime +5 -exec rm -f {} \;
  register: result
  failed_when: result.rc != 0

- debug: msg="backup done"

执行结果:

[@bjyf_50_20 ansible]# ansible-playbook -i host_test test.yml

PLAY [test] *******************************************************

TASK [Gathering Facts] *******************************************************************
ok: [10.160.13.139]

TASK [adtech : register variable] *******************************************************************
changed: [10.160.13.139]

TASK [adtech : debug] *******************************************************************
ok: [10.160.13.139] => {
    "msg": {
        "changed": true,
        "cmd": "date -d\"0 days ago\" +\"%Y%m%d%H\"",
        "delta": "0:00:00.010421",
        "end": "2020-11-10 11:35:25.821426",
        "failed": false,
        "failed_when_result": false,
        "rc": 0,
        "start": "2020-11-10 11:35:25.811005",
        "stderr": "",
        "stderr_lines": [],
        "stdout": "2020111011",
        "stdout_lines": [
            "2020111011"
        ]
    }
}

TASK [adtech : create backup dir] ******************************************************************
ok: [10.160.13.139]

TASK [adtech : backup bin file] ******************************************************************
ok: [10.160.13.139]

TASK [adtech : backup conf] ******************************************************************
ok: [10.160.13.139]

TASK [adtech : delete 5 days ago data] ******************************************************************
changed: [10.160.13.139]

TASK [adtech : debug] ******************************************************************
ok: [10.160.13.139] => {
    "msg": "backup done"
}

PLAY RECAP *******************************************************
10.160.13.139              : ok=8    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

[@bjyf_50_20 ansible]#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ansible是一个强大的、开源的IT自动化工具,它可以用于管理和配置各种系统和服务,包括远程配置数据库。它基于YAML语言编写 Playbooks(剧本),使得配置过程清晰且可重复执行。以下是使用Ansible配置远程数据库的一般步骤: 1. **安装和配置Ansible**:首先确保在你的本地机器上安装了Ansible,并且配置了Inventory(主机列表),通常包含要连接的远程数据库服务器的IP地址或主机名。 2. **创建 playbook**:创建一个新的Playbook文件,比如`db_config.yml`,在这个文件中,你将定义任务来执行数据库操作。这可能包括安装数据库软件、设置环境变量、迁移数据或修改配置文件。 ```yaml - name: Configure Remote Database hosts: db_servers become: yes tasks: - name: Install database software apt: name: "{{ item }}" state: present with_items: [ 'postgresql', 'postgresql-contrib' ] - name: Configure PostgreSQL template: src: postgresql.conf.j2 dest: /etc/postgresql/<version>/main/postgresql.conf owner: postgres group: postgres - name: Restart PostgreSQL service service: name: postgresql state: restarted ``` 3. **模板文件(template)**:利用Ansible的`template`模块,你可以创建一个 Jinja2 模板(如`postgresql.conf.j2`),其中包含了数据库配置信息,然后Ansible会在目标服务器上应用这些配置。 4. **安全性和权限**:确保在远程服务器上正确配置SSH密钥对,以便Ansible无密码登录。同时,要限制Playbook的执行权限,只对需要管理数据库的用户执行。 5. **运行 playbook**:在本地执行`ansible-playbook db_config.yml`命令,Ansible会按照Playbook的描述去配置远程数据库。 相关问题: 1. Ansible如何保证远程操作的安全性? 2. 在Ansible中,如何使用Jinja2模板? 3. 如何在Ansible中处理数据库的备份和恢复任务?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值