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'
  • 相关阅读:
    Alpha 冲刺 (10/10)
    Alpha 冲刺 (9/10)
    Alpha 冲刺 (8/10)
    Alpha 冲刺 (7/10)
    Alpha 冲刺 (6/10)
    Alpha 冲刺 (5/10)
    18软工实践-团队现场编程实战(抽奖系统)
    Alpha 冲刺 (4/10)
    BETA(4)
    BETA(3)
  • 原文地址:https://www.cnblogs.com/cheyunhua/p/15019551.html
Copyright © 2011-2022 走看看