パラメータシートとは、1台のサーバーに入れる設定値を、項目ごとに1行ずつ書いた一覧表です。 読んだ人が同じサーバーを作り直せること、そして「なぜこの値なのか」が後から分かることが役目です。

この記事では、Linux サーバーの項目一覧と記入例をタブ区切りで載せ、ip・sysctl・sshd -T などで実機の値を取り出してシートと突き合わせた実行結果を示します。環境ごとの差分を横に並べる一覧ではなく、1台分の設定値を書く文書に絞ります。

確認環境:Ubuntu 24.04.4 LTS(カーネル 6.18.44)、OpenSSH 9.6p1、nginx 1.24.0、iproute2 6.1.0、procps-ng 4.0.4、bash 5.2.21、GNU Awk 5.2.1(確認日 2026-10-05)。Linux のコマンドはすべてこの環境で実行しました。systemd で起動していないコンテナのため、ホスト名とタイムゾーンは hostname と /etc/localtime から取り出しています。出力例のパスは /home/taro/params に置き換えています。

この記事の結論

  • 1行に 項目・設定値・既定値・変更の有無・設定根拠・確認コマンド を並べる。
  • 既定値と変更の有無を書くと、レビューする人は「変えた行」だけを重点的に見られる。
  • 確認コマンドを書いておくと、シートと実機の突き合わせをスクリプトで自動にできる。
  • 全項目は書かない。変えた項目と、設計で意識した項目に絞る(sysctl -a は確認環境で 791 行ありました)。
  • 台数が多い・作り直しが多いならコードで管理し、設定根拠はどちらの場合も文章で残す。

パラメータシートの列の早見表

列 書くこと 記入例
区分 項目のまとまり sshd
項目 設定ファイルやコマンドで使う正式な名前 PasswordAuthentication
設定値 このサーバーに入れる値 no
既定値 何も設定しないときの値 yes
変更 既定値から変えたかどうか(有・無) 有
設定根拠 なぜその値にしたか 公開鍵認証に統一
確認コマンド 実機から値を取り出すコマンド sshd -T の passwordauthentication の行

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「パラメータシートの書き方|サーバー設定項目の一覧と記入例テンプレート」

基本設計書・詳細設計書・パラメータシート・構成管理コードの違い

文書 書くこと 粒度 更新のきっかけ
基本設計書 構成の方針(サーバーの役割、台数、接続の向き、冗長化の考え方) システム全体 構成や方針が変わるとき
詳細設計書 方針を満たすための設計内容(ディレクトリ構成、ログの出力先、権限の考え方)と、その理由 機能・サーバーの種類ごと 設計を見直すとき
パラメータシート 1台のサーバーに入れる設定値を、項目ごとに1行で サーバー1台・設定項目1つ 値を1つでも変えるとき
構成管理コード(Ansible/Terraform) 設定値そのものを、ツールが読み込んで適用できる形で サーバー1台・リソース1つ 値を変えるとき(コードの変更=設定の変更)

Ansible の公式ドキュメントは、YAML で書いた playbook にシステムのあるべき状態を宣言し、対象にエージェントを入れずに動かす仕組みと説明しています。Terraform の公式ドキュメントは、宣言的な設定ファイルでクラウドやオンプレミスのリソースを構築・変更・版管理するツールと説明しています。どちらも設定値をコードに書く点で、パラメータシートと役割が重なります。

手で書く範囲とコードで管理する範囲の判断基準

条件 選ぶ方法 理由
同じ設定のサーバーが3台以上ある、または作り直す機会が多い コードで管理する 値を1か所直せば全台に同じ内容を適用できる
1〜2台で、作り直す予定がほとんどない パラメータシートに手で書く コードを整える手間より、表の見やすさが役立つ
設定根拠・既定値からの変更理由を残したい パラメータシート(コード管理の場合もコメントか別表で残す) コードには値が書けても、理由は書かなければ残らない
納品物や引き継ぎ資料として一覧が求められる パラメータシート(コードから値を取り出して作ってもよい) コードを読まない人も確認できる
画面でしか設定できない項目がある パラメータシートに手で書く コードにできない範囲は表で補う
値の変更履歴をレビューしたい コードで管理する 差分が1行単位で見える

コードで管理する場合も、表の「設定根拠」にあたる情報は残します。値はコードから読み取れますが、理由は誰かが書かない限りどこにも残らないためです。

