メンテナンス・トラブルシュート - DNS - unbound-control-setup が終わらない

 クラウディア
1. 概要
2. 調査
3. 対策

1. 概要

 2024年9月27日、「FreeBSD 13.4 RELEASE」へ「unbound」をインストールして、「unbound-control」のセットアップをしていたときのことです。

unbound-control-setup
 を実行したまま、うんともすんとも言わないというか、動いているかどうかさえ分からないのだ。

2. 調査

 調べてみると「unbound-control-setup」は、シェルスクリプトなので。  実行状況を調べてみます。

sh -x /usr/local/sbin/unbound-control-setup

+ DESTDIR=/usr/local/etc/unbound
+ SERVERNAME=unbound
+ CLIENTNAME=unbound-control
+ DAYS=7200
+ BITS=3072
+ HASH=sha256
+ SVR_BASE=unbound_server
+ CTL_BASE=unbound_control
+ RECREATE=0
+ umask 0027
+ set -eu
+ OPTIND=1
+ getopts d:hr arg
+ shift 0
+ openssl
 を表示したところで、止まりました。  スクリプトのソースを見ると。

if ! openssl >/dev/null 2>&1; then
    echo "$0 requires openssl to be installed for keys/certificates generation." >&2
    exit 1
fi
 107行のところで、止まっているようです。

openssl
 とたたいてみると。

OpenSSL>
 と、プロンプトが出て、止まります。  他のマシンで同じことをすると。

help:

Standard commands
asn1parse         ca                ciphers           cmp

・・・	以下略	・・・
 これで、わかりました。  シェルスクリプトの 107行で、インタラクティブな状態になって止まっているわけです。

3. 対策

 もっと、スマートな方法はあるかと思いますが、一度しか動かす機会のない、スクリプトですので。  該当の箇所は、「openssl」の有無をチェックしているに過ぎない。  「openssl」がインストールされていることは、確認できていますので。  「root」ユーザ権限で、「/usr/local/sbin/unbound-control-setup」を開いて、107~110行をコメントアウトします。  すると、正常に動作するようになりました。