
Ubuntu サーバー 18.04 を実行しているサーバーがあり、これは包括的なローカル サーバーで、Samba 共有、メディア サーバー、および Perforce サーバーをホストしています。ローカル ネットワーク IP (ssl:192.xxx:1666) 経由でそのデポに接続します。すべてが順調に機能していたのですが、次の問題が発生しました...
...また、wiki.js のインストールも追加しようとしました。パッケージと構成の大きな変更がありました。Apache は削除され、wiki.js / mongodb / mariadb / postgresql はすべて何度も変更され、削除され、nginx は何度もインストールされ、削除されました。
その理由はこうです - (私が何をしていたかの文脈おそらくこれを引き起こした):
私は PiHole 経由でネットワーク全体の DNS フィルタリングを行っており、それを使って、Ubuntu サーバー上のさまざまなプロセス用のローカル DNS 名と CNAME エントリを作成しました。そのアイデアは、ネットワーク内の別の場所にあるクライアント マシンを、たとえば「192.168.0.x:1666」ではなく「perforce.RackServer.net」にポイントして、nginx によるリバース プロキシを使用して同じ結果を得ることができるというものでした。私たちは、すべての人が私に IP とポート番号を尋ねなくても済むように、アドレスを人間が読めるものにしようとしていました。
やったないnginx の設定に成功しました。現在はアンインストールされています。問題ありません。後で戻ってきます。問題はここにあります。
どこかでネットワーク設定(マシンにはeth0とeth1がある)がおかしくなってしまい、今試すと
#sudo systemctl start helix-p4dctl.service
私は
Job for helix-p4dctl.service failed because the control process exited with error code.
See "systemctl status helix-p4dctl.service" and "journalctl -xe" for details.
systemctl ステータス チェックの結果は次のようになります。
Jun 20 14:10:07 RackServer p4dctl[4186]: error: Connect to server failed; check $P4PORT.
connect: 127.0.0.1:1666: Connection refused
Jun 20 14:10:07 RackServer p4dctl[4188]: error: Connect to server failed; check $P4PORT.
connect: 127.0.0.1:1666: Connection refused
Jun 20 14:10:07 RackServer p4dctl[4189]: error: Connect to server failed; check $P4PORT.
connect: 127.0.0.1:1666: Connection refused
Jun 20 14:10:07 RackServer p4dctl[4190]: error: Connect to server failed; check $P4PORT.
connect: 127.0.0.1:1666: Connection refused
Jun 20 14:10:08 RackServer p4dctl[4181]: error: 'PerforceServer' p4d: '/opt/perforce/sbin/p4d' exited with status 255.
Jun 20 14:10:08 RackServer p4dctl[4181]: Started 0 services.
Jun 20 14:10:08 RackServer p4dctl[4181]: error: Not all services started successfully.
Jun 20 14:10:08 RackServer systemd[1]: helix-p4dctl.service: Control process exited, code=exited status=1
Jun 20 14:10:08 RackServer systemd[1]: helix-p4dctl.service: Failed with result 'exit-code'.
Jun 20 14:10:08 RackServer systemd[1]: Failed to start LSB: Starts all Perforce services.
これは、p4v ビジュアル クライアントにリモート接続しようとしたときに発生するエラーに似ています。
Connect to server failed; check $P4PORT.
connect: 192.168.0.117:1666: Connection refused
サーバーの P4PORT 環境変数を確認すると、次の結果が得られます。
...何もない。ssl:1666か単に1666であるべきである。これまではそうだった。だから、それを次のように設定すれば
export $P4PORT=ssl:1666
その後、サービスを開始しようとすると、最初と同じエラーが発生します。
実際の接続を確認してみましょう...
admin@RackServer:~$ ping 192.168.0.117
PING 192.168.0.117 (192.168.0.117) 56(84) bytes of data.
64 bytes from 192.168.0.117: icmp_seq=1 ttl=64 time=0.052 ms
64 bytes from 192.168.0.117: icmp_seq=2 ttl=64 time=0.022 ms
64 bytes from 192.168.0.117: icmp_seq=3 ttl=64 time=0.017 ms
と同じ:
admin@RackServer:~$ ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.045 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.022 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.016 ms
そして:
admin@RackServer:~$ ping localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.054 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.018 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.014 ms
しかし、nmap では 1666 が開いているとは表示されません...
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
139/tcp open netbios-ssn
445/tcp open microsoft-ds
631/tcp open ipp
3306/tcp open mysql
3389/tcp open ms-wbt-server
参考までに、ifconfig を以下に示します。
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.117 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::da16:9fa8:aff2:2aef prefixlen 64 scopeid 0x20<link>
ether 00:04:23:d3:d0:92 txqueuelen 1000 (Ethernet)
RX packets 33063 bytes 2652752 (2.6 MB)
RX errors 0 dropped 2 overruns 0 frame 0
TX packets 1872 bytes 269690 (269.6 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 18 memory 0xb8820000-b8840000
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.116 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::659f:d321:8607:cc5f prefixlen 64 scopeid 0x20<link>
ether 00:04:23:d3:d0:93 txqueuelen 1000 (Ethernet)
RX packets 31082 bytes 2047269 (2.0 MB)
RX errors 0 dropped 2 overruns 0 frame 0
TX packets 531 bytes 41557 (41.5 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 19 memory 0xb8800000-b8820000
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 5185 bytes 278583 (278.5 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 5185 bytes 278583 (278.5 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
私は実際にはネットワークの専門家ではないし、まだ*nixを勉強中なので、手に負えない状況に陥っています。持っているPerforce デポをオンラインに戻します。すべて揃っていますが、マシンは突然、何らかの理由で 1666 で接続 (リモートまたはローカル) を拒否しています。正常に動作していた他のすべてのサービスは、まだ動作しているか、動作に戻りました。これは 1 つだけです。
答え1
ついに謎が解けた。
この Perforce インストールは、2021 年のリリース、p4d/2021.2/LINUX26X86_64/2264565 でした (ログを調べていたところ、これを見つけました)。ある時点で、インストールされた helix / p4 パッケージが apt-get アップグレードに巻き込まれ (.deb パッケージの手動ダウンロードとインストールだったので、巻き込まれるはずはありませんでした)、最新の 2022 バージョンがマシンにインストールされました。
結局のところ、最新の Perforce Server リリースは古いマシンでは動作しません。あるいは、Ubuntu 18.04 では動作しないのかもしれません。いずれにせよ、2021 年初頭のリリースをインストールすると動作しました。また、実際には、デポ バックアップからすべてのデポ ファイルを新しい空のデポにドロップすると、動作します。
これまでコマンドラインで過ごした中で最も困惑した 5 日間でした。