Linuxサーバーの設定項目一覧

7つの区分で、よく書く項目と取り出すコマンドをまとめました。

区分 項目 取り出すコマンド 書くときの注意
OS基本 ホスト名 hostname(systemd の環境は hostnamectl でも表示できる) 命名規則を根拠に書く
OS基本 OS名とバージョン . /etc/os-release; echo $PRETTY_NAME 小数点以下の版まで書く
OS基本 カーネルのバージョン uname -r 更新で変わるので確認日を添える
OS基本 CPUコア数・メモリ量 nproc、free -m 見積もりの根拠(負荷試験など)を書く
OS基本 ディスクの割り当て df -h マウント先ごとに1行
OS基本 ロケール locale 文字コードを明記する
OS基本 開けるファイル数の上限 ulimit -n 実行ユーザーで取り出す
ネットワーク IPアドレスとプレフィックス長 ip -br addr show dev eth0 インターフェース名も書く
ネットワーク デフォルトゲートウェイ ip route show default 経路が複数あれば経路ごとに1行
ネットワーク DNSサーバー grep ^nameserver /etc/resolv.conf 順番にも意味があるので1番目・2番目と分ける
ネットワーク hosts の登録 cat /etc/hosts 追加した行だけを書く
ネットワーク 待ち受けポート ss -lnt ポート・アドレス・用途を書く
時刻 タイムゾーン readlink -f /etc/localtime(systemd の環境は timedatectl でも表示できる) ログの時刻に関わるので根拠を書く
時刻 時刻同期の状態 timedatectl(System clock synchronized の表示) 同期先は使う製品の設定ファイルの値を書く
ユーザー 作成するユーザー getent passwd ユーザー名 UID・ホーム・シェルを1行に
ユーザー 管理者グループの所属 getent group sudo 個人ごとのアカウントを書く
ユーザー ミドルウェアの実行ユーザー getent passwd www-data ログインシェルの有無を書く
sshd Port、PermitRootLogin、PasswordAuthentication、PubkeyAuthentication sshd -T 設定ファイルではなく、読み込んだ結果の値を取り出す
sshd MaxAuthTries、ClientAliveInterval、ClientAliveCountMax sshd -T 秒数と回数の掛け算の結果も根拠に書く
sshd AllowUsers、X11Forwarding sshd -T 許可するユーザーは1人1行で出る
カーネル net.ipv4.ip_forward、net.ipv4.tcp_syncookies sysctl 項目名 役割(ルーターかどうか)と結び付けて書く
カーネル net.core.somaxconn、vm.swappiness sysctl 項目名 変えた項目と、設計で意識した項目だけを書く
ミドルウェア nginx:worker_processes、worker_connections nginx -T CPU コア数との関係を書く
ミドルウェア nginx:keepalive_timeout、client_max_body_size、server_tokens、listen nginx -T include されたファイルの値も -T でまとめて出る

この記事では、作業用に置いた設定ファイルを -f で指定して sshd -T を実行しています。-f を付けずに実行すると、/etc/ssh/sshd_config を読み込んだ結果が表示されました。

記入例テンプレート(架空の備品予約システムのWebサーバー)

サーバー名 yoyaku-web01 の1台分です。確認コマンドは、実行すると設定値と同じ文字列が1行で返る形にそろえています。

