ansible控制windows安裝及運行error與解決方法

Q1:因pip版本問題無法安裝kerberos

$ sudo pip install kerberos
running build_ext
building 'kerberos' extension
creating build
creating build/t
........
......
....
..
can`t upgrade pip to the newest version 9.0.1

A1:安裝提示需要先安裝pip升級包

下載pip9.0.1升級包:

$ wget https://pypi.python.org/packages/b6/ac/7015eb97dc749283ffdec1c3a88ddb8ae03b8fad0f0e611408f196358da3/pip-9.0.1-py2.py3-none-any.whl
$ pip install pip-9.0.1-py2.py3-none-any.whl



Q2:安裝kerberos報錯

$ sudo pip install kerberos
running build_ext
building 'kerberos' extension
creating build
creating build/temp.linux-x86_64-2.7
creating build/temp.linux-x86_64-2.7/src
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c src/base64.c -o build/temp.linux-x86_64-2.7/src/base64.o sh: 1: krb5-config: not found
gcc: error: sh:: No such file or directory
gcc: error: 1:: No such file or directory
gcc: error: krb5-config:: No such file or directory
gcc: error: not: No such file or directory
gcc: error: found: No such file or directory
error: command 'gcc' failed with exit status 1
----------------------------------------
Command /usr/bin/python -c "import setuptools;__file__='/etc/ansible/scripts/build/kerberos/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /tmp/pip-Q3eBF1-record/install-record.txt failed with error code 1
Storing complete log in /home/ansible/.pip/pip.log

A2:需要先安裝libkrb5開發包

$ sudo apt-get install libkrb5-dev

安裝後解決


Q3:安裝.Net 3.0以上,升級powershell-3.0後ansible依舊報錯

$ ansible windows -m win_ping -vvv
Using /etc/ansible/ansible.cfg as config file
Using module file /usr/local/lib/python2.7/dist-packages/ansible-2.2.0-py2.7.egg/ansible/modules/core/windows/win_ping.ps1
<192.168.1.11> ESTABLISH WINRM CONNECTION FOR USER: Administrator on PORT 5986 TO 192.168.1.11
192.168.1.11 | UNREACHABLE! => {
    "changed": false, 
    "msg": "ssl: HTTPSConnectionPool(host='192.168.1.11', port=5986): Max retries exceeded with url: /wsman (Caused by ConnectTimeoutError(<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x23d8c10>, 'Connection to 192.168.1.11 timed out. (connect timeout=30)'))", 
    "unreachable": true
}

A3:原因沒有配置winrm

必須將winrm的配置文件設置成下面配置,

> winrm set winrm/config/service '@{AllowUnencrypted="true"}'
> winrm set winrm/config/service/auth '@{Basic="true"}'

wKiom1gFy-bhI6y7AABQOm0lSnU082.png-wh_50



Q4:ansible控制Windows主機error1

$ ansible windows -m win_ping -vvv
Using /etc/ansible/ansible.cfg as config file
Using module file /usr/local/lib/python2.7/dist-packages/ansible-2.2.0-py2.7.egg/ansible/modules/core/windows/win_ping.ps1
<192.168.30.150> ESTABLISH WINRM CONNECTION FOR USER: Administrator on PORT 5986 TO 192.168.30.150
192.168.30.150 | UNREACHABLE! => {
    "changed": false, 
    "msg": "ssl: [Errno 1] _ssl.c:504: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed", 
    "unreachable": true
}

A4:

將配置文件/etc/ansible/hosts端口5986改成5985,即可解決。

[windows:vars]
ansible_ssh_port=5985


原因:

 DefaultPorts

 HTTP = 5985

 HTTPS = 5986

上述錯誤是因爲ssl選項是關着的


Q5:Win_7_x64 安裝Windows6.1-KB2506143-x64.msu 提示“此更新不適應於您的計算機”

A5:安裝.Net Framework 4.0(3.0以上)即可解決


Q6:執行ansible命令出現OutOfMemory錯誤

可以執行win_ping,但是傳文件會報錯:

ansible windows -m win_copy -a 'src=/opt/test/123.txt dest=F:\logs'
192.168.1.173 | UNREACHABLE! => {
  "changed": false, 
  "msg": "Authentication or permission failure. In some cases, you may have been able to authenticate and did not have permissions on the remote directory. Consider changing the remote temp path in ansible.cfg to a path rooted in \"/tmp\". Failed command was: PowerShell -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -EncodedCommand UwBlAHQALQBTAHQAcgBpAGMAdABNAG8AZABlACAALQBWAGUAcgBzAGkAbwBuACAATABhAHQAZQBzAHQACgAoAE4AZQB3AC0ASQB0AGUAbQAgAC0AVAB5AHAAZQAgAEQAaQByAGUAYwB0AG8AcgB5ACAALQBQAGEAdABoACAAJABlAG4AdgA6AHQAZQBtAHAAIAAtAE4AYQBtAGUAIAAiAGEAbgBzAGkAYgBsAGUALQB0AG0AcAAtADEANQAwADUANwA4ADcANgA3ADMALgAwADIALQA2ADEAMwAzADcAMgA2ADgAMwAyADAANQA4ADcAIgApAC4ARgB1AGwAbABOAGEAbQBlACAAfAAgAFcAcgBpAHQAZQAtAEgAbwBzAHQAIAAtAFMAZQBwAGEAcgBhAHQAbwByACAAJwAnADsACgBJAGYAIAAoAC0AbgBvAHQAIAAkAD8AKQAgAHsAIABJAGYAIAAoAEcAZQB0AC0AVgBhAHIAaQBhAGIAbABlACAATABBAFMAVABFAFgASQBUAEMATwBEAEUAIAAtAEUAcgByAG8AcgBBAGMAdABpAG8AbgAgAFMAaQBsAGUAbgB0AGwAeQBDAG8AbgB0AGkAbgB1AGUAKQAgAHsAIABlAHgAaQB0ACAAJABMAEEAUwBUAEUAWABJAFQAQwBPAEQARQAgAH0AIABFAGwAcwBlACAAewAgAGUAeABpAHQAIAAxACAAfQAgAH0A, exited with result 1", 
  "unreachable": true
}
執行命令也報錯:
ansible windows -m win_shell -a "java -version"
192.168.1.173 | FAILED | rc=-532462766 >>

An error has occurred that was not properly handled. Additional information is shown below. The Windows PowerShell process will exit.

Unhandled Exception: OutOfMemoryException.

A6:對被控windows主機打一個關於WMF 3.0 的hotfix,鏈接如下:

https://support.microsoft.com/en-us/help/2842230/-out-of-memory-error-on-a-computer-that-has-a-customized-maxmemorypers


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章