zoukankan      html  css  js  c++  java
  • ansible 任务委派 delegate_to

    https://www.cnblogs.com/heaven-xi/p/10420087.html

    [python@heaven-00 0130]$ cat test20.yml
    ---
    - hosts: local
    tasks:
    - name: mkdir document /root/test
    file:
    path: /root/test
    state: directory
    owner: root
    mode: "755"

    - name: jiluyi
    shell: echo "1" >> /root/a.txt
    delegate_to: ansible-04

    - name: toush file
    file:
    path: /root/test/{{ ansible_hostname }}
    state: touch
    mode: "755"
    owner: root

     
     
      # cluster-backup playbook
      # read the guide: 'op/cluster_restore.md'
       
      - hosts:
      - localhost
      tasks:
      # step1: find a healthy member in the etcd cluster
      - name: set NODE_IPS of the etcd cluster
      set_fact: NODE_IPS="{% for host in groups['etcd'] %}{{ host }} {% endfor %}"
       
      - name: get etcd cluster status
      shell: 'for ip in {{ NODE_IPS }};do
      ETCDCTL_API=3 {{ base_dir }}/bin/etcdctl
      --endpoints=https://"$ip":2379
      --cacert={{ cluster_dir }}/ssl/ca.pem
      --cert={{ cluster_dir }}/ssl/etcd.pem
      --key={{ cluster_dir }}/ssl/etcd-key.pem
      endpoint health;
      done'
      register: ETCD_CLUSTER_STATUS
      ignore_errors: true
       
      - debug: var="ETCD_CLUSTER_STATUS"
       
      - name: get a running ectd node
      shell: 'echo -e "{{ ETCD_CLUSTER_STATUS.stdout }}"
      "{{ ETCD_CLUSTER_STATUS.stderr }}"
      |grep "is healthy"|sed -n "1p"|cut -d: -f2|cut -d/ -f3'
      register: RUNNING_NODE
       
      - debug: var="RUNNING_NODE.stdout"
       
      - name: get current time
      shell: "date +'%Y%m%d%H%M'"
      register: timestamp
       
      # step2: backup data on the healthy member
      - name: make a backup on the etcd node
      shell: "mkdir -p /etcd_backup && cd /etcd_backup &&
      ETCDCTL_API=3 {{ bin_dir }}/etcdctl snapshot save snapshot_{{ timestamp.stdout }}.db"
      args:
      warn: false
      delegate_to: "{{ RUNNING_NODE.stdout }}"
       
      - name: fetch the backup data
      fetch:
      src: /etcd_backup/snapshot_{{ timestamp.stdout }}.db
      dest: "{{ cluster_dir }}/backup/"
      flat: yes
      delegate_to: "{{ RUNNING_NODE.stdout }}"
       
      - name: update the latest backup
      shell: 'cd {{ cluster_dir }}/backup/ && /bin/cp -f snapshot_{{ timestamp.stdout }}.db snapshot.db'
  • 相关阅读:
    MYSQL数据库设计规范与原则
    PHP-CI框架数据库连接默认是长连接,需要注意应用场景
    mysql性能调优与架构设计笔记
    JavaScript学习笔记
    PHP一维数组和二维数字排序整理
    MYSQL常用的Show命令笔记
    设计模式之建造者模式
    设计模式之工厂模式
    设计模式前提篇二(C++编程原则)
    设计模式前提篇一(C++/基础)
  • 原文地址:https://www.cnblogs.com/cheyunhua/p/15019551.html
Copyright © 2011-2022 走看看