mirror of https://github.com/easzlab/kubeasz.git
fix:增加/删除节点时ansible hosts文件更新错误
parent
8ae6603f0d
commit
10a900f8c3
15
ezctl
15
ezctl
|
@ -303,7 +303,7 @@ function add-node() {
|
||||||
[[ $2 =~ ^(2(5[0-5]{1}|[0-4][0-9]{1})|[0-1]?[0-9]{1,2})(\.(2(5[0-5]{1}|[0-4][0-9]{1})|[0-1]?[0-9]{1,2})){3}$ ]] || { logger error "Invalid ip add:$2"; return 1; }
|
[[ $2 =~ ^(2(5[0-5]{1}|[0-4][0-9]{1})|[0-1]?[0-9]{1,2})(\.(2(5[0-5]{1}|[0-4][0-9]{1})|[0-1]?[0-9]{1,2})){3}$ ]] || { logger error "Invalid ip add:$2"; return 1; }
|
||||||
|
|
||||||
# check if the new node already exsited
|
# check if the new node already exsited
|
||||||
sed -n '/^\[kube_master/,/^\[harbor/p' "$BASE/clusters/$1/hosts"|grep "^$2[^0-9]" && { logger error "node $2 already existed in $BASE/clusters/$1/hosts"; return 2; }
|
sed -n '/^\[kube_master/,/^\[harbor/p' "$BASE/clusters/$1/hosts"|grep -E "^$2$|^$2 " && { logger error "node $2 already existed in $BASE/clusters/$1/hosts"; return 2; }
|
||||||
|
|
||||||
logger info "add $2 into 'kube_node' group"
|
logger info "add $2 into 'kube_node' group"
|
||||||
NODE_INFO="${@:2}"
|
NODE_INFO="${@:2}"
|
||||||
|
@ -318,7 +318,7 @@ function add-master() {
|
||||||
[[ $2 =~ ^(2(5[0-5]{1}|[0-4][0-9]{1})|[0-1]?[0-9]{1,2})(\.(2(5[0-5]{1}|[0-4][0-9]{1})|[0-1]?[0-9]{1,2})){3}$ ]] || { logger error "Invalid ip add:$2"; return 1; }
|
[[ $2 =~ ^(2(5[0-5]{1}|[0-4][0-9]{1})|[0-1]?[0-9]{1,2})(\.(2(5[0-5]{1}|[0-4][0-9]{1})|[0-1]?[0-9]{1,2})){3}$ ]] || { logger error "Invalid ip add:$2"; return 1; }
|
||||||
|
|
||||||
# check if the new master already exsited
|
# check if the new master already exsited
|
||||||
sed -n '/^\[kube_master/,/^\[kube_node/p' "$BASE/clusters/$1/hosts"|grep "^$2[^0-9]" && { logger error "master $2 already existed!"; return 2; }
|
sed -n '/^\[kube_master/,/^\[kube_node/p' "$BASE/clusters/$1/hosts"|grep -E "^$2$|^$2 " && { logger error "master $2 already existed!"; return 2; }
|
||||||
|
|
||||||
logger info "add $2 into 'kube_master' group"
|
logger info "add $2 into 'kube_master' group"
|
||||||
MASTER_INFO="${@:2}"
|
MASTER_INFO="${@:2}"
|
||||||
|
@ -336,7 +336,7 @@ function add-etcd() {
|
||||||
[[ $2 =~ ^(2(5[0-5]{1}|[0-4][0-9]{1})|[0-1]?[0-9]{1,2})(\.(2(5[0-5]{1}|[0-4][0-9]{1})|[0-1]?[0-9]{1,2})){3}$ ]] || { logger error "Invalid ip add:$2"; return 1; }
|
[[ $2 =~ ^(2(5[0-5]{1}|[0-4][0-9]{1})|[0-1]?[0-9]{1,2})(\.(2(5[0-5]{1}|[0-4][0-9]{1})|[0-1]?[0-9]{1,2})){3}$ ]] || { logger error "Invalid ip add:$2"; return 1; }
|
||||||
|
|
||||||
# check if the new node already exsited
|
# check if the new node already exsited
|
||||||
sed -n '/^\[etcd/,/^\[kube_master/p' "$BASE/clusters/$1/hosts"|grep "^$2[^0-9]" && { logger error "etcd $2 already existed!"; return 2; }
|
sed -n '/^\[etcd/,/^\[kube_master/p' "$BASE/clusters/$1/hosts"|grep -E "^$2$|^$2 " && { logger error "etcd $2 already existed!"; return 2; }
|
||||||
|
|
||||||
logger info "add $2 into 'etcd' group"
|
logger info "add $2 into 'etcd' group"
|
||||||
ETCD_INFO="${@:2}"
|
ETCD_INFO="${@:2}"
|
||||||
|
@ -356,6 +356,9 @@ function del-etcd() {
|
||||||
# check node's address regexp
|
# check node's address regexp
|
||||||
[[ $2 =~ ^(2(5[0-5]{1}|[0-4][0-9]{1})|[0-1]?[0-9]{1,2})(\.(2(5[0-5]{1}|[0-4][0-9]{1})|[0-1]?[0-9]{1,2})){3}$ ]] || { logger error "Invalid ip add:$2"; return 1; }
|
[[ $2 =~ ^(2(5[0-5]{1}|[0-4][0-9]{1})|[0-1]?[0-9]{1,2})(\.(2(5[0-5]{1}|[0-4][0-9]{1})|[0-1]?[0-9]{1,2})){3}$ ]] || { logger error "Invalid ip add:$2"; return 1; }
|
||||||
|
|
||||||
|
# check if the deleting node exsited
|
||||||
|
sed -n '/^\[etcd/,/^\[kube_master/p' "$BASE/clusters/$1/hosts"|grep -E "^$2$|^$2 " || { logger error "etcd $2 not existed!"; return 2; }
|
||||||
|
|
||||||
logger warn "start to delete the etcd node:$2 from cluster:$1"
|
logger warn "start to delete the etcd node:$2 from cluster:$1"
|
||||||
ansible-playbook -i "$BASE/clusters/$1/hosts" "$BASE/playbooks/31.deletcd.yml" -e "ETCD_TO_DEL=$2" -e "CLUSTER=$1" -e "@clusters/$1/config.yml"
|
ansible-playbook -i "$BASE/clusters/$1/hosts" "$BASE/playbooks/31.deletcd.yml" -e "ETCD_TO_DEL=$2" -e "CLUSTER=$1" -e "@clusters/$1/config.yml"
|
||||||
|
|
||||||
|
@ -370,6 +373,9 @@ function del-node() {
|
||||||
# check node's address regexp
|
# check node's address regexp
|
||||||
[[ $2 =~ ^(2(5[0-5]{1}|[0-4][0-9]{1})|[0-1]?[0-9]{1,2})(\.(2(5[0-5]{1}|[0-4][0-9]{1})|[0-1]?[0-9]{1,2})){3}$ ]] || { logger "Invalid ip add:$2"; return 2; }
|
[[ $2 =~ ^(2(5[0-5]{1}|[0-4][0-9]{1})|[0-1]?[0-9]{1,2})(\.(2(5[0-5]{1}|[0-4][0-9]{1})|[0-1]?[0-9]{1,2})){3}$ ]] || { logger "Invalid ip add:$2"; return 2; }
|
||||||
|
|
||||||
|
# check if the deleting node exsited
|
||||||
|
sed -n '/^\[kube_master/,/^\[harbor/p' "$BASE/clusters/$1/hosts"|grep -E "^$2$|^$2 " || { logger error "node $2 not existed in $BASE/clusters/$1/hosts"; return 2; }
|
||||||
|
|
||||||
logger warn "start to delete the node:$2 from cluster:$1"
|
logger warn "start to delete the node:$2 from cluster:$1"
|
||||||
ansible-playbook -i "$BASE/clusters/$1/hosts" "$BASE/playbooks/32.delnode.yml" -e "NODE_TO_DEL=$2" -e "CLUSTER=$1" -e "@clusters/$1/config.yml"
|
ansible-playbook -i "$BASE/clusters/$1/hosts" "$BASE/playbooks/32.delnode.yml" -e "NODE_TO_DEL=$2" -e "CLUSTER=$1" -e "@clusters/$1/config.yml"
|
||||||
}
|
}
|
||||||
|
@ -378,6 +384,9 @@ function del-master() {
|
||||||
# check node's address regexp
|
# check node's address regexp
|
||||||
[[ $2 =~ ^(2(5[0-5]{1}|[0-4][0-9]{1})|[0-1]?[0-9]{1,2})(\.(2(5[0-5]{1}|[0-4][0-9]{1})|[0-1]?[0-9]{1,2})){3}$ ]] || { logger error "Invalid ip add:$2"; return 2; }
|
[[ $2 =~ ^(2(5[0-5]{1}|[0-4][0-9]{1})|[0-1]?[0-9]{1,2})(\.(2(5[0-5]{1}|[0-4][0-9]{1})|[0-1]?[0-9]{1,2})){3}$ ]] || { logger error "Invalid ip add:$2"; return 2; }
|
||||||
|
|
||||||
|
# check if the deleting master exsited
|
||||||
|
sed -n '/^\[kube_master/,/^\[kube_node/p' "$BASE/clusters/$1/hosts"|grep -E "^$2$|^$2 " || { logger error "master $2 not existed!"; return 2; }
|
||||||
|
|
||||||
logger warn "start to delete the master:$2 from cluster:$1"
|
logger warn "start to delete the master:$2 from cluster:$1"
|
||||||
ansible-playbook -i "$BASE/clusters/$1/hosts" "$BASE/playbooks/33.delmaster.yml" -e "NODE_TO_DEL=$2" -e "CLUSTER=$1" -e "@clusters/$1/config.yml"
|
ansible-playbook -i "$BASE/clusters/$1/hosts" "$BASE/playbooks/33.delmaster.yml" -e "NODE_TO_DEL=$2" -e "CLUSTER=$1" -e "@clusters/$1/config.yml"
|
||||||
|
|
||||||
|
|
|
@ -73,7 +73,13 @@
|
||||||
|
|
||||||
# lineinfile is inadequate to delete lines between some specific line range
|
# lineinfile is inadequate to delete lines between some specific line range
|
||||||
- name: remove the etcd's node entry in hosts
|
- name: remove the etcd's node entry in hosts
|
||||||
shell: 'sed -i "/^\[etcd/,/^\[kube_master/ {/^{{ ETCD_TO_DEL }}[^0-9].*$/d}" {{ base_dir }}/clusters/{{ CLUSTER }}/hosts'
|
shell: 'sed -i "/^\[etcd/,/^\[kube_master/ {/^{{ ETCD_TO_DEL }}$/d}" {{ base_dir }}/clusters/{{ CLUSTER }}/hosts'
|
||||||
|
args:
|
||||||
|
warn: false
|
||||||
|
|
||||||
|
# lineinfile is inadequate to delete lines between some specific line range
|
||||||
|
- name: remove the etcd's node entry in hosts
|
||||||
|
shell: 'sed -i "/^\[etcd/,/^\[kube_master/ {/^{{ ETCD_TO_DEL }} /d}" {{ base_dir }}/clusters/{{ CLUSTER }}/hosts'
|
||||||
args:
|
args:
|
||||||
warn: false
|
warn: false
|
||||||
when: "groups['etcd']|length > 1 and ETCD_TO_DEL in groups['etcd']"
|
when: "groups['etcd']|length > 1 and ETCD_TO_DEL in groups['etcd']"
|
||||||
|
|
|
@ -26,6 +26,12 @@
|
||||||
|
|
||||||
# lineinfile is inadequate to delete lines between some specific line range
|
# lineinfile is inadequate to delete lines between some specific line range
|
||||||
- name: remove the node's entry in hosts
|
- name: remove the node's entry in hosts
|
||||||
shell: 'sed -i "/^\[kube_node/,/^\[harbor/ {/^{{ NODE_TO_DEL }}[^0-9].*$/d}" {{ base_dir }}/clusters/{{ CLUSTER }}/hosts'
|
shell: 'sed -i "/^\[kube_node/,/^\[harbor/ {/^{{ NODE_TO_DEL }}$/d}" {{ base_dir }}/clusters/{{ CLUSTER }}/hosts'
|
||||||
|
args:
|
||||||
|
warn: false
|
||||||
|
|
||||||
|
# lineinfile is inadequate to delete lines between some specific line range
|
||||||
|
- name: remove the node's entry in hosts
|
||||||
|
shell: 'sed -i "/^\[kube_node/,/^\[harbor/ {/^{{ NODE_TO_DEL }} /d}" {{ base_dir }}/clusters/{{ CLUSTER }}/hosts'
|
||||||
args:
|
args:
|
||||||
warn: false
|
warn: false
|
||||||
|
|
|
@ -27,6 +27,12 @@
|
||||||
|
|
||||||
# lineinfile is inadequate to delete lines between some specific line range
|
# lineinfile is inadequate to delete lines between some specific line range
|
||||||
- name: remove the master's entry in hosts
|
- name: remove the master's entry in hosts
|
||||||
shell: 'sed -i "/^\[kube_master/,/^\[harbor/ {/^{{ NODE_TO_DEL }}[^0-9].*$/d}" {{ base_dir }}/clusters/{{ CLUSTER }}/hosts'
|
shell: 'sed -i "/^\[kube_master/,/^\[harbor/ {/^{{ NODE_TO_DEL }}$/d}" {{ base_dir }}/clusters/{{ CLUSTER }}/hosts'
|
||||||
|
args:
|
||||||
|
warn: false
|
||||||
|
|
||||||
|
# lineinfile is inadequate to delete lines between some specific line range
|
||||||
|
- name: remove the master's entry in hosts
|
||||||
|
shell: 'sed -i "/^\[kube_master/,/^\[harbor/ {/^{{ NODE_TO_DEL }} /d}" {{ base_dir }}/clusters/{{ CLUSTER }}/hosts'
|
||||||
args:
|
args:
|
||||||
warn: false
|
warn: false
|
||||||
|
|
Loading…
Reference in New Issue