Linux マシンでインターネットにアクセスせずに ThingWorx Flow をインストールまたはアップグレードするための必要条件
ThingWorx Flow
|
この説明では、次の手順に進む前に各手順が正常に完了したことを前提としています。
|
インターネットに接続されているマシン上
1. yum createrepo および yum-utils をインストールして yumdownloader を有効にします。
a. yum install createrepo
b. yum install yum-utils
2. /etc/yum.repos.d の下に次の 3 つのリポジトリを作成します。
a. rabbitmq_erlang.repo
[rabbitmq_erlang]
name=Erlang repository
baseurl=https://packagecloud.io/rabbitmq/erlang/el/8/$basearch
enabled=1
gpgcheck=0
sslverify=0
skip_if_unavailable=1
b. rabbitmq_server.repo
[rabbitmq_server]
name=RabbitMQ repository
baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/8/$basearch
enabled=1
gpgcheck=0
sslverify=0
skip_if_unavailable=1
c. nginx-repo.repo
[nginx-repo]
name=Nginx repository
baseurl=https://nginx.org/packages/rhel/8/$basearch/
enabled=1
gpgcheck=0
sslverify=0
skip_if_unavailable=1
3. 次のコマンドを実行して Node リポジトリを取得します。
curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash -
これにより、nodejs のダウンロードに必要なリポジトリが yum.repos.d に作成されます。
4. yumdownloader を使用して、次のパッケージを目的のフォルダにダウンロードします。インストールはしないでください。
yumdownloader --destdir=/opt/packages/nginx --resolve nginx
yumdownloader --destdir=/opt/packages/erlang erlang
yumdownloader --destdir=/opt/packages/rabbitmq -–resolve rabbitmq-server
yumdownloader --destdir=/opt/packages/nodejs nodejs
|
nginx-repo と rabbitmq-server には依存のダウンロードを有効にする --resolve フラグも指定されています。
|
5. rabbitmq-server ダウンロードコマンドの一環として logrotate パッケージがダウンロードされたかどうかを確認します。
ダウンロードされていない場合、次のコマンドを使用して明示的にダウンロードします。
yumdownloader --destdir=/opt/packages/rabbitmq logrotate
6. パッケージフォルダごとに、createrepo コマンドを使用してリポジトリを作成し、各パッケージのメタデータを取得します。
createrepo /opt/packages/nginx
createrepo /opt/packages/erlang
createrepo /opt/packages/rabbitmq
createrepo /opt/packages/nodejs
|
手順 7-9 は、nginx ダウンロードによって /opt/packages/nginx に複数の rpm ファイルが作成された場合にのみ実行してください。
|
7. Nginx インストールには複数のパッケージがあります。パッケージリポジトリからモジュールリポジトリに、インターネットアクセスなしでリポジトリを変換します。modulemd-tools パッケージを使用して、リポジトリをモジュールリポジトリに変換する際に使用される modules.yaml コンフィギュレーションファイルを作成します。各パッケージのリポジトリを有効にします。
dnf copr enable frostyx/modulemd-tools-epel
dnf install modulemd-tools
8. packages フォルダから次のコマンドを実行して modules.yaml ファイルを作成します。
repo2module --debug --module-name=nginx --module-stream=stable nginx modules.yaml
デバッグフラグによって、modules.yaml が作成されたパスが出力されます。
9. 取得した yaml コンフィギュレーションファイルを使用して、nginx リポジトリを変換します。
a. modules.yaml ファイルが /opt/packages にあることを確認します。
b. nginx/repodata フォルダのコンテンツを親 nginx フォルダ mv repodata/* に移動します。
c. packages フォルダから次のコマンドを実行します。
modifyrepo_c --mdtype=modules modules.yaml nginx
これにより、新しい modules.yaml.gz が作成されて repomd.xml が完成します。
d. repodata フォルダのすべてのコンテンツを新しい gz ファイルとともに nginx/repodata フォルダに戻し、rpm ファイルと repodata フォルダだけを nginx リポジトリフォルダの下に残します。
10. インターネットにアクセスできない状態で、パッケージフォルダをマシンにコピーします。
インターネットアクセスなしでの ThingWorx Flow インストール専用のサーバーマシン上
1. policycoreutils パッケージが存在することを確認します (RHEL バージョン 8 より下の場合は policycoreutils-python、バージョン 8 以上の場合は policycoreutils-python-utils)。このパッケージが存在しない場合は、インストールします。
次のコマンドを使用してチェックします。
yum list --installed | grep policycoreutils
2. perl モジュールが有効になっていることを確認します。有効になっていない場合は、有効にします。
次のコマンドを使用してチェックします。
dnf module list --enabled | grep perl
3. /etc/yum.repos.d の下で AppStream.repo を探します。これが存在する場合、enabled=0 に設定します。
4. /etc/yum.repos.d の下に次のリポジトリを作成し、file:// を使用してローカル rpm パッケージを指すように baseurl を設定します。
a. rabbitmq_erlang.repo
[rabbitmq_erlang]
name=Erlang repository
baseurl=file:///opt/packages/erlang
enabled=1
gpgcheck=0
sslverify=0
skip_if_unavailable=1
b. rabbitmq_server.repo
[rabbitmq_server]
name=RabbitMQ repository
baseurl=file:///opt/packages/rabbitmq
enabled=1
gpgcheck=0
sslverify=0
skip_if_unavailable=1
c. nginx-repo.repo
[nginx-repo]
name=Nginx repository
baseurl=file:///opt/packages/nginx
enabled=1
gpgcheck=0
sslverify=0
skip_if_unavailable=1
d. nodesource-el8.repo
[nodesource]
name=Node.js Packages for Enterprise Linux 8
baseurl=file:///opt/packages/nodejs
enabled=1
gpgcheck=0
sslverify=0
skip_if_unavailable=1
5. ThingWorx Flow インストーラを実行できるようになりました。
インターネットにアクセスせずにサーバーマシンで ThingWorx Flow をアップグレードするための必要条件:
1. インターネット接続がないので、使用中のサードパーティアプリケーションをすべてアップグレードする必要があります。サードパーティアプリケーションの最新バージョンを入手するには、
インターネットに接続されているマシンでのインストール手順 2-10 を繰り返します。
|
Node をアップグレードする際は、Node のドキュメンテーションで Node インストーラにメジャーバージョンの変更がないか確認し、それに従ってリポジトリを更新する必要があります ( ここの手順 3 のコマンドラインを使用します)。
|
3. ここの手順 5 を繰り返して
ThingWorx Flow のアップグレードインストールを実行します。
トラブルシューティング
1. 必要に応じて perl モジュールを有効にしたり policycoreutils モジュールをインストールしたりするには、インターネット接続が必要です。
2. modulesmd ツールパッケージを使用する代わりに、サンプル
modules.yaml をテンプレートとして使用できます。この
modules.yaml リストは特定の Nginx バージョンと OS バージョンに基づいており、それとは異なる OS を使用した異なるバージョンの Nginx モジュールでは機能しないことがあります。支給されているファイルを使用する場合、そのファイルの下部にある
artifacts/rpms の下で指定されているモジュールを編集する必要があります。
各エントリで、拡張子を省略し、ファイルバージョンの前にバージョンとコロンを追加する必要があります。
たとえば、ファイル nginx-1.14.1-9.module_el8.0.0+184+e34fea82.x86_64.rpm の場合、次のようなエントリを作成する必要があります: nginx-1:1.14.1-9.module_el8.0.0+184+e34fea82.x86_64
artifacts:
rpms:
- nginx-1:1.14.1-9.module_el8.0.0+184+e34fea82.x86_64
- <same action per rpm file>
バージョン番号は yaml のデータセクションから取得する必要があります。
data:
name: nginx
stream: rolling
version: 1
必要に応じて、以下のリンクを参照してください。
3. 以下のコマンドを使用して、リポジトリが正常に作成されていることを確認します。
yum --disablerepo=”*” --enablerepo=”nodesource” list nodejs
yum --disablerepo=”*” --enablerepo=”nginx-repo” list nginx
yum --disablerepo=”*” --enablerepo=”rabbitmq_erlang” list erlang
yum --disablerepo=”*” --enablerepo=”rabbitmq_server” list rabbitmq-server
module.yaml
---
document: modulemd-defaults
version: 1
data:
module: nginx
stream: rolling
profiles:
rolling: [everything]
...
---
document: modulemd
version: 2
data:
name: nginx
stream: rolling
version: 1
context: abcdef12
summary: <auto-generated module summary>
description: >-
<auto-generated module description>
license:
module:
- MIT
content:
- <FILL THIS IN>
profiles:
everything:
rpms:
- nginx
- nginx-all-modules
- nginx-filesystem
- nginx-mod-http-image-filter
- nginx-mod-http-perl
- nginx-mod-http-xslt-filter
- nginx-mod-mail
- nginx-mod-stream
api:
rpms:
- nginx
- nginx-all-modules
- nginx-filesystem
- nginx-mod-http-image-filter
- nginx-mod-http-perl
- nginx-mod-http-xslt-filter
- nginx-mod-mail
- nginx-mod-stream
components:
rpms:
nginx:
rationale: Present in the repository
artifacts:
rpms:
- nginx-1:1.14.1-9.module_el8.0.0+184+e34fea82.x86_64
- nginx-all-modules-1:1.14.1-9.module_el8.0.0+184+e34fea82.noarch
- nginx-filesystem-1:1.14.1-9.module_el8.0.0+184+e34fea82.noarch
- nginx-mod-http-image-filter-1:1.14.1-9.module_el8.0.0+184+e34fea82.x86_64
- nginx-mod-http-perl-1:1.14.1-9.module_el8.0.0+184+e34fea82.x86_64
- nginx-mod-http-xslt-filter-1:1.14.1-9.module_el8.0.0+184+e34fea82.x86_64
- nginx-mod-mail-1:1.14.1-9.module_el8.0.0+184+e34fea82.x86_64
- nginx-mod-stream-1:1.14.1-9.module_el8.0.0+184+e34fea82.x86_64
...