報錯
[root@server1 ~]# ansible-playbook ping.yaml #此時發現運行tasks:ping不成功
PLAY [mysql] **********************************************************************************
TASK [Gathering Facts] ************************************************************************
ok: [20.0.0.13]
TASK [useradd mysql] **************************************************************************
ok: [20.0.0.13]
TASK [ping] ***********************************************************************************
fatal: [20.0.0.13]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).", "unreachable": true}
PLAY RECAP ************************************************************************************
20.0.0.13 : ok=2 changed=0 unreachable=1 failed=0 skipped=0 rescued=0 ignored=0
①在進行ansible-playbook對MySQL主機操作時提示ping任務不成功
②解決的思路
1、根據報錯資訊"msg": "Failed to connect to the host via ssh: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)."顯示,權限被拒絕
2、檢查ssh密鑰是否需要重傳
3、運行的任務的用戶權限是否能夠進行ping操作
解決
最終確定,是用戶權限不能夠進行ping操作
解決程序
- 給mysql用戶提權
[root@server1 opt]# vim ping.yaml
- hosts: mysql
remote_user: root
become:
tasks:
- name: ping
ping:
remote_user: mysql
[root@server1 ~]# ansible-playbook ping.yaml
PLAY [mysql] **********************************************************************************
TASK [Gathering Facts] ************************************************************************
fatal: [20.0.0.13]: FAILED! => {"ansible_facts": {}, "changed": false, "failed_modules": {"setup": {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}, "failed": true, "module_stderr": "Shared connection to 20.0.0.13 closed.\r\n", "module_stdout": ">>> /etc/sudoers: 語法錯誤 near line 1 <<<\r\nsudo: /etc/sudoers 中第 1 行附近有決議錯誤\r\nsudo: 沒有找到有效的 sudoers 資源,退出\r\nsudo: 無法初始化策略插件\r\n", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}}, "msg": "The following modules failed to execute: setup\n"}
PLAY RECAP ************************************************************************************
20.0.0.13 : ok=0 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
運行結果仍然出錯
提示/etc/sudoers 中第 1 行附近有決議錯誤\r\nsudo: 沒有找到有效的 sudoers 資源
繼續解決
在被控制端sudoers中添加運行用戶
[root@server1 ~]# vim ping.yaml
- hosts: mysql
remote_user: root
tasks:
- name: useradd mysql
user: name=mysql #創建一個mysql用戶
- name: sudoers
shell: /usr/bin/echo "mysql ALL=(root) ALL" >> /etc/sudoers
- name: ping
become: yes #允許進行提權
become_user: mysql #提權賬號
ping:
將運行用戶添加進sudosers中再次運行
[root@server1 ~]# ansible-playbook ping.yaml
PLAY [mysql] **********************************************************************************
TASK [Gathering Facts] ************************************************************************
ok: [20.0.0.13]
TASK [useradd mysql] **************************************************************************
ok: [20.0.0.13]
TASK [sudoers] ********************************************************************************
changed: [20.0.0.13]
TASK [ping] ***********************************************************************************
ok: [20.0.0.13]
PLAY RECAP ************************************************************************************
20.0.0.13 : ok=4 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
解決!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/250645.html
標籤:其他
上一篇:機器學習(線性回歸)
下一篇:yum源一鍵腳本