区分 項目 設定値 既定値 変更 設定根拠 確認コマンド
OS基本 ホスト名 yoyaku-web01 - 有 命名規則(システム名-役割-連番) hostname
OS基本 OS名とバージョン Ubuntu 24.04.4 LTS - 無 検証済みの LTS 版に固定 . /etc/os-release; echo $PRETTY_NAME
OS基本 CPUコア数 2 - 無 同時接続 100 の負荷試験結果から nproc
ネットワーク IPv4アドレス(eth0) 192.0.2.2/24 - 有 アドレス管理表の割り当て ip -4 -o addr show dev eth0 | awk '{print $4}'
ネットワーク デフォルトゲートウェイ 192.0.2.1 - 有 セグメントの標準ゲートウェイ ip route show default | awk '{print $3}'
ネットワーク DNSサーバー(1番目) 192.0.2.53 - 有 社内 DNS を優先 awk '/^nameserver/{print $2; exit}' /etc/resolv.conf
時刻 タイムゾーン Asia/Tokyo - 有 ログの時刻を日本時間でそろえる readlink -f /etc/localtime | sed 's#/usr/share/zoneinfo/##'
ユーザー アプリ実行ユーザーのシェル /usr/sbin/nologin /usr/sbin/nologin 無 対話ログインをさせない getent passwd www-data | cut -d: -f7
ユーザー sudo グループの所属 taro - 有 管理者は個人アカウントで操作 getent group sudo | cut -d: -f4
sshd PermitRootLogin no prohibit-password 有 root の直接ログインを使わない sshd -T -f /home/taro/params/sshd_config | awk '$1=="permitrootlogin"{print $2}'
sshd PasswordAuthentication no yes 有 公開鍵認証に統一 sshd -T -f /home/taro/params/sshd_config | awk '$1=="passwordauthentication"{print $2}'
sshd MaxAuthTries 3 6 有 試行回数を絞る sshd -T -f /home/taro/params/sshd_config | awk '$1=="maxauthtries"{print $2}'
sshd ClientAliveInterval 300 0 有 無通信の接続を 10 分で切る(300 秒 × 2 回) sshd -T -f /home/taro/params/sshd_config | awk '$1=="clientaliveinterval"{print $2}'
カーネル net.ipv4.ip_forward 0 0 無 ルーターとして使わない sysctl -n net.ipv4.ip_forward
カーネル net.core.somaxconn 4096 4096 無 既定値で接続待ちに余裕あり sysctl -n net.core.somaxconn
カーネル vm.swappiness 10 60 有 メモリ上のデータをなるべくスワップに出さない sysctl -n vm.swappiness
ミドルウェア nginx worker_processes 2 1 有 CPU コア数に合わせる nginx -T -c /home/taro/params/ngx/nginx.conf 2>/dev/null | awk '$1=="worker_processes"{gsub(";","",$2); print $2}'
ミドルウェア nginx client_max_body_size 20m 1m 有 添付ファイルの上限 20MB に合わせる nginx -T -c /home/taro/params/ngx/nginx.conf 2>/dev/null | awk '$1=="client_max_body_size"{gsub(";","",$2); print $2}'
ミドルウェア nginx server_tokens off on 有 応答ヘッダーに版番号を出さない nginx -T -c /home/taro/params/ngx/nginx.conf 2>/dev/null | awk '$1=="server_tokens"{gsub(";","",$2); print $2}'

タブ区切り版

表計算ソフトの A1 セルに貼ると7列に分かれます。値のない欄には - を入れています(後半のスクリプトで読み込むためです)。

