パッケージを使用してSwarmのインストールと構成を行う
Helix Swarmには、2つのディストリビューションパッケージフォーマットがあります。1つは、Ubuntuシステム用のDebian (.deb
)パッケージで、もう1つは、CentOS and RedHat
Enterprise Linux (RHEL)用のRPM RPMパッケージマネージャ。Red Hat Enterprise Linux、Fedora Project、CentOS ProjectといったLinuxディストリビューションのインストール、更新、ソフトウェアパッケージの削除を管理するためのツールおよびパッケージフォーマットです。 (.rpm
)パッケージです。
パッケージを管理するツールでは各パッケージの依存関係が考慮されるため、ディストリビューションパッケージを使用すると、ソフトウェアのインストール、更新、削除を 簡単に行うことができます。
Swarmでは、P4AUTHを使用するように設定されているHelixサーバはサポートされていません。詳しくは、『Helix Coreサーバ管理者ガイド』の「集中認証サーバ(P4AUTH)」を参照してください。
Swarmパッケージは、Ubuntu 18.04 LTS、Ubuntu 20.04 LTS、CentOS/RHEL 7、CentOS/RHEL 8で使用することができます。
-
CentOS: 最新リリースを使用することをお勧めします。このリリースのSwarmに対応する最新リリースは、7.9と8.3です。
-
RHEL: 動作が安定している最新リリースを使用することをお勧めします。このリリースのSwarmに対応する最新リリースは、7.9と8.2です。
Swarmパッケージはその他の対応ディストリビューションパッケージ上でも機能しますが、テストは行っていません。
- 「Helix Coreサーバ」という擁護は、Helixサーバ マシン(P4D)、プロキシ、ブローカ、レプリカ、エッジサーバ、コミットサーバを指す場合があります。 説明を簡単にするため、「Helixサーバ 」という用語は、Helix Coreサーバマシンのすべての構成を表す目的で使用するものとします。
- Swarmは、Helixサーバ(P4D)とコミットサーバに接続することができます。
- Swarmを、Helixブローカ、Helixプロキシ、Helixエッジサーバ、転送レプリカ、読み取り専用レプリカサーバに接続しないでください。
複数のHelixサーバ (P4D)に接続できるようにSwarmを設定する方法については、「複数のHelixサーバインスタンス」を参照してください。
コミットエッジアーキテクチャ用に設定されているHelixサーバに接続するようにSwarmを設定する方法については、「コミットエッジの展開」を参照してください。
インストール
-
Swarmをインストールする前に、ランタイム依存関係を確認する必要があります。詳細については、「ランタイム依存関係」を参照してください。
-
Swarmをアップグレードする前に、PHPの要件を確認してください。詳細については、「PHP」」を参照してください。
- Swarmをインストールする前に、Helixサーバの要件を確認してください。詳細については、「Helix Coreサーバの要件」を参照してください。
-
SwarmをホストするサーバとHelix Coreサーバをホストするサーバ上で、Perforceパッケージのリポジトリを構成します。
重要Helix Coreサーバをホストするサーバでパッケージを使用できない場合は(Windowsが稼働しているサーバなど)、この手順をスキップしてください。
rootユーザとして、以下に示す各OSディストリビューションで操作を実行します。
UbuntuUbuntu 18.04:以下の内容で
/etc/apt/sources.list.d/perforce.list
ファイルを作成します。deb http://package.perforce.com/apt/ubuntu/ bionic release
Ubuntu 20.04:以下の内容で
/etc/apt/sources.list.d/perforce.list
ファイルを作成します。deb http://package.perforce.com/apt/ubuntu/ focal release
CentOS/RHELCentOS/RHEL 7:以下の内容で
/etc/yum.repos.d/perforce.repo
ファイルを作成します。[Perforce]
name=Perforce
baseurl=http://package.perforce.com/yum/rhel/7/x86_64/
enabled=1
gpgcheck=1CentOS/RHEL 8:以下の内容で
/etc/yum.repos.d/perforce.repo
ファイルを作成します。[Perforce]
name=Perforce
baseurl=http://package.perforce.com/yum/rhel/8/x86_64/
enabled=1
gpgcheck=1 -
SwarmをホストするサーバとHelix Coreサーバをホストするサーバで、Perforceパッケージの署名キーをインポートします。
重要Helixサーバをホストするサーバでパッケージを使用できない場合は(Windowsが稼働しているサーバなど)、この手順をスキップしてください。
以下に示す各OSディストリビューションで操作を実行します。
Ubuntu:wget -qO - https://package.perforce.com/perforce.pubkey | sudo apt-key add -
sudo apt-get updateCentOS/RHEL (以下のコマンドをrootユーザとして実行):rpm --import https://package.perforce.com/perforce.pubkey
署名キーの妥当性を確認する方法については、https://www.perforce.com/perforce-packagesを参照してください。
-
SwarmをホストするサーバにメインのSwarmパッケージをインストールします。
以下に示す各OSディストリビューションで操作を実行します。
Ubuntusudo apt-get install helix-swarm
CentOS以下に示すバージョンのCentOSディストリビューションで操作を実行します。
CentOS 7.9 (以下のコマンドをrootユーザとして実行):- epel-release-latest-7.noarch.rpmリポジトリ構成パッケージを展開します。これにより、SwarmからEPELパッケージにアクセスできるようになります。
- Remiリポジトリ構成パッケージを展開します(このパッケージを展開する必要があるのは、初めてPHP 7.xにアップグレードする場合だけです)。これにより、SwarmからPHP 7.xにアクセスできるようになります。
- yum-utilsパッケージをインストールします。これにより、yum-config-managerコマンドを実行できるようになります。
- PHPのデフォルトバージョン/単一バージョンをインストールします。
- remi-php*を無効にします。
- PHP 7.4を有効にします。
- PHPをアップグレードします。
yum-config-manager --disable 'remi-php*'
yum-config-manager --enable remi-php74
yum update
- Swarmをインストールし、画面の指示に従い、RemiとEPEL用のGPGキーをインポートします。
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
ヒントRemiリポジトリが展開されていない場合、次の手順を実行すると、以下に示すようなエラーが表示されます。
yum install yum-utils
yum install helix-swarm
注意Webサーバにアクセスできるように、ファイアウォールの調整が必要になる場合があります。
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld後でHTTPSを有効にする場合は、rootユーザとして以下のコマンドを実行します。
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalldCentOS 8.3 (以下のコマンドをrootユーザとして実行):- epel-release-latest-8.noarch.rpmリポジトリ構成パッケージを展開します。これにより、SwarmからEPELパッケージにアクセスできるようになります。
- Remiリポジトリ構成パッケージを展開します(このパッケージを展開する必要があるのは、初めてPHP 7.xにアップグレードする場合だけです)。これにより、SwarmからPHP 7.xにアクセスできるようになります。
- yum-utilsパッケージをインストールします。これにより、yum-config-managerコマンドを実行できるようになります。
- PHPのデフォルトバージョン/単一バージョンをインストールします。
- PHP 7.4用のモジュールストリームを有効にします。
- PHP 7.4をインストールします。
- PHPをアップグレードします。
dnf module reset php
dnf module install php:remi-7.4
dnf update
- Swarmをインストールし、画面の指示に従い、RemiとEPEL用のGPGキーをインポートします。
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
ヒントRemiリポジトリが展開されていない場合、次の手順を実行すると、以下に示すようなエラーが表示されます。
dnf install yum-utils
yum install helix-swarm
注意Webサーバにアクセスできるように、ファイアウォールの調整が必要になる場合があります。
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld後でHTTPSを有効にする場合は、rootユーザとして以下のコマンドを実行します。
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalldRHEL以下に示すバージョンのRHELディストリビューションで操作を実行します。
RHEL 7.9 (以下のコマンドをrootユーザとして実行):- epel-release-latest-7.noarch.rpmリポジトリ構成パッケージを展開します。これにより、SwarmからEPELパッケージにアクセスできるようになります。
- Remiリポジトリ構成パッケージを展開します(このパッケージを展開する必要があるのは、初めてPHP 7.xにアップグレードする場合だけです)。これにより、SwarmからPHP 7.xにアクセスできるようになります。
- yum-utilsパッケージをインストールします。これにより、yum-config-managerコマンドを実行できるようになります。
- 一部の依存関係に対してオプションのチャンネルを有効にします。
- PHPのデフォルトバージョン/単一バージョンをインストールします。
- remi-php*を無効にします。
- PHP 7.4を有効にします。
- PHPをアップグレードします。
yum-config-manager --disable 'remi-php*'
yum-config-manager --enable remi-php74
yum update
- Swarmをインストールし、画面の指示に従い、RemiとEPEL用のGPGキーをインポートします。
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
ヒントリポジトリを有効にしなかった場合、次の手順を実行すると、以下に示すようなエラーが表示されます。
Error: Package: helix-swarm-2020.2-1845646.el6.x86_64 (perforce)
Requires: rh-php74yum install yum-utils
subscription-manager repos --enable=rhel-7-server-optional-rpms
yum install helix-swarm
注意Webサーバにアクセスできるように、ファイアウォールの調整が必要になる場合があります。
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld後でHTTPSを有効にする場合は、rootユーザとして以下のコマンドを実行します。
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalldRHEL 8.2 (以下のコマンドをrootユーザとして実行):- epel-release-latest-8.noarch.rpmリポジトリ構成パッケージを展開します。これにより、SwarmからEPELパッケージにアクセスできるようになります。
- Remiリポジトリ構成パッケージを展開します(このパッケージを展開する必要があるのは、初めてPHP 7.xにアップグレードする場合だけです)。これにより、SwarmからPHP 7.xにアクセスできるようになります。
- yum-utilsパッケージをインストールします。これにより、yum-config-managerコマンドを実行できるようになります。
- PHPのデフォルトバージョン/単一バージョンをインストールします。
- PHP 7.4用のモジュールストリームを有効にします。
- PHP 7.4をインストールします。
- PHPをアップグレードします。
dnf module reset php
dnf module install php:remi-7.4
dnf update
- Swarmをインストールし、画面の指示に従い、RemiとEPEL用のGPGキーをインポートします。
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
ヒントリポジトリを有効にしなかった場合、次の手順を実行すると、以下に示すようなエラーが表示されます。
Error: Package: helix-swarm-2020.2-1845646.el6.x86_64 (perforce)
Requires: rh-php74dnf install yum-utils
yum install helix-swarm
注意Webサーバにアクセスできるように、ファイアウォールの調整が必要になる場合があります。
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld後でHTTPSを有効にする場合は、rootユーザとして以下のコマンドを実行します。
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld -
Helix CoreサーバをホストするサーバにSwarmのトリガパッケージをインストールします。
このパッケージのインストール先となるサーバ(Helix Coreサーバをホストしているサーバ)は、Swarmをホストしているサーバの場合もあれば、ネットワーク上に存在する別のサーバの場合もあります。
重要Helixサーバをホストするサーバでパッケージを使用できない場合は(Windowsが稼働しているサーバなど)、適切なSwarmトリガスクリプトを
/opt/perforce/swarm/p4-bin/scripts
からコピーして、Helixサーバをホストするサーバに保存する必要があります。swarm-trigger.pl
は、LinuxシステムとWindowsシステムの両方で使用することができます。コピーが完了したら、トリガスクリプトを構成する必要があります。詳細については、「Swarm用のHelix Coreサーバの構成」を参照してください。以下に示す各OSディストリビューションで操作を実行します。
Ubuntu:sudo apt-get install helix-swarm-triggers
CentOS/RHEL (以下のコマンドをrootユーザとして実行):yum install helix-swarm-triggers
重要このパッケージをインストールすると、構成ファイルが
/opt/perforce/etc/swarm-trigger.conf
にインストールされますが、この構成ファイルを編集する必要があります。このファイルの設定方法については、「Swarm用のHelix Coreサーバの構成」を参照してください。 -
任意指定: SwarmをホストするサーバにSwarmオプションパッケージをインストールします。
この手順は必須ではありませんが、このオプションパッケージをインストールすると、ImageMagickモジュールとLibreOffice Swarmモジュールで必要な依存関係がインストールされます。これらのモジュールを使用すると、各種の画像や社内文書のプレビューを表示することができます。
以下に示す各OSディストリビューションで操作を実行します。
Ubuntu:sudo apt-get install helix-swarm-optional
CentOS/RHEL (以下のコマンドをrootユーザとして実行):yum install helix-swarm-optional
- インストール後の設定手順を実行します。
インストール後の設定
CentOS/RHELの場合のみ:
-
Swarm 2019.1~2020.1: これらのバージョンのSwarmでは、CentOS/RHEL 7用のSCLリポジトリのPHPパッケージが使用されていました。これは、CentOS/RHELの標準バージョンよりも新しいバージョンのPHPにアクセスできるようにするためです。この場合、Apache用のhttpd24-httpdパッケージを使用する必要がありました。必要なパッケージは、すべて/opt/rhにインストールされていました。
Swarm 2020.2: このバージョンのSwarmでは、CentOS/RHEL 7と8用のRemiリポジトリが使用されます。これにより、標準のファイルシステム構造にPHP7.4がインストールされます。そのため、Apache用の旧バージョンのhttpd24-httpdが必要なくなり、標準システムバージョンのApacheが再度使用されることになりました。
バージョン2019.1から2020.1までのSwarmでは、以下の場所にSCL Apacheサイト構成ファイルがインストールされていました。
/opt/rh/httpd24/root/etc/httpd/conf.d/perforce-swarm-site.conf
この構成ファイルが存在する状態でSwarmをバージョン2020.2にアップグレードすると、この構成ファイルが/etc/httpd/conf.d/perforce-swarm-site.confディレクトリにコピーされます(このディレクトリ内にファイルが存在しない場合)。また、このファイルが上書きされ、参照先が/var/log/httpd24から/var/log/httpdに変更されます。
Swarm用のサイト構成ファイルが/etc/httpdディレクトリ内に既に存在する場合、構成ファイルのコピー操作と上書き操作は実行されません。
アップグレードが完了すると、httpd24-httpdが無効になります。
-
Apacheサーバの起動時にApache HTTPサーバのLinuxテストページが表示されないようにするには、/etc/httpd/conf.d/ディレクトリのwelcome.confファイルの内容をコメント化します。
-
Apacheサーバの起動時に、Swarmの構成情報の代わりにApache HTTPサーバのサンプル構成情報が読み込まれないようにするため、/etc/httpd/conf.d/ディレクトリ内のautoindex.confファイルの名前をz-autoindex.confなどに変更してください。この処理が必要になる理由は、/etc/httpd/conf.d/ディレクトリ内で最初に見つかった構成ファイル(アルファベット順)がApacheによって実行されないようにする必要があるためです。実行する必要があるのは、perforce-swarm-site.confファイルです。
helix-swarmパッケージをインストールしたら、追加の設定を行う必要があります。以下の手順を実行します。
-
Swarmをホストするサーバで、Swarm設定スクリプトを使用してSwarmのセットアップを行います。
重要HelixサーバがHelix認証サービス用に設定されている場合は、Helixサーバへの接続の確立時にパスワードへのフォールバックを許可するよう、Helixサーバを一時的に構成する必要があります。Helixサーバで以下のコマンドを実行して、パスワードへのフォールバックを有効にします。
p4 configure set auth.sso.allow.passwd=1
注意Swarm設定スクリプトは、いくつかの方法で使用することができます。ここでは、対話式インストールによる最も単純な設定方法について説明します。以下のコマンドを実行すると、オプションを確認することができます。
sudo /opt/perforce/swarm/sbin/configure-swarm.sh -h
以下のコマンドを使用して、対話式インストールを実行します。
sudo /opt/perforce/swarm/sbin/configure-swarm.sh
設定スクリプトにより、以下のサマリ情報が表示されます。
------------------------------------------------------------
configure-swarm.sh: Thu Aug 23 11:29:49 PDT 2018: commencing configuration of Swarm
Summary of arguments passed:
Interactive? [yes]
Force? [no]
P4PORT [(not specified)]
Swarm user [(not specified, will suggest swarm)]
Swarm password [(not specified)]
Email host [(not specified)]
Swarm host [(not specified, will suggest myhost)]
Swarm port [80]
Swarm base URL [(default (empty))]
Create Swarm user? [no]
Super user [(not specified)] * not needed
Super password [(not specified)] * not needed -
構成スクリプトの情報を指定します。
サマリ情報の下に、以下の情報を指定するためのプロンプトが表示されます。
-
フォーム内の
P4PORT
の値を指定します: my-helix-core-server:1666No P4PORT specified
Swarm requires a connection to a Helix Core Server. Please supply the P4PORT to connect to.
Helix Core Server address (P4PORT):Helixサーバのホスト名とポートを指定します。P4PORTの値が指定されている場合は、その値がデフォルト値として使用されます。設定スクリプトにより、ホストに接続できるかどうかが検証されます。
-response: [myp4host:1666]
Checking P4PORT [myp4host:1666]...
-P4 command line to use: [/opt/perforce/bin/p4 -p myp4host:1666]
Attempting connection to [myp4host:1666]...
-connection successful:
Server address: myp4host:1666
Server version: P4D/LINUX26X86_64/2017.2/1622831 (2017/10/24)
Server license: 10000 users (support ends 2019/05/16)
Server license-ip: 192.168.0.1重要コミットエッジアーキテクチャを使用してHelix Coreサーバを展開した場合は、Swarmのポート値がコミットサーバを指していることを確認してください。
詳細については、『Helix Coreサーバ管理者ガイド』の「コミットエッジ」の章を参照してください。
-
Helix Coreサーバで、adminレベルの権限を持つ標準ユーザのユーザIDとパスワードを指定します。
Checking Swarm user credentials...
No Swarm user specified
Swarm requires a Helix user account with 'admin' rights.
Please provide a username and password for this account.
If this account does not have 'admin' rights, it will
be set for this user.
Helix username for the Swarm user [swarm]:ユーザIDを入力します。デフォルト値は「swarm」です。
注意Helixサーバのユーザアカウントにsuper権限が設定されている場合、別のユーザが作成したレビューがコミットされると、superユーザはそのレビューをクリーンアップすることができます。詳細については、「レビューのクリーンアップ」を参照してください。
-response: [swarm]
Helix password or login ticket for the Swarm user (typing hidden):ユーザIDに対応するログインチケット(パスワード)を入力します。
重要HelixサーバがHelix認証サービス用に設定されている場合は、Swarmユーザに対して長期間のログインチケットを使用する必要があります。
注意別のシェルで以下のコマンドを実行すると、ログインチケットを取得することができます。
$ p4 -p myp4host:1666 -u userid login -p
1年未満で期限切れになるログインチケットを入力すると、警告が表示されます。
Checking Swarm user credentials...
-checking if user [swarm] exists in [myp4host:1666]...
-user exists
Obtaining Helix login ticket for [swarm] in [myp4host:1666]...
-login ticket obtained
Checking user [swarm]'s ticket against [myp4host:1666]...
-login ticket is good
Checking user [swarm] has at least access level [admin]...
-user has maximum access level [admin]
-user meets minimum access level [admin] -
Swarm UI のホスト名を指定します。
Swarm needs a distinct hostname that users can enter into their browsers to
access Swarm. Ideally, this is a fully-qualified domain name, e.g.
'swarm.company.com', but it can be just a hostname, e.g. 'swarm'.
Whatever hostname you provide should be Swarm-specific and not shared with
any other web service on this host.
Note that the hostname you specify typically requires configuration in your
network's DNS service. If you are merely testing Swarm, you can add a
hostname->IP mapping entry to your computer's hosts configuration.
Hostname for this Swarm server [myhost]:注意現在のホスト名がデフォルト値になります。この時点ではDNS設定はまだ存在していないため、指定したホスト名が実際に機能するかどうかについて、設定スクリプトで検証されることはありません。
-
メールリレーホストを指定します。
Swarm requires an mail relay host to send email notifications.
Mail relay host (e.g.: mx.yourdomain.com):注意指定したメールリレーホストが実際にSMTP接続を許可するかどうかについて、設定スクリプトで検証されることはありません。
これらの情報を指定すると、設定スクリプトによって以下の手順が実行されます(インストールされているPHPとApacheのバージョンにより、一部の手順が異なる場合があります)。
Configuring Cron... `/opt/perforce/etc/swarm-cron-hosts.conf.new' -> `/opt/perforce/etc/swarm-cron-hosts.conf' -updated cron configuration file with supplied Swarm host Configuring Swarm installation... -composed new Swarm config file contents `/opt/perforce/swarm/data/config.php.new' -> `/opt/perforce/swarm/data/config.php' -wrote new Swarm config file to reflect new configuration -identified Apache user:group: [www-data:www-data] -setting permissions on the Swarm data directory... -ensured file permissions are set properly Configuring Apache... -identified Swarm virtual host config file: [/etc/apache2/sites-available/perforce-swarm-site.conf] -identified Apache log directory: [/var/log/apache2] -updated the vhost file to set Apache log directory -updated the vhost file to reflect Swarm host -checking Apache modules... Enabling module rewrite. Module php7 already enabled To activate the new configuration, you need to run: service apache2 restart -proper Apache modules are enabled -enabling Swarm Apache site... Enabling site perforce-swarm-site.conf. To activate the new configuration, you need to run: service apache2 reload -Swarm Apache site enabled -restarting Apache... -Apache restarted configure-swarm.sh: Thu Aug 23 11:31:36 PDT 2018: completed configuration of Helix Swarm :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: :: Swarm is now configured and available at: :: :: http://myhost/ :: :: You may login as the Swarm user [swarm] using the password :: you specified. :: :: Please ensure you install the following package on the server :: hosting your Helix Core Server. :: :: helix-swarm-triggers :: :: (If your Helix Core Server is hosted on an OS and :: platform that is not compatible with the above package, you can :: also install the trigger script manually.) :: :: You will need to configure the triggers, as covered in the Swarm :: documentation: :: :: http://www.perforce.com/perforce/doc.current/manuals/swarm/setup.perforce.html :: :: Documentation for optional post-install configuration, such as :: configuring Swarm to use HTTPS, operate in a sub-folder, or on a :: custom port, is available: :: :: https://www.perforce.com/perforce/doc.current/manuals/swarm/setup.post.html :: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
注意他のWebサービスを提供しないホストにSwarmをインストールした場合は、Apacheのデフォルトのサイト設定を無効にすることをお勧めします。デフォルト設定を無効にすることにより、SwarmをホストするWebサーバにアクセスするためのホスト名でどのような値を指定しても、Swarmが表示されるようになります。
Apacheのデフォルトのサイト設定を無効にすると、既存のWebサービスやコンテンツも無効になる可能性があることに注意してください。
Ubuntuホスト上で以下のコマンドを実行するだけで、Apacheのデフォルトサイト設定を無効にすることができます。次のコマンドを実行します。
$ sudo a2dissite 000-default
CentOSホストまたは非標準のApacheインストール環境の場合、Apache構成を手動で変更する必要があります。手動で変更を行うには、Apache構成を詳しく理解している必要があります。詳細については、https://httpd.apache.org/docs/2.4/configuring.htmlを参照してください。
-
-
CentOS/RHELの場合のみ: Swarmに対して、CentOS/RHEL上のSELinuxを構成します。詳細については、CentOS/RHEL上のSELinuxの構成」を参照してください。
-
これで、Swarmの基本的な構成が完了しました。
重要HelixサーバがHelix認証サービス用に設定されている場合は、すべてのユーザにIDプロバイダ(IdP)を使用した認証を強制するには、パスワードへのフォールバックを無効にします。Helixサーバでパスワードへのフォールバックを無効にするには、以下のコマンドを実行します。
p4 configure set auth.sso.allow.passwd=0
-
トリガトークンを確立します。詳しくは、「トリガトークンを確立する」を参照してください。
CentOS/RHEL上のSELinuxの構成
Swarmでは、CentOS/RHEL 7とCentOS/RHEL 8のSELinuxがサポートされています。SELinuxは、Linuxディストリビューションのセキュリティを強化する高度なアクセス制御メカニズムです。
SELinuxは、以下の示す3つのモードのいずれかで動作します。
- enforcing: このモードの場合、定義されているセキュリティポリシーと一致しない操作がブロックされ、ログに記録されます。これが、SELinuxのデフォルトモードです。
- permissive: このモードの場合、定義されているセキュリティポリシーと一致しない操作がログに記録されますが、ブロックされることはありません。
- disabled: このモードの場合、SELinuxがオフになり、操作がブロックされることもログに記録されることもありません。
SELinuxとSwarmを正しく連携させるには、以下の設定手順に従い、SELinuxを有効にする必要があります。
SELinuxの設定を行う前に、Helix Swarmパッケージのインストール手順とインストール後の設定手順を実行する必要があります。
SELinuxをenforcingモードに設定する
rootユーザとして、以下のコマンドを実行します。
- semanage構成ツールが含まれているパッケージをインストールします。このツールを使用してSELinuxが構成されます。
- CentOS/RHEL 7:
policycoreutils-python
パッケージをインストールします。 - CentOS/RHEL 8:
policycoreutils-python-utils
パッケージをインストールします。 - 以下のコマンドを実行して、SELinuxの現在のモードを確認します。
- SELinuxの現在のモード(
enforcing
、permissive
、またはdisabled
)が表示されます。- モードが正しく設定されていない場合は、viエディタなどを使用して
/etc/selinux/config
ファイルを編集します。 - 上記のconfigファイルで、
SELinux=
をenforcing
に設定します。 - configファイルを保存します。
- サーバを再起動して、SELinuxのモードを変更します。
root $ vi /etc/selinux/config
- モードが正しく設定されていない場合は、viエディタなどを使用して
- httpdプロセスによる/opt/perforce/swarmの内容の読み取りと書き込みを許可します。
- httpdプロセスがP4DやRedisなどのネットワークサービスに接続できるようにします。
- p4-bin内のファイルをhttpdプロセスで実行できるようにします。
- Redisの実行に関する制約事項を削除し、systemdで起動できるようにします。
- 以下のコマンドを実行して、サーバを再起動します。
- Swarmにログインできるかどうかを確認します。
- 任意: ファイルシステムのラベルを変更します。ラベルを変更する前に、以下の注意事項を確認してください。
- サーバを再起動します。
- Swarmにログインできるかどうかを確認します。
- これで、SELinuxがSwarm用に設定されました。
以下に示す各OSディストリビューションで操作を実行します。
root $ yum install policycoreutils-python
root $ yum install policycoreutils-python-utils
root $ getenforce
root $ semanage fcontext -a -t httpd_sys_rw_content_t "/opt/perforce/swarm(/.*)?"
root $ restorecon -R /opt/perforce/swarm
root $ setsebool -P httpd_can_network_connect 1
root $ semanage fcontext -a -t httpd_sys_script_exec_t '/opt/perforce/swarm/p4-bin(/.*)?' root $ restorecon -R -v /opt/perforce/swarm/p4-bin
root $ semanage fcontext -a -t bin_t /opt/perforce/swarm/sbin/redis-server-swarm root $ restorecon -v /opt/perforce/swarm/sbin/redis-server-swarm
root $ systemctl restart httpd
ファイルシステムのラベル変更処理には、時間がかかる場合があります。必要な場合にのみ実行することをお勧めします。時間がかかるかどうかは、SELinuxの設定内容によって異なります。Perforceは、ラベルの変更処理にかかる時間ついてアドバイスすることはできません。
root $ touch /.autorelabel
Swarmにログインできない場合は、設定が正しくないことが原因で、SELinuxによってSwarmがブロックされている可能性があります。その場合は、SELinuxの設定に関するトラブルシューティングを実行して、問題の原因を調べる必要があります。
以下のコマンドを実行して、setroubleshoot
パッケージをインストールしてください。このパッケージには、SELinuxのトラブルシューティングで使用されるsealert
が含まれています。
root $ yum install setroubleshoot
sealert
を使用すると、audit.log
のコンテンツを解釈することができます。以下のコマンドを実行します。
root $ sealert -a /var/log/audit/audit.log
エラーメッセージ: 以下のようなエラーメッセージが表示された場合は、仮想マシン(VM)上でCentOS/RHELが稼働している可能性があります。
root $ SELinux is preventing /usr/sbin/ldconfig from write access on the directory etc.
その場合は、以下のコマンドを実行してVMにopen-vm-tools
をインストールし、VMを再起動してください。
root $ yum install open-vm-tools
SELinuxのpermissiveモードまたはdisabledモードを設定する
rootユーザとして、以下のコマンドを実行します。
- 以下のコマンドを実行して、SELinuxの現在のモードを確認します。
- SELinuxの現在のモード(
enforcing
、permissive
、またはdisabled
)が表示されます。- モードが正しく設定されていない場合は、viエディタなどを使用して
/etc/selinux/config
ファイルを編集します。 - 上記のconfigファイルで、
SELinux=
をpermissive
またはdisabled
に設定します。 - configファイルを保存します。
- サーバを再起動して、SELinuxのモードを変更します。
root $ vi /etc/selinux/config
- モードが正しく設定されていない場合は、viエディタなどを使用して
- Swarmにログインできるかどうかを確認します。
- これで、SELinuxがSwarm用に設定されました。
root $ getenforce
アップグレード
詳しくは、「Swarmパッケージのインストール環境のアップグレード」を参照してください。
アンインストール
- SwarmのトリガをHelixサーバから削除します。
-
HelixサーバをホストするサーバからSwarmのトリガスクリプトを削除します。
重要Helixサーバをホストするサーバでパッケージを使用できないなどの理由で(Windowsの場合など)トリガスクリプトを手動でインストールした場合は、トリガスクリプトを手動で削除する必要があります。
以下に示すOSディストリビューションで操作を実行します。以下の例では、同じサーバにすべてのパッケージがインストールされていることが前提となっています。
Ubuntuでのパッケージのアンインストール:sudo apt-get remove helix-swarm helix-swarm-triggers helix-swarm-optional
CentOS/RHELでのパッケージのアンインストール (このコマンドをrootとして実行):yum remove helix-swarm helix-swarm-triggers helix-swarm-optional