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

时间:2018-11-22 12:57:21

标签: windows oracle ansible

我正在尝试通过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成功安装它?

5 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

这里甚至遇到同样的问题。请帮帮我。

错误:     “已更改”:错误,     “退出代码”:259,     “ rc”:259,     “ reboot_required”:否,     “ restart_required”:false }

STDOUT:

OUI进程259的退出代码=

味精:

从安装C:\ Oracle \ client \ setup.exe中出现意外的rc:有关更多详细信息,请参见rc,stdout和stderr

在Windows Server 2016中手动为我工作很好

答案 2 :(得分: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文件。如果直接从命令行提示符下调用,则此选项将不起作用。

希望有帮助。

答案 3 :(得分: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

答案 4 :(得分:0)

似乎在Windows Server上安装Oracle 19c Client时无需单独的批处理脚本(未经早期版本测试):

  - name: Install Oracle 19c Client
    win_command: setup.exe -silent -nowait -waitforcompletion -responseFile C:\Provisioning\Oracle\client.rsp
    args:
      chdir: C:\Provisioning\Oracle\client\

在我第一次尝试时,我省略了参数-waitforcompletion,该参数导致退出代码为259