区分  項目  設定値 既定値 変更  設定根拠    確認コマンド
OS基本    ホスト名    yoyaku-web01    -   有   命名規則(システム名-役割-連番)   hostname
OS基本    OS名とバージョン   Ubuntu 24.04.4 LTS  -   無   検証済みの LTS 版に固定  . /etc/os-release; echo $PRETTY_NAME
OS基本    CPUコア数  2   -   無   同時接続 100 の負荷試験結果から  nproc
ネットワーク  IPv4アドレス(eth0)  192.0.2.2/24    -   有   アドレス管理表の割り当て    ip -4 -o addr show dev eth0 | awk '{print $4}'
ネットワーク  デフォルトゲートウェイ 192.0.2.1   -   有   セグメントの標準ゲートウェイ  ip route show default | awk '{print $3}'
ネットワーク  DNSサーバー(1番目)    192.0.2.53  -   有   社内 DNS を優先  awk '/^nameserver/{print $2; exit}' /etc/resolv.conf
時刻  タイムゾーン  Asia/Tokyo  -   有   ログの時刻を日本時間でそろえる readlink -f /etc/localtime | sed 's#/usr/share/zoneinfo/##'
ユーザー    アプリ実行ユーザーのシェル   /usr/sbin/nologin   /usr/sbin/nologin   無   対話ログインをさせない getent passwd www-data | cut -d: -f7
ユーザー    sudo グループの所属    taro    -   有   管理者は個人アカウントで操作  getent group sudo | cut -d: -f4
sshd    PermitRootLogin no  prohibit-password   有   root の直接ログインを使わない   sshd -T -f /home/taro/params/sshd_config | awk '$1=="permitrootlogin"{print $2}'
sshd    PasswordAuthentication  no  yes 有   公開鍵認証に統一    sshd -T -f /home/taro/params/sshd_config | awk '$1=="passwordauthentication"{print $2}'
sshd    MaxAuthTries    3   6   有   試行回数を絞る sshd -T -f /home/taro/params/sshd_config | awk '$1=="maxauthtries"{print $2}'
sshd    ClientAliveInterval 300 0   有   無通信の接続を 10 分で切る(300 秒 × 2 回)    sshd -T -f /home/taro/params/sshd_config | awk '$1=="clientaliveinterval"{print $2}'
カーネル    net.ipv4.ip_forward 0   0   無   ルーターとして使わない sysctl -n net.ipv4.ip_forward
カーネル    net.core.somaxconn  4096    4096    無   既定値で接続待ちに余裕あり   sysctl -n net.core.somaxconn
カーネル    vm.swappiness   10  60  有   メモリ上のデータをなるべくスワップに出さない  sysctl -n vm.swappiness
ミドルウェア  nginx worker_processes  2   1   有   CPU コア数に合わせる    nginx -T -c /home/taro/params/ngx/nginx.conf 2>/dev/null | awk '$1=="worker_processes"{gsub(";","",$2); print $2}'
ミドルウェア  nginx client_max_body_size  20m 1m  有   添付ファイルの上限 20MB に合わせる    nginx -T -c /home/taro/params/ngx/nginx.conf 2>/dev/null | awk '$1=="client_max_body_size"{gsub(";","",$2); print $2}'
ミドルウェア  nginx server_tokens off on  有   応答ヘッダーに版番号を出さない nginx -T -c /home/taro/params/ngx/nginx.conf 2>/dev/null | awk '$1=="server_tokens"{gsub(";","",$2); print $2}'

実機から設定値を取り出すコマンドと出力

シートを書く前に、検証機で値を取り出しておくと記入が正確になります。

OS基本

$ hostname
vm
$ . /etc/os-release; echo $PRETTY_NAME
Ubuntu 24.04.4 LTS
$ uname -r
6.18.44-fc-v70
$ nproc
2
$ free -m | awk 'NR==2{print $2" MB"}'
8031 MB

ネットワーク

$ ip -br addr show dev eth0
eth0             UP             192.0.2.2/24 
$ ip route show default
default via 192.0.2.1 dev eth0 
$ grep ^nameserver /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4

時刻

$ readlink -f /etc/localtime
/usr/share/zoneinfo/Etc/UTC
$ echo $TZ; date '+%Z %z'
Asia/Tokyo
JST +0900
$ env -u TZ date '+%Z %z'
UTC +0000

date の表示は環境変数 TZ の影響を受けます。この検証機では TZ=Asia/Tokyo が設定されていたため date は JST を表示しましたが、システムの設定(/etc/localtime)は UTC でした。パラメータシートに書くのはシステムの設定のほうです。

ユーザー

$ getent passwd www-data
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
$ getent group sudo
sudo:x:27:ubuntu
$ awk -F: '$3>=1000 && $3<65534{print $1,$3,$6,$7}' /etc/passwd
ubuntu 1000 /home/ubuntu /bin/bash

sshd

設定ファイルの中身ではなく、sshd が読み込んだ結果を sshd -T で取り出します。作業用の設定ファイルは次の内容です。

Port 22
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2
X11Forwarding no
AllowUsers taro deploy
$ sshd -T -f /home/taro/params/sshd_config | grep -E '^(port|permitrootlogin|passwordauthentication|pubkeyauthentication|maxauthtries|clientaliveinterval|clientalivecountmax|x11forwarding|allowusers) '
port 22
maxauthtries 3
clientaliveinterval 300
clientalivecountmax 2
permitrootlogin no
pubkeyauthentication yes
passwordauthentication no
x11forwarding no
allowusers taro
allowusers deploy

項目名はすべて小文字で表示され、AllowUsers taro deploy は1人1行に分かれました。

カーネルパラメータ

$ sysctl net.ipv4.ip_forward net.ipv4.tcp_syncookies net.core.somaxconn vm.swappiness
net.ipv4.ip_forward = 0
net.ipv4.tcp_syncookies = 1
net.core.somaxconn = 4096
vm.swappiness = 60
$ sysctl -a 2>/dev/null | wc -l
791

