IBM Installation Manager headless imcl tool throw «Недопустимое расположение конфигурации: блокировка невозможна» только в Ansible - PullRequest
0 голосов
/ 28 мая 2020

Я хочу проверить, доступен ли пакет в репозиториях Менеджера установки, используя Ansible:

- set_fact:
    tools_dir: "{{ install_dir_cnx }}/core/IM/linux/tools"
    repos_paths: "{{ install_dir_cnx }}/core/HCLConnections{% if cnx.install_fixpacks %},{{ cnx.fixpack_install_dir }}/updates{% endif %}"

- name: Check if the requested version {{ cnx.offering_version }} is avaliable by the provided repos
  become: yes
  register: avaliable_packages
  shell: "./imcl listAvailablePackages -repositories '{{ repos_paths }}'"
  changed_when: False
  failed_when: "cnx.offering_version not in avaliable_packages.stdout"
  args:
    chdir: "{{ tools_dir }}"

Это приведет к следующему вызову, который работает, когда выполняется вручную в оболочке на том же самом server:

cd /opt/install/cnx/core/IM/linux/tools/
# ./imcl listAvailablePackages -repositories '/opt/install/cnx/core/HCLConnections,/opt/install/cnx/fp/updates'
com.ibm.connections_6.5.0.0_20191121_2323
com.ibm.connections_6.0.0.0_20170314_1528
com.ibm.connections_6.5.0.0_20200319_2231

cnx.offering_version установлен в 6.5.0.0_20200319_2231, поэтому в этом случае проверка должна пройти. Однако в Ansible я получил ошибку разрешения на том же сервере:

TASK [cnx : Check if the requested version 6.5.0.0_20200319_2231 is avaliable by the provided repos] **************************************************************************************************************************************************************************
Thursday 28 May 2020  19:12:57 +0200 (0:00:00.172)       0:01:23.448 ********** 
fatal: [10.17.3.3]: FAILED! => changed=false 
  cmd: whoami; /opt/install/cnx/core/IM/linux/tools/imcl listAvailablePackages -repositories '/opt/install/cnx/core/HCLConnections,/opt/install/cnx/fp/updates' -Dosgi.locking=none
  delta: '0:00:05.959341'
  end: '2020-05-28 17:14:00.560728'
  failed_when_result: true
  msg: non-zero return code
  rc: 15
  start: '2020-05-28 17:13:54.601387'
  stderr: |-
    Invalid Configuration Location:
    Locking is not possible in the directory "/opt/install/cnx/core/IM/linux/configuration/org.eclipse.osgi". A common reason is that the file system or Runtime Environment does not support file locking for that location. Please choose a different location, or disable file locking passing "-Dosgi.locking=none" as a VM argument.
    /opt/install/cnx/core/IM/linux/configuration/org.eclipse.osgi/.manager/.fileTableLock (Keine Berechtigung)
  stderr_lines: <omitted>
  stdout: root
  stdout_lines: <omitted>

Но почему? Как видите, команда whoami подтверждает, что я root. Вызову ansible должно быть разрешено работать с файлом блокировки

# ls -lh /opt/install/cnx/core/IM/linux/configuration/org.eclipse.osgi/.manager/.fileTableLock
-r-xr-xr-x 1 root root 0 28. Mai 2020  /opt/install/cnx/core/IM/linux/configuration/org.eclipse.osgi/.manager/.fileTableLock

Передача -Dosgi.locking=none также не имеет никакого эффекта. Однако главное, что я не могу понять, почему эта ошибка просто выдается при запуске Ansible, в то время как команда работает нормально без каких-либо ошибок при выполнении вручную. Я также попытался удалить файл вручную, все та же ошибка.

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