task 추가 및 수정
This commit is contained in:
@@ -1 +1,32 @@
|
|||||||
ANSIBLE_STDOUT_CALLBACK=debug ANSIBLE_DISPLAY_SKIPPED_HOSTS=false ansible-playbook -i hosts -e target=$1 etcd-restore.yml
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ $# -eq 0 ]; then
|
||||||
|
echo "Usage: etcd-restore.sh ['host' or 'member']"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
more lic.txt
|
||||||
|
|
||||||
|
echo ''
|
||||||
|
|
||||||
|
while [ -z $prompt ];
|
||||||
|
do read -p "DO YOU ACCEPT THE TERMS OF THIS LINCESE AGREEMENT? [y/n] : " choice;
|
||||||
|
case "$choice" in
|
||||||
|
y|Y ) prompt=true; break;;
|
||||||
|
n|N ) exit 0;;
|
||||||
|
esac;
|
||||||
|
done;
|
||||||
|
|
||||||
|
if which ansible-playbook >/dev/null; then
|
||||||
|
if [ $1 == "host" ]; then
|
||||||
|
ANSIBLE_STDOUT_CALLBACK=debug ANSIBLE_DISPLAY_SKIPPED_HOSTS=false ansible-playbook -i hosts -e target=host etcd-restore.yml
|
||||||
|
elif [ $1 == "member" ]; then
|
||||||
|
ANSIBLE_STDOUT_CALLBACK=debug ANSIBLE_DISPLAY_SKIPPED_HOSTS=false ansible-playbook -i hosts -e target=member etcd-restore.yml
|
||||||
|
else
|
||||||
|
echo "Usage: etcd-restore.sh ['host' or 'member']"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo 'Error: ansible is not installed.' >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
@@ -12,6 +12,7 @@
|
|||||||
- name: "[{{ target }} / 2-etcd-restore.yml] etcd original backup"
|
- name: "[{{ target }} / 2-etcd-restore.yml] etcd original backup"
|
||||||
shell: |
|
shell: |
|
||||||
cp -r /var/lib/etcd/* /tmp/etcd-backup-{{ time }}
|
cp -r /var/lib/etcd/* /tmp/etcd-backup-{{ time }}
|
||||||
|
failed_when: false
|
||||||
|
|
||||||
- name: "[{{ target }} / 2-etcd-restore.yml] etcd original file delete"
|
- name: "[{{ target }} / 2-etcd-restore.yml] etcd original file delete"
|
||||||
shell: |
|
shell: |
|
||||||
@@ -30,16 +31,28 @@
|
|||||||
--data-dir /var/lib/etcd/recover \
|
--data-dir /var/lib/etcd/recover \
|
||||||
--initial-cluster {{ master_host_name }}=https://{{ master_ip }}:2380,{{ master2_hostname }}=https://{{ master2_ip }}:2380,{{ master3_hostname }}=https://{{ master3_ip }}:2380 \
|
--initial-cluster {{ master_host_name }}=https://{{ master_ip }}:2380,{{ master2_hostname }}=https://{{ master2_ip }}:2380,{{ master3_hostname }}=https://{{ master3_ip }}:2380 \
|
||||||
--initial-advertise-peer-urls https://{{ ansible_host }}:2380
|
--initial-advertise-peer-urls https://{{ ansible_host }}:2380
|
||||||
register: etcdctl_command_result
|
register: master_mode_etcdctl_command_result
|
||||||
|
when:
|
||||||
|
- master_mode == "yes"
|
||||||
|
|
||||||
|
- name: "[{{ target }} / 2-etcd-restore.yml] etcd restore"
|
||||||
|
shell: |
|
||||||
|
etcdctl snapshot restore /tmp/{{ etcd_filename }} \
|
||||||
|
--name {{ ansible_hostname }} \
|
||||||
|
--data-dir /var/lib/etcd/recover \
|
||||||
|
--initial-cluster {{ master_host_name }}=https://{{ master_ip }}:2380 \
|
||||||
|
--initial-advertise-peer-urls https://{{ ansible_host }}:2380
|
||||||
|
register: single_etcdctl_command_result
|
||||||
|
when:
|
||||||
|
- master_mode == "no"
|
||||||
|
|
||||||
- name: "[{{ target }} / 2-etcd-restore.yml] etcd restore result"
|
- name: "[{{ target }} / 2-etcd-restore.yml] etcd restore result"
|
||||||
debug:
|
debug:
|
||||||
msg: |
|
msg: |
|
||||||
{% if etcdctl_command_result.rc == 0 %}
|
{% if master_mode_etcdctl_command_result.rc == 0 or single_etcdctl_command_result.rc == 0 %}
|
||||||
etcd restore success!
|
etcd restore success!
|
||||||
{% else %}
|
{% else %}
|
||||||
etcd restore failed!
|
etcd restore failed!
|
||||||
{{ etcdctl_command_result.rc }}
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
- name: "[{{ target }} / 2-etcd-restore.yml] delete old etcd member directory"
|
- name: "[{{ target }} / 2-etcd-restore.yml] delete old etcd member directory"
|
||||||
@@ -49,4 +62,9 @@
|
|||||||
|
|
||||||
- name: "[{{ target }} / 2-etcd-restore.yml] change name etcd restore directory"
|
- name: "[{{ target }} / 2-etcd-restore.yml] change name etcd restore directory"
|
||||||
shell: |
|
shell: |
|
||||||
mv /var/lib/etcd/recover/member /var/lib/etcd/member
|
mv /var/lib/etcd/recover/member /var/lib/etcd/member
|
||||||
|
|
||||||
|
- name: "[{{ target }} / 2-etcd-restore.yml] delete recover directory"
|
||||||
|
file:
|
||||||
|
path: /var/lib/etcd/recover
|
||||||
|
state: absent
|
||||||
24
roles/etcd-restore/tasks/redhat/3-etcd-restart.yml
Normal file
24
roles/etcd-restore/tasks/redhat/3-etcd-restart.yml
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
---
|
||||||
|
- name: "[{{ target }} / 3-etcd-restart.yml] get etcd container id"
|
||||||
|
shell: crictl ps -a | awk '$7 == "etcd" {print $1}'
|
||||||
|
register: etcd_container_ids
|
||||||
|
|
||||||
|
- name: "[{{ target }} / 3-etcd-restart.yml] etcd restart"
|
||||||
|
shell: |
|
||||||
|
crictl stop {{ item }} && crictl rm {{ item }}
|
||||||
|
loop: "{{ etcd_container_ids.stdout_lines }}"
|
||||||
|
when: etcd_container_ids.stdout_lines | length > 0
|
||||||
|
|
||||||
|
#- name: "[{{ target }} / 3-etcd-restart.yml] Wait for etcd container to be ready (60s)"
|
||||||
|
# pause:
|
||||||
|
# seconds: 60
|
||||||
|
|
||||||
|
#- name: "[{{ target }} / 3-etcd-restart.yml] etcd status"
|
||||||
|
# shell: |
|
||||||
|
# crictl ps -a |grep etcd
|
||||||
|
# register: etcd_status
|
||||||
|
|
||||||
|
#- name: "[{{ target }} / 3-etcd-restart.yml] etcd status"
|
||||||
|
# debug:
|
||||||
|
# msg:
|
||||||
|
# "{{ etcd_status.stdout }}"
|
||||||
5
roles/etcd-restore/tasks/redhat/4-kubelet-restart.yml
Normal file
5
roles/etcd-restore/tasks/redhat/4-kubelet-restart.yml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
- name: "[{{ target }} / 4-kubelet-restart.yml] kubelet restart"
|
||||||
|
service:
|
||||||
|
state: restarted
|
||||||
|
name: kubelet
|
||||||
@@ -14,12 +14,32 @@
|
|||||||
- "'member-master' in group_names or 'member-master-cluster' in group_names"
|
- "'member-master' in group_names or 'member-master-cluster' in group_names"
|
||||||
- target in ['member']
|
- target in ['member']
|
||||||
|
|
||||||
- include : "2-etcd-restore.yml"
|
- include: "2-etcd-restore.yml"
|
||||||
when:
|
when:
|
||||||
- "'host-master' in group_names or 'host-master-cluster' in group_names"
|
- "'host-master' in group_names or 'host-master-cluster' in group_names"
|
||||||
- target in ['host']
|
- target in ['host']
|
||||||
|
|
||||||
- include : "2-etcd-restore.yml"
|
- include: "2-etcd-restore.yml"
|
||||||
when:
|
when:
|
||||||
- "'member-master' in group_names or 'member-master-cluster' in group_names"
|
- "'member-master' in group_names or 'member-master-cluster' in group_names"
|
||||||
|
- target in ['member']
|
||||||
|
|
||||||
|
- include: "3-etcd-restart.yml"
|
||||||
|
when:
|
||||||
|
- "'host-master' in group_names or 'host-master-cluster' in group_names"
|
||||||
|
- target in ['host']
|
||||||
|
|
||||||
|
- include: "3-etcd-restart.yml"
|
||||||
|
when:
|
||||||
|
- "'member-master' in group_names or 'member-master-cluster' in group_names"
|
||||||
|
- target in ['member']
|
||||||
|
|
||||||
|
- include: "4-kubelet-restart.yml"
|
||||||
|
when:
|
||||||
|
- "'host-cluster' in group_names"
|
||||||
|
- target in ['host']
|
||||||
|
|
||||||
|
- include: "4-kubelet-restart.yml"
|
||||||
|
when:
|
||||||
|
- "'member-cluster' in group_names"
|
||||||
- target in ['member']
|
- target in ['member']
|
||||||
Reference in New Issue
Block a user