ミドルウェア(nginx)

$ nginx -T -c /home/taro/params/ngx/nginx.conf 2>/dev/null | grep -E 'worker_processes|worker_connections|server_tokens|keepalive_timeout|client_max_body_size|listen'
worker_processes 2;
events { worker_connections 1024; }
    server_tokens off;
    keepalive_timeout 30s;
    client_max_body_size 20m;
        listen 127.0.0.1:9891;

既定値の調べ方:sshd -T で既定との差分を取る

「既定値」と「変更の有無」の列は、空の設定ファイルを読ませた結果と比べると機械的に埋められます。

$ sshd -T -f /dev/null | sort > sshd_default.txt
$ sshd -T -f /home/taro/params/sshd_config | sort > sshd_actual.txt
$ wc -l sshd_default.txt sshd_actual.txt
  92 sshd_default.txt
  94 sshd_actual.txt
 186 total
$ diff sshd_default.txt sshd_actual.txt
4a5,6
> allowusers deploy
> allowusers taro
17,18c19,20
< clientalivecountmax 3
< clientaliveinterval 0
---
> clientalivecountmax 2
> clientaliveinterval 300
53c55
< maxauthtries 6
---
> maxauthtries 3
57c59
< passwordauthentication yes
---
> passwordauthentication no
61c63
< permitrootlogin without-password
---
> permitrootlogin no

> の行が、既定値から変えた(または追加した)設定です。この差分がそのまま「変更:有」の行になります。

この記事の記入例で使った既定値と、確かめた方法は次のとおりです。

項目 既定値 確かめた方法
sshd PermitRootLogin prohibit-password OpenBSD マニュアル sshd_config(5)。sshd -T -f /dev/null の表示は without-password
sshd PasswordAuthentication yes 同マニュアル、sshd -T -f /dev/null
sshd MaxAuthTries 6 同上
sshd ClientAliveInterval / ClientAliveCountMax 0 / 3 同上
sshd X11Forwarding no 同上
net.ipv4.ip_forward 0 Linux カーネル文書 IP Sysctl
net.ipv4.tcp_syncookies 1 同上
net.core.somaxconn 4096(Linux 5.4 より前は 128) 同上
vm.swappiness 60(指定できる範囲は 0〜200) Linux カーネル文書 sysctl/vm
nginx worker_processes 1 nginx 公式ドキュメント Core functionality
nginx worker_connections 512 同上
nginx client_max_body_size 1m nginx 公式ドキュメント ngx_http_core_module
nginx keepalive_timeout 75s 同上
nginx server_tokens on 同上

パラメータシートと実機を突き合わせるシェルスクリプト

タブ区切りのシートを読み、確認コマンドの結果と設定値を比べます。

#!/usr/bin/env bash
# 使い方: bash check_params.sh params.tsv
# パラメータシート(タブ区切り)の「設定値」と、確認コマンドで取り出した値を突き合わせる
sheet="${1:?シートのファイル名を指定してください}"
ok=0; ng=0
printf '%s\t%s\t%s\t%s\n' "判定" "項目" "シートの値" "サーバーの値"
while IFS=$'\t' read -r kubun item want default changed reason cmd; do
  [ "$kubun" = "区分" ] && continue          # 見出し行を飛ばす
  got="$(bash -c "$cmd" 2>&1 | head -n 1)"   # 確認コマンドを実行して1行目を取る
  if [ "$got" = "$want" ]; then
    mark="一致"; ok=$((ok+1))
  else
    mark="差分"; ng=$((ng+1))
  fi
  printf '%s\t%s\t%s\t%s\n' "$mark" "$item" "$want" "$got"
done < "$sheet"
echo "----"
echo "一致 ${ok} 件 / 差分 ${ng} 件"
[ "$ng" -eq 0 ]

記入例のシートを検証機に当てた結果です(タブ区切りで出力されます)。

