task 추가 및 수정

This commit is contained in:
2025-07-07 16:57:48 +09:00
parent 22e4dd99a8
commit c9f731d438
5 changed files with 105 additions and 7 deletions

View File

@@ -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

View File

@@ -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

View 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 }}"

View File

@@ -0,0 +1,5 @@
---
- name: "[{{ target }} / 4-kubelet-restart.yml] kubelet restart"
service:
state: restarted
name: kubelet

View File

@@ -23,3 +23,23 @@
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']