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"
|
||||
shell: |
|
||||
cp -r /var/lib/etcd/* /tmp/etcd-backup-{{ time }}
|
||||
failed_when: false
|
||||
|
||||
- name: "[{{ target }} / 2-etcd-restore.yml] etcd original file delete"
|
||||
shell: |
|
||||
@@ -30,16 +31,28 @@
|
||||
--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-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"
|
||||
debug:
|
||||
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!
|
||||
{% else %}
|
||||
etcd restore failed!
|
||||
{{ etcdctl_command_result.rc }}
|
||||
{% endif %}
|
||||
|
||||
- name: "[{{ target }} / 2-etcd-restore.yml] delete old etcd member directory"
|
||||
@@ -50,3 +63,8 @@
|
||||
- name: "[{{ target }} / 2-etcd-restore.yml] change name etcd restore directory"
|
||||
shell: |
|
||||
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"
|
||||
- target in ['member']
|
||||
|
||||
- include : "2-etcd-restore.yml"
|
||||
- include: "2-etcd-restore.yml"
|
||||
when:
|
||||
- "'host-master' in group_names or 'host-master-cluster' in group_names"
|
||||
- target in ['host']
|
||||
|
||||
- include : "2-etcd-restore.yml"
|
||||
- include: "2-etcd-restore.yml"
|
||||
when:
|
||||
- "'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']
|
||||
Reference in New Issue
Block a user