$ bash check_params.sh params.tsv
判定  項目  シートの値   サーバーの値
差分  ホスト名    yoyaku-web01    vm
一致  OS名とバージョン   Ubuntu 24.04.4 LTS  Ubuntu 24.04.4 LTS
一致  CPUコア数  2   2
一致  IPv4アドレス(eth0)  192.0.2.2/24    192.0.2.2/24
一致  デフォルトゲートウェイ 192.0.2.1   192.0.2.1
差分  DNSサーバー(1番目)    192.0.2.53  8.8.8.8
差分  タイムゾーン  Asia/Tokyo  Etc/UTC
一致  アプリ実行ユーザーのシェル   /usr/sbin/nologin   /usr/sbin/nologin
差分  sudo グループの所属    taro    ubuntu
一致  PermitRootLogin no  no
一致  PasswordAuthentication  no  no
一致  MaxAuthTries    3   3
一致  ClientAliveInterval 300 300
一致  net.ipv4.ip_forward 0   0
一致  net.core.somaxconn  4096    4096
差分  vm.swappiness   10  60
一致  nginx worker_processes  2   2
一致  nginx client_max_body_size  20m 20m
一致  nginx server_tokens off off
----
一致 14 件 / 差分 5 件

検証機は yoyaku-web01 として作ったものではないため、ホスト名・DNS・タイムゾーン・sudo グループ・vm.swappiness の5行が「差分」になりました。シートどおりに作れていない箇所が行単位で分かることが確かめられます。シートの5行を検証機の値に合わせて実行し直すと「一致 19 件 / 差分 0 件」となり、スクリプトの終了コードは 0 でした。差分があるときの終了コードは 1 なので、構築後の確認手順にそのまま組み込めます。

Windows Serverで設定値を取り出すPowerShellコマンドレット

Windows 側は、Microsoft Learn の各コマンドレットのページを開いて確認できた範囲を対応表にしました。

取り出したい項目 Linux(この記事で実行) Windows PowerShell のコマンドレット Microsoft Learn の説明
コンピューター名・OS の版 hostname、/etc/os-release Get-ComputerInfo(例:Get-ComputerInfo -Property "*version") システムと OS のプロパティをまとめて返す。Windows 専用
IP アドレス ip -br addr Get-NetIPAddress -AddressFamily IPv4 IPv4・IPv6 のアドレス構成と、結び付くインターフェースを取得する
DNS サーバー /etc/resolv.conf Get-DnsClientServerAddress -AddressFamily IPv4 インターフェースに設定された DNS サーバーのアドレスを取得する
タイムゾーン readlink -f /etc/localtime Get-TimeZone 現在のタイムゾーンを取得する。-ListAvailable で一覧
ローカルユーザー getent passwd Get-LocalUser 組み込み・作成済みのローカルユーザーアカウントを取得する
サービスの状態 (製品ごとのコマンド) Get-Service 実行中・停止中のサービスを取得する。Status・Name・DisplayName を表示
ファイアウォールのプロファイル (製品ごとのコマンド) Get-NetFirewallProfile -PolicyStore ActiveStore Domain・Private・Public の各プロファイルの設定を表示する
役割と機能 (パッケージ一覧) Get-WindowsFeature Windows Server の役割・役割サービス・機能と、インストール済みかどうかを取得する

Windows でも列の構成は同じです。確認コマンドの列にコマンドレットを書いておけば、取り出した値とシートを見比べる進め方は変わりません。

確かめて分かったこと

  1. sshd -T は既定値の prohibit-password を without-password と表示します。 OpenBSD のマニュアルでは PermitRootLogin の既定は prohibit-password で、without-password はその別名(非推奨)です。シートの設定値と突き合わせるときは、表示される表記に合わせるか、読み替えの注記を入れます。
  2. sshd -T -f /dev/null で、設定ファイルを置かないときの値が 92 行で一覧できました。 既定値の列を埋める出発点になります。
  3. OS の配布物が置いた設定ファイルも「既定からの変更」に含まれます。 この検証機の /etc/ssh/sshd_config には X11Forwarding yes が入っており、sshd -T は x11forwarding yes、sshd -T -f /dev/null は no でした。既定値の列には「ソフトウェアの既定」と「OS を入れた直後の値」のどちらを書くかを、シートの冒頭で決めておきます。
  4. date の表示とシステムのタイムゾーン設定は一致しないことがあります。 環境変数 TZ を外して実行すると UTC が表示されました。
  5. nginx は nginx -T で、include したファイルも含めた設定全体を表示します。 既定値のままの項目は表示されないため、既定値は公式ドキュメントの Default 欄で確かめます。
  6. タブ区切りを bash の read で読むとき、空欄が連続すると列がずれます。 タブは空白として扱われ、連続すると1つにまとめられるためです。値のない欄に - を入れているのはこの対策です。

