問題描述
我正在嘗試通過 Ansible 在 Windows Server 2016 上安裝 Oracle Client 12c.
I'm trying to install Oracle Client 12c on a Windows Server 2016 via Ansible.
我嘗試了各種安裝客戶端的選項:
I have tried various options to install the client:
選項 1
- name: "Install Oracle Client"
win_command: "C:\\Temp\\Software\\Oracle-Client\\client\\setup.exe -ignoreSysPrereqs -ignorePrereq -waitforcompletion -showProgress -silent -responseFile C:\\Temp\\Software\\Oracle-Client\\client\\response\\client.rsp"
我得到的錯誤代碼是:
fatal: [windoze]: FAILED! => {
"changed": true,
"cmd": "C:\\Temp\\Software\\Oracle-Client\\client\\setup.exe -ignoreSysPrereqs -ignorePrereq -waitforcompletion -showProgress -silent -responseFile C:\\Temp\\Software\\Oracle-Client\\client\\response\\client.rsp",
"delta": "0:00:10.592896",
"end": "2018-11-22 12:34:33.774009",
"msg": "non-zero return code",
"rc": 1,
"start": "2018-11-22 12:34:23.181113",
"stderr": "",
"stderr_lines": [],
"stdout": "\r\n Exit code of OUI process 1=",
"stdout_lines": [
"",
" Exit code of OUI process 1="
]
}
選項 2
- name: "Install Oracle Client"
win_package:
path: C:\Temp\Software\Oracle-Client\client\setup.exe
creates_path: C:\app\client_1
arguments:
- "-silent -noconsole -waitforcompletion -responseFile C:\\Temp\\Software\\Oracle-Client\\client\\response\\client.rsp"
state: present
我得到的錯誤是:
fatal: [windoze]: FAILED! => {
"changed": false,
"exit_code": 1,
"msg": "unexpected rc from install C:\\Temp\\Software\\Oracle-Client\\client\\setup.exe: see rc, stdout and stderr for more details",
"rc": 1,
"reboot_required": false,
"restart_required": false,
"stderr": "",
"stderr_lines": [],
"stdout": "\r\n Exit code of OUI process 1=",
"stdout_lines": [
"",
" Exit code of OUI process 1="
]
}
選項 3
- name: "Install Oracle Client"
win_shell: "C:\\Temp\\Software\\Oracle-Client\\client\\setup.exe -silent -waitforcompletion -nowelcome -noconfig -debug -force -responseFile C:\\Temp\\Software\\Oracle-Client\\client\\response\\client.rsp"
這次的結果是不同的,其中 RC 為 1,但實際上并沒有在服務器上安裝任何東西
The result is different this time where the RC is 1, but it doesn't actually install anything on the server
changed: [windoze] => {
"changed": true,
"cmd": "C:\\Temp\\Software\\Oracle-Client\\client\\setup.exe -silent -waitforcompletion -nowelcome -noconfig -debug -force -responseFile C:\\Temp\\Software\\Oracle-Client\\client\\response\\client.rsp",
"delta": "0:00:09.554881",
"end": "2018-11-22 12:51:00.633519",
"rc": 0,
"start": "2018-11-22 12:50:51.078638",
"stderr": "",
"stderr_lines": [],
"stdout": "\r\n Exit code of OUI process 1=",
"stdout_lines": [
"",
" Exit code of OUI process 1="
]
}
上述每個命令都在服務器上手動運行,所以我知道這不是命令本身的問題.似乎在運行安裝程序時啟動了一個 java 進程,這在通過 Ansible 調用時會導致此問題.有誰知道我如何通過 Ansible 成功安裝它?
Each of the commands above work manually on the server, so I know that it is not an issue with the commands themselves. It appears that a java process starts when the installer is run which causes this issue when invoked via Ansible. Does anyone know how I can successfully install this via Ansible?
推薦答案
您需要使用 -waitforcompletion 選項,以獲取錯誤 0.此選項僅支持本地執行(例如 bat).這是有效的:
You need use -waitforcompletion option, in order to get error 0. This option support only local execute (for example bat). This is working:
就我而言是:
- name: Execute bat file
script: files/run.bat
args:
creates: C:\app\oracle
運行.bat
C:\OracleClient\client32\setup.exe -silent -nowait -noconsole -waitforcompletion -responseFile "C:\OracleClient\client.rsp"
這里有更多信息
這篇關于在 Windows 機器上通過 Ansible 安裝 Oracle 客戶端 - 退出代碼 259, 1的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!