My enviroment: RHEL 7.4 ansible host
ansible-playbook 2.4.0.0-0.5.rc5.el7
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/site-packages/ansible
executable location = /usr/bin/ansible-playbook
python version = 2.7.5 (default, May 3 2017, 07:55:04) [GCC 4.8.5 20150623 (Red Hat 4.8.5-14)]
pysphere == 0.1.7Ansible:運行vsphere_guest
目標vCenter Server的WinRM的超時問題是Windows 2012R2,
我能成功使用這些ansible模塊(通過NTLM傳輸協議):
win_ping
vmware_vm_facts
vmware_guest_facts
驗證了連接後,我試圖運行一個包含模塊vsphere_guest的劇本。
在啓動劇本30-40秒,我得到這個超時味精的發揮中止:
[警告]:致命錯誤期間傳送文件回溯(最近通話最後一個):文件「/usr/lib/python2.7/site- 包/ ansible /插件/連接/ winrm.py」,線路273,在_winrm_exec self._winrm_send_input(self.protocol,self.shell_id,command_id的,數據, EOF = is_last)文件 「/usr/lib/python2.7/site-packages/ansible/plugins/connection/winrm.py」,線253,在_winrm_send_input protocol.send_message(xmltodict.unparse(RQ))文件「的/ usr/lib/python2.7/site-packages/winrm/protocol.py「,第207行,在send_message中返回 self.transpor t.send_message(消息)文件 「/usr/lib/python2.7/site-packages/winrm/transport.py」,線202,在send_message提高 WinRMTransportError( 'HTTP',ERROR_MESSAGE)WinRMTransportError:(u'http」 ,u'Bad HTTP響應從服務器返回。代碼500' )
致命:[ndctc1-vcntr01.mso.mci.com]:失敗! => { 「失敗」:真實, 「味精」: 「WinRM的send_input失敗」 }
我迄今所做的:
修改:/usr/lib/python2.7/site-包/ WinRM的/ protocol.py
Changing these variables:
DEFAULT_READ_TIMEOUT_SEC = 300 <-- was 30 (seconds)
DEFAULT_OPERATION_TIMEOUT_SEC = 200 <-- was 20 (seconds)
DEFAULT_MAX_ENV_SIZE = 353600 <-- 153600
沒有修復的錯誤,它只做它顯示出來後...
Playbook:
- hosts: all
gather_facts: false
connection: local
vars_prompt:
- name: "vcenter_hostname"
prompt: "Enter vcenter hostname"
private: no
default: "vcsa"
- name: "vcenter_user"
prompt: "Enter vcenter username"
private: no
- name: "new_hostname"
prompt: "Enter new hostname"
private: no
- name: "vcenter_pass"
prompt: "Enter vcenter password"
private: yes
vars:
datacenter: mydatacenter
cluster: mycluster
notes: 'Created by Ansible'
tasks:
- vsphere_guest:
vcenter_hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_user }}"
password: "{{ vcenter_pass }}"
validate_certs: no
power_on_after_clone: no
guest: "{{ new_hostname }}"
from_template: yes
template_src: mybuild-template
cluster: "{{ cluster }}"
vm_extra_config:
notes: "{{ notes }}"
注:我不知道什麼值爲「template_src」輸入 我有一個名爲「mybuild-template」的虛擬機模板命名它是正確的嗎?
謝謝。
我看不出在這個特定的劇本任何可以引發'winrm'連接。 –
vsphere_guest稱之爲我假設。我在事件管理器中查看了遠程窗口。我看到一個成功的身份驗證,但代碼500可以意味着任何事情,除了「成功」。我正在調查以查看我的登錄帳戶是否已刪除priv來進行更改。因爲我可以執行win_ping,vmware_vm_facts和vmware_guest_facts等模塊。我認爲我也可以使用vsphere_guest。 – gantte
我發現添加了一個缺少的參數,exsi:hostname:和datacenter :,但它在完成播放失敗時沒有任何區別。 – gantte