[svc]ansible实现备份 实现发邮件 远端解压

来源:互联网 发布:做家常菜的软件 编辑:程序博客网 时间:2024/06/15 21:41

后续会陆陆续续本着简单到复杂,从语法到应用案例,大道至简的原则来搞搞ansible。


1.远端解压.将远端的压缩包解压到远端某个目录

- hosts: nodexx  remote_user: root  vars:  - dfpath: "/backup/scm-data/"  tasks:    - name "this vm restore scm data to test data on app"      unarchive:        src: /tmp/etc.tar.gz  #可以是url,从网上下载        dest: /root        remote_src: "{{ dfpath }}"

2,远端压缩,并取回
- hosts: nodexx    remote_user: root    vars:      - sfpath: "/backup/scm-data/*_$(date +%F)_scmdata.tar.gz"      - dfpath: "/backup/scm-data/"    - name: Package | make /root/.scm to tar.gz package on node14      raw: cd /root && tar zcf /data/backup/scm-data/`ifconfig|sed -n '2p'|awk -F':' '{print $2}'|awk '{print $1}'`_$(date +%F)_scmdata.tar.gz .scm    - name: Download | copy nodexx's tar.gz to ansible vm([this vm] /data/scm-data)      synchronize:        src: "{{ sfpath }}"        dest: "{{ dfpath }}"        mode: pull
#注意使用连这执行命令 如 cd / && echo 1>1.txt ,shell不好使,需要使用raw模块
#带变量的定义


3,利用mail模块发邮件
- hosts: nodexx    remote_user: root    - name: sendMail to op      mail:        host: smtp.sina.com        port: 25        username: xxx@sina.com        password: xxx        from: xxx@sina.com (lannymxl)        to: Jack <Jackma@gmail.com>        # cc: John Doe <j.d@example.org>, Suzie Something <sue@example.com>        # cc: Wang Wu <wangwu@gmail.com>, Li Si <Lisi@163.com>        attach: /etc/fstab /etc/hosts        subject: Backup-scm successfully        body: 'System {{ ansible_hostname }}-192.168.x.x from 192.168.x.x scm-backup has been successfully provisioned.'


4,从scm主机每天备份,备份完事后发邮件--ansible实现
- hosts: nodexx-scm  remote_user: root  vars:  - sfpath: "/backup/scm-data/*_$(date +%F)_scmdata.tar.gz"  - dfpath: "/backup/scm-data/"  tasks:#清理远端的压缩包,远端进保留一天scm-data.tar.gz  2,远端打包并将压缩包取回    - name: Clean | keeping [scm-server-node14]'s /backup/scm-data dir only have one tar pkg      shell: find /backup/scm-data/ -name "*.tar.gz"  -type f -mtime|xargs rm -f    - name: Package | make /root/.scm to tar.gz package on node14      raw: cd /root && tar zcf /data/backup/scm-data/`ifconfig|sed -n '2p'|awk -F':' '{print $2}'|awk '{print $1}'`_$(date +%F)_scmdata.tar.gz .scm    - name: Download | copy node14's tar.gz to ansible vm([this vm] /data/scm-data)      synchronize:        src: "{{ sfpath }}"        dest: "{{ dfpath }}"        mode: pull        # 远程解压    # - name "this vm restore scm data to test data on app"    #   unarchive:    #     src: "{{ dfpath }}"    #     dest: /root    #     remote_src: True- hosts: localhost  remote_user: root  tasks:   #清理本地scm压缩包,仅保存7天的压缩包. 完事后,发邮件.    - name: Keeps scm-data.tar.gz of 7 days in local      shell: find /backup/scm-data/ -name "*.tar.gz"  -type f -mtime|xargs rm -f    - name: sendMail to op      mail:        host: smtp.sina.com        port: 25        username: xxx@sina.com        password: xxx        from: xxx@sina.com (lannymxl)        to: Jack <Jackma@gmail.com>        # cc: John Doe <j.d@example.org>, Suzie Something <sue@example.com>        # cc: Wang Wu <wangwu@gmail.com>, Li Si <Lisi@163.com>        attach: /etc/fstab /etc/hosts        subject: Backup-scm successfully        body: 'System {{ ansible_hostname }}-192.168.x.x from 192.168.x.x scm-backup has been successfully provisioned.'


0 0