よくある質問

Q. パラメータシートとは何ですか? A. サーバーや機器に設定する値を、項目ごとに1行で書いた一覧表です。設計書で決めた方針を、実際に入力する値まで落とし込んだ文書にあたります。

Q. パラメータシートと詳細設計書の違いは何ですか? A. 詳細設計書は設計の内容と理由を文章と図で書き、パラメータシートは設定値を表で書きます。組織によっては同じ文書を指すこともあるので、最初に「どの文書に何を書くか」を決めておくと重複を防げます。

Q. 既定値のままの項目も書くべきですか? A. 設計で意識した項目だけ書けば十分です。「既定値のままにする」と判断したことに意味がある項目(例:net.ipv4.ip_forward を 0 のままにする)は、変更「無」として根拠と一緒に残します。

Q. 設定根拠が思い付かないときはどう書きますか? A. 「ソフトウェアの既定値を採用」「検証で問題がなかった値を採用」のように、決め方をそのまま書きます。空欄にせず、判断の経緯を1行残すことが後の助けになります。

Q. パラメータシートは Excel で作るべきですか? A. 表の形で並べ替えや絞り込みができれば、道具は問いません。タブ区切りや CSV のテキストで持っておくと、この記事のスクリプトのように機械で読め、変更の差分も確認しやすくなります。

まとめ

  • パラメータシートは 1台分の設定値を、項目ごとに1行で書く。
  • 列は 項目・設定値・既定値・変更の有無・設定根拠・確認コマンド。
  • 既定値は sshd -T -f /dev/null や公式ドキュメントで確かめ、推測で書かない。
  • 確認コマンドは「設定値と同じ文字列が1行で返る」形にすると、突き合わせを自動にできる。
  • 台数や作り直しの多さでコード管理と手書きを使い分け、設定根拠はどちらでも残す。
  • Windows は Get-ComputerInfo・Get-NetIPAddress・Get-TimeZone などで同じ進め方ができる。

参考・出典

  • OpenBSD マニュアル sshd_config(5)(https://man.openbsd.org/sshd_config)
  • Linux カーネル文書「IP Sysctl」(https://docs.kernel.org/networking/ip-sysctl.html)、「Documentation for /proc/sys/vm/」(https://docs.kernel.org/admin-guide/sysctl/vm.html)
  • nginx 公式ドキュメント「Core functionality」(https://nginx.org/en/docs/ngx_core_module.html)、「Module ngx_http_core_module」(https://nginx.org/en/docs/http/ngx_http_core_module.html)
  • Linux man-pages hostnamectl(1)(https://man7.org/linux/man-pages/man1/hostnamectl.1.html)、timedatectl(1)(https://man7.org/linux/man-pages/man1/timedatectl.1.html)
  • Microsoft Learn:Get-ComputerInfo、Get-NetIPAddress、Get-DnsClientServerAddress、Get-TimeZone、Get-LocalUser、Get-Service、Get-NetFirewallProfile、Get-WindowsFeature(https://learn.microsoft.com/en-us/powershell/module/)
  • Ansible Community Documentation「Introduction to Ansible」(https://docs.ansible.com/ansible/latest/getting_started/introduction.html)
  • HashiCorp Developer「What is Terraform?」(https://developer.hashicorp.com/terraform/intro)

いずれも 2026-10-05 に閲覧しました。

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「パラメータシートの書き方|サーバー設定項目の一覧と記入例テンプレート」

株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。

WE ARE HIRING

RJCで一緒に開発しながら、
成長を楽しみませんか?

RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!

  • 127日年間休日
  • 12時間平均残業時間
  • 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!

ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。

ABOUT RJC RJCがどんな会社か知る 考え方、研修、働き方、福利厚生、社員の前職まで。RJCのことが丸わかり! RJC丸わかりページへ JOB DESCRIPTION 仕事内容・待遇を見てみる 仕事内容、給与・待遇、選考の流れ。経験者も未経験も!応募前に知りたいこと、まとめました! 募集要項を見る ENTRY エントリーする エントリーは1〜2分・履歴書不要です。まずは話を聞いてみたい、という方でも歓迎です! エントリーフォームへ

RJCで一緒に開発しながら、 成長を楽しみませんか?