Установите Oracle Client через Ansible на Windows Machine - код выхода 259, 1 - PullRequest
0 голосов
/ 22 ноября 2018

Я пытаюсь установить Oracle Client 12c на Windows Server 2016 через Ansible.

Я пробовал различные варианты установки клиента:

Опция 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?

Ответы [ 4 ]

0 голосов
/ 23 апреля 2019

Вам необходимо использовать опцию -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"

Здесь больше информации

0 голосов
/ 28 ноября 2018

Даже здесь я сталкиваюсь с той же проблемой. Пожалуйста, помогите мне.

Ошибка: «изменено»: ложь, «код_входа»: 259, «rc»: 259, «reboot_required»: ложно, «restart_required»": false}

STDOUT:

Код выхода процесса OUI 259 =

MSG:

неожиданный rc из установки C: \ Oracle \ client \setup.exe: подробности см. в rc, stdout и stderr

У меня отлично работает вручную в windows server 2016

0 голосов
/ 28 февраля 2019

У меня возникла такая же проблема при установке движка Oracle Databse 12c R2 (12.2.0.1.0).Заключение команды в командный файл решило мою проблему.Вот содержимое моего шаблона jinja install.bat.j2:

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"

Я также заметил следующую строку, описывающую -waitforcompletion параметр в официальном документе Oracle :

ПРИМЕЧАНИЕ: эта опция работает, только если команда вызывается из скрипта;например, если файл .bat содержит файл setup.exe с параметром -waitforcompletion.Этот параметр не будет работать, если он вызывается непосредственно из командной строки.

Надеюсь, это поможет.

0 голосов
/ 22 ноября 2018

Я столкнулся с подобной проблемой при установке клиента 12c в Red Hat.Как уже описал Мэтью, установка завершается, но код выхода равен 1 из-за обязательного сбоя.В моем случае это была необязательная зависимость.Мне не особенно нравится это решение, но если установка определенно прошла успешно, вы можете попробовать добавить в команду следующий аргумент:

-ignoreSysPrereqs Для игнорирования результатов проверок предварительных требований системы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...