在Windows机器上通过Ansible安装Oracle客户端 - 退出代码259,1

问题描述 投票:0回答:4

我正在尝试通过Ansible在Windows Server 2016上安装Oracle Client 12c。

我尝试了各种选项来安装客户端:

选项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时,结果不同,但实际上并没有在服务器上安装任何东西

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成功安装这个?

windows oracle ansible
4个回答
0
投票

我遇到了在Red Hat上安装12c客户端的类似问题。正如Matthew所描述的那样,安装完成,但由于先决条件失败,退出代码为1。就我而言,它是一个可选的依赖项。我不是特别喜欢这个解决方案,但是如果安装肯定成功,你可以尝试在命令中添加以下参数:

-ignoreSysPrereqs用于忽略系统先决条件检查的结果。


0
投票

即使我在这里面临同样的问题。请帮助我。

错误:“已更改”:false,“exit_code”:259,“rc”:259,“rebo​​ot_required”:false,“restart_required”:false}

STDOUT:

OUI进程的退出代码259 =

味精:

来自安装C:\ Oracle \ client \ setup.exe的意外rc:有关更多详细信息,请参阅rc,stdout和stderr

在Windows Server 2016中手动为我工作


0
投票

我在安装Oracle Databse 12c R2引擎(12.2.0.1.0)时遇到了同样的问题。将命令装入批处理文件解决了我的问题。这是我的install.bat.j2 jinja模板的内容:

setup.exe -silent "ORACLE_HOME={{ oracle_home }}" "ORACLE_BASE={{ oracle_base }}" -showProgress -noconfig -waitforcompletion -responseFile "{{ ansible_env.TEMP }}\oracle_winx64_12201_database\db_install.rsp"

在Ansible剧本中的用法:

   - name: Install Oracle Database 12c Release 2 engine
     win_command: "install.bat"
     args:
       chdir: "{{ ansible_env.TEMP }}\\installation_package"

我还注意到在官方Oracle的document中描述了-waitforcompletion参数的以下行:

注意:此选项仅在从脚本调用命令时有效;例如,如果.bat文件包含带有-waitforcompletion选项的setup.exe文件。如果直接从命令行提示符调用此选项将不起作用。

希望有所帮助。


0
投票

您需要使用-waitforcompletion选项,以获取错误0.此选项仅支持本地执行(例如bat)。这是有效的:

在我的情况是:

- name: Execute bat file
  script: files/run.bat
  args:
    creates: C:\app\oracle

的run.bat

C:\OracleClient\client32\setup.exe -silent -nowait -noconsole -waitforcompletion -responseFile "C:\OracleClient\client.rsp"

Here more information

© www.soinside.com 2019 - 2024. All rights reserved.