1. 场景
AZ扩容需要删除掉原来的master2和master3节点。
2. 报错信息
"TASK [Fail if user does not confirm deletion] **********************************",
"fatal: [master2]: FAILED! => {\"changed\": false, \"msg\": \"Delete nodes confirmation failed\"}",
"fatal: [master3]: FAILED! => {\"changed\": false, \"msg\": \"Delete nodes confirmation failed\"}",
3. 问题排查
在部署节点执行remove-node.yml会提醒是否用户键盘输入yes以执行删除节点操作,自动化脚本这一步没有任何参数引入,导致默认为no。
出于安全考虑,删除节点的默认选项是否,因为自动化脚本缺少键盘输入导致默认不操作导致Fail if user does not confirm deletion。
4. ansible外部传参解决
-e skip_confirmation=true
ansible-playbook -i inventory/cbase/{{ host_file_name }} -e ansible_python_interpreter=/usr/bin/python3 remove-node.yml -e node={{ old_exist_master2_name }},{{ old_exist_master3_name }} -e skip_confirmation=true
通过-start-at-task传参直接从删除节点这一步开始
ansible-playbook -i inventory/cbase/hosts_az1 -e ansible_python_interpreter=/usr/bin/python3 augmentnodes.yml -vvv --start-at-task="workers : delegte to remove master2 & master3"