https://kazuhira-r.hatenablog.com/entry/2021/08/11/003809
https://www.cockroachlabs.com/docs/v23.2/install-cockroachdb-linux
mmm191で作成した証明書と鍵をmmm192,mmm193に配布する
OS: Rocky Linux 9.2
-- 1. インストール
-- mmm191, mmm192, mmm193
wget -qO- https://binaries.cockroachdb.com/cockroach-v23.2.0.linux-amd64.tgz | tar xvz
cp -i cockroach-v23.2.0.linux-amd64/cockroach /usr/local/bin/
-- 2. クラスタ設定
-- 2.1 ユーザとディレクトリの作成
-- mmm191, mmm192, mmm193
useradd myuser
echo myuser | passwd --stdin myuser
visudo
myuser ALL=(ALL) NOPASSWD: ALL
su - myuser
sudo mkdir -p /cockroach/crc/{certs,ca}
sudo chown -R myuser:myuser /cockroach/crc
-- 2.2 CA証明書と鍵の作成
-- mmm191
cockroach cert create-ca \
--certs-dir=/cockroach/crc/certs \
--ca-key=/cockroach/crc/ca/ca.key
find /cockroach/crc -type f
-- 2.3 サーバー証明書と鍵の作成
-- mmm191
cockroach cert create-node \
localhost mmm191 mmm192 mmm193 \
--certs-dir=/cockroach/crc/certs \
--ca-key=/cockroach/crc/ca/ca.key
find /cockroach/crc -type f
-- 2.4 クライアント証明書と鍵の作成
-- mmm191
cockroach cert create-client \
root \
--certs-dir=/cockroach/crc/certs \
--ca-key=/cockroach/crc/ca/ca.key
cockroach cert create-client \
myuser \
--certs-dir=/cockroach/crc/certs \
--ca-key=/cockroach/crc/ca/ca.key
find /cockroach/crc -type f
-- 2.5 証明書と鍵の配布
-- mmm191
cd /cockroach/crc/certs
scp \
client.root.key \
client.root.crt \
client.myuser.key \
client.myuser.crt \
node.key \
node.crt \
ca.crt \
myuser@mmm192:/cockroach/crc/certs
scp \
client.root.key \
client.root.crt \
client.myuser.key \
client.myuser.crt \
node.key \
node.crt \
ca.crt \
myuser@mmm193:/cockroach/crc/certs
cd /cockroach/crc/ca
scp \
ca.key \
myuser@mmm192:/cockroach/crc/ca
scp \
ca.key \
myuser@mmm193:/cockroach/crc/ca
-- 2.6 サービス設定ファイルの作成
-- mmm191, mmm192, mmm193
sudo sh -c "cat <<-'EOF' > /etc/systemd/system/cockroachdb.service
[Unit]
Description=Cockroach Database cluster node
Requires=network.target
[Service]
Type=notify
WorkingDirectory=/cockroach/crc/certs
ExecStart=/usr/local/bin/cockroach start \
--certs-dir=/cockroach/crc/certs \
--advertise-addr=$HOSTNAME \
--join=mmm191,mmm192,mmm193 \
--max-sql-memory=.35 \
--cache=.35
TimeoutStopSec=60
Restart=always
RestartSec=10
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=cockroachdb
User=myuser
[Install]
WantedBy=default.target
EOF"
cat /etc/systemd/system/cockroachdb.service
sudo systemctl daemon-reload
sudo systemctl restart cockroachdb
sudo systemctl status cockroachdb
sudo systemctl enable cockroachdb
-- 3. クラスタの初期化
-- mmm191
cockroach init \
--certs-dir=/cockroach/crc/certs \
--host=mmm191
cockroach node status \
--certs-dir=/cockroach/crc/certs \
--host=mmm191
-- 4. SQLの実行
-- mmm191
cockroach sql \
--certs-dir=/cockroach/crc/certs \
--host=mmm191 \
-e "create user myuser with LOGIN password 'myuser';"
cockroach sql \
--certs-dir=/cockroach/crc/certs \
--host=mmm191 \
-e 'grant admin to myuser;'
cockroach sql \
--certs-dir=/cockroach/crc/certs \
--host=mmm191