• 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'
  • 相关阅读:
    My first blog!
    Elasticsearch安装 + Head插件安装 + Bigdesk插件安装
    泛型-反射-注解
    JFinal自定义FreeMarker标签
    Hadoop集群中节点角色定义
    HBase
    MapReduce
    HDFS
    Hadoop基本概念
    HTTP浅析
  • 原文地址:https://www.cnblogs.com/cheyunhua/p/15019551.html
Copyright © 2020-2023  润新知