Не могу запустить adminctl из-за @@ заполнителей в admin.conf из Connections 6.5 IHS - PullRequest
0 голосов
/ 21 февраля 2020

Я установил безголовую установку Connections 6.5, которая сама по себе работает, но не может запустить adminctl в

# cd /opt/IBM/HTTPServer/bin/
# ./adminctl start
Syntax error on line 7 of /opt/IBM/HTTPServer/conf/admin.conf:
Port must be specified

Строка 7 выглядит как переменная, которая неправильно анализируется при настройке IHS

# grep Listen ../conf/admin.conf
Listen @@AdminPort@@

В конфигурационном файле также есть другие переменные @@:

# grep @@ ../conf/admin.conf
Listen @@AdminPort@@
User @@SetupadmUser@@
Group @@SetupadmGroup@@
ServerName cnx65.internal:@@AdminPort@@

Почему эти значения не заменены правильно? Например, Listen 8008 (порт администратора IHS по умолчанию).

Как настроить IHS

Машина подготовлена ​​с использованием ansible, где для настройки подключаемого модуля IHS запускается следующая команда оболочки:

./wctcmd.sh -tool pct -createDefinition -defLocPathname /opt/IBM/WebSphere/Plugins -response /tmp/plugin-response-file.txt -defLocName webserver1

Файл ответов /tmp/plugin-response-file.txt:

configType=remote
enableAdminServerSupport=true
enableUserAndPass=true
enableWinService=false
ihsAdminCreateUserAndGroup=true
ihsAdminPassword=adminihs
ihsAdminPort=8008
ihsAdminUnixUserGroup=ihsadmin
ihsAdminUnixUserID=ihsadmin
mapWebServerToApplications=true
wasMachineHostname=cnx65.internal
webServerConfigFile1=/opt/IBM/HTTPServer/conf/httpd.conf
webServerDefinition=webserver1
webServerHostName=cnx65.internal
webServerOS=Linux
webServerPortNumber=80
webServerSelected=IHS

Как видите, все необходимые переменные для подстановки присутствовали. Таким образом, инструмент должен иметь возможность заменить @@AdminPort@@ на значение 8008.

Ответы [ 2 ]

0 голосов
/ 10 марта 2020

Я слышал от людей из лаборатории в IBM, что webServerSelected=IHS не распознается и должно быть webServerSelected=ihs (строчные буквы)

https://www.ibm.com/support/knowledgecenter/SSAW57_8.5.5/com.ibm.websphere.nd.multiplatform.doc/ae/tins_pctcl_using.html

webServerSelected
Specifies the web server to be configured
Specify only one web server to configure.

apache22
Apache Web Server Version 2.2
64-bit configuration not supported on Windows

apache24
Apache Web Server Version 2.4
64-bit configuration not supported on Windows

ihs
IBM® HTTP Server
64-bit configuration not supported on Windows

...
0 голосов
/ 21 февраля 2020

wctcmd.sh просто создает определение WAS для IHS, но не подготавливает сервер администратора. Нам нужно сделать это вручную с postinst и setupadm, как указано здесь . Кажется, это не просто необходимо для установки zip. Моя установка была выполнена с помощью Installation Manager, и сервер администратора не работает без этих шагов.

Я автоматизировал это в Ansible следующим образом:

- name: Check if admin config is properly parsed
  become: yes
  shell: grep @@AdminPort@@ {{ http_server.target }}/conf/admin.conf
  register: admin_conf_check
  # File not found raise rc = 2, rc = 0 found, rc = 1 not found but file exists
  failed_when: admin_conf_check.rc != 0 and admin_conf_check.rc != 1
  changed_when: False

- set_fact:
    admin_conf_is_configured: "{{ admin_conf_check.rc == 1 }}"

- name: Parse IHS admin config
  become: yes
  # plugin_config_file is defined in http-plugin.yml
  shell: |
    ./bin/postinst -i $PWD -t setupadm -v ADMINPORT={{ http_server.admin_port }} -v SETUPADMUSER=nobody -v SETUPADMGROUP=nobody
    ./bin/setupadm -usr nobody -grp nobody -cfg conf/httpd.conf -plg {{ plugin_config_file }} -adm conf/admin.conf
  args:
    chdir: "{{ http_server.target }}"
  environment:
    LANG: "{{ system_language }}"
  register: ihs_setup
  # setupadm returns 90 if it was successfull: "Script Completed RC(90)"
  failed_when: ihs_setup.rc != 90
  when: not admin_conf_is_configured

- name: Create htpasswd for admin config
  become: yes
  shell: ./bin/htpasswd -c conf/admin.passwd adminihs
  args:
    chdir: "{{ http_server.target }}"
    creates: "{{ http_server.target }}/conf/admin.passwd"
  environment:
    LANG: "{{ system_language }}"
  • http_server.target - базовый путь IHS, например, /opt/IBM/HTTPServer
  • http_server.admin_port значение IBM по умолчанию 8008
  • plugin_config_file установлено на /opt/IBM/WebSphere/Plugins/config/{{ http_server.name }}/plugin-cfg.xml, где http_server.name соответствует имени определения в WAS (webserver1 в моем примере)
  • system_language установлен на en_US.utf8, чтобы убедиться, что мы получаем сообщение об ошибке engli sh для проверки выходных данных (при необходимости), независимо от настроенного языка ОС

После запуска этих инструментов настройки мы можем увидеть что все заполнители были заменены соответствующими значениями:

# grep -i listen ../conf/admin.conf
Listen 8008

Запуск сервера администратора путем выполнения ./adminctl start в каталоге bin теперь работает, как и ожидалось.

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