From 7f15e0b8277ac8b101b4f71ce57c1c5442927141 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sat, 18 Mar 2023 19:51:06 +0900 Subject: fix(nuldoc): fix whitespaces being trimmed --- .../setup-server-for-this-site/index.html | 158 ++++++++++----------- 1 file changed, 79 insertions(+), 79 deletions(-) (limited to 'public/posts/2022-10-28/setup-server-for-this-site/index.html') diff --git a/public/posts/2022-10-28/setup-server-for-this-site/index.html b/public/posts/2022-10-28/setup-server-for-this-site/index.html index 8e1eea1..ae78d67 100644 --- a/public/posts/2022-10-28/setup-server-for-this-site/index.html +++ b/public/posts/2022-10-28/setup-server-for-this-site/index.html @@ -54,52 +54,52 @@
-

はじめに

+

はじめに

これまでこの blog は GitHub Pages でホストしていたのだが、先日 VPS に移行した。そのときにおこなったサーバのセットアップ作業を書き残しておく。99 % 自分用の備忘録。別のベンダに移したりしたくなったら見に来る。

- +

未来の自分へ: 特に自動化してないので、せいぜい苦しんでくれ。

- +
-

VPS

+

VPS

- さくらの VPSの 2 GB プラン。そこまで真面目に選定していないので、困ったら移動するかも。 + さくらの VPS の 2 GB プラン。そこまで真面目に選定していないので、困ったら移動するかも。

- +
-

事前準備

+

事前準備

-

サーバのホスト名を決める

+

サーバのホスト名を決める

モチベーションが上がるという効能がある。今回は藤原定家から取って ``teika'' にした。たいていいつも源氏物語の帖か小倉百人一首の歌人から選んでいる。

- +
-

SSH の鍵生成

+

SSH の鍵生成

ローカルマシンで鍵を生成する。

- +
$ ssh-keygen -t ed25519 -b 521 -f ~/.ssh/teika.key
   $ ssh-keygen -t ed25519 -b 521 -f ~/.ssh/github2teika.key
- +

- teika.keyはローカルからサーバへの接続用、github2teika.keyは、GitHub Actions からサーバへのデプロイ用。 + teika.key はローカルからサーバへの接続用、github2teika.key は、GitHub Actions からサーバへのデプロイ用。

- +
-

SSH の設定

+

SSH の設定

- .ssh/configに設定しておく。 + .ssh/config に設定しておく。

- +
Host teika
   HostName **********
   User **********
@@ -107,134 +107,134 @@
   IdentityFile ~/.ssh/teika.key
- +
-

基本のセットアップ

+

基本のセットアップ

-

SSH 接続

+

SSH 接続

VPS 契約時に設定した管理者ユーザとパスワードを使ってログインする。

- +
-

ユーザを作成する

+

ユーザを作成する

- 管理者ユーザで作業すると危ないので、メインで使うユーザを作成する。sudoグループに追加してsudoできるようにし、suで切り替え。 + 管理者ユーザで作業すると危ないので、メインで使うユーザを作成する。sudo グループに追加して sudo できるようにし、su で切り替え。

- +
$ sudo adduser **********
     $ sudo adduser ********** sudo
     $ su **********
     $ cd
- +
-

ホスト名を変える

+

ホスト名を変える

$ sudo hostname teika
- +
-

公開鍵を置く

+

公開鍵を置く

$ mkdir ~/.ssh
   $ chmod 700 ~/.ssh
   $ vi ~/.ssh/authorized_keys
- +

- authorized_keysには、ローカルで生成した~/.ssh/teika.key.pub~/.ssh/github2teika.key.pubの内容をコピーする。 + authorized_keys には、ローカルで生成した ~/.ssh/teika.key.pub~/.ssh/github2teika.key.pub の内容をコピーする。

- +
-

SSH の設定

+

SSH の設定

SSH の設定を変更し、少しでも安全にしておく。

- +
$ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
   $ sudo vi /etc/ssh/sshd_config
- +
  • - Portを変更 + Port を変更
  • - +
  • - PermitRootLoginnoに + PermitRootLoginno
  • - +
  • - PasswordAuthenticationnoに + PasswordAuthenticationno
- +

そして設定を反映。

- +
$ sudo systemctl restart sshd
 $ sudo systemctl status sshd
- +
-

SSH で接続確認

+

SSH で接続確認

今の SSH セッションは閉じずに、ターミナルを別途開いて疎通確認する。セッションを閉じてしまうと、SSH の設定に不備があった場合に締め出しをくらう。

- +
$ ssh teika
- +
-

ポートの遮断

+

ポートの遮断

デフォルトの 22 番を閉じ、設定したポートだけ空ける。

- +
$ sudo ufw deny ssh
   $ sudo ufw allow *******
   $ sudo ufw enable
   $ sudo ufw reload
   $ sudo ufw status
- +

ここでもう一度 SSH の接続確認を挟む。

- +
-

GitHub 用の SSH 鍵

+

GitHub 用の SSH 鍵

GitHub に置いてある private リポジトリをサーバから clone したいので、SSH 鍵を生成して置いておく。

- +
$ ssh-keygen -t ed25519 -b 521 -f ~/.ssh/github.key
 $ cat ~/.ssh/github.key.pub
- +

- GitHub の設定画面から、この公開鍵を追加する。 + GitHub の設定画面 から、この公開鍵を追加する。

- +
$ vi ~/.ssh/config
- +

設定はこう。

- +
Host github.com
 HostName github.com
 User git
 IdentityFile ~/.ssh/github.key
- +

最後に接続できるか確認しておく。

- +
ssh -T github.com
- +
-

パッケージの更新

+

パッケージの更新

$ sudo apt update
   $ sudo apt upgrade
   $ sudo apt update
@@ -242,60 +242,60 @@ IdentityFile ~/.ssh/github.key
$ sudo apt autoremove
- +
-

サイトホスティング用のセットアップ

+

サイトホスティング用のセットアップ

-

DNS に IP アドレスを登録する

+

DNS に IP アドレスを登録する

- このサーバは固定の IP アドレスがあるので、Aレコードに直接入れるだけで済んだ。 + このサーバは固定の IP アドレスがあるので、A レコードに直接入れるだけで済んだ。

- +
-

使うソフトウェアのインストール

+

使うソフトウェアのインストール

$ sudo apt install docker docker-compose git make
- +
-

メインユーザが Docker を使えるように

+

メインユーザが Docker を使えるように

sudo adduser ********** docker
- +
-

HTTP/HTTPS を通す

+

HTTP/HTTPS を通す

80 番と 443 番を空ける。

- +
$ sudo ufw allow 80/tcp
     $ sudo ufw allow 443/tcp
     $ sudo ufw reload
     $ sudo ufw status
- +
-

リポジトリのクローン

+

リポジトリのクローン

$ cd
   $ git clone git@github.com:nsfisis/nsfisis.dev.git
   $ cd nsfisis.dev
   $ git submodule update --init
- +
-

certbot で証明書取得

+

certbot で証明書取得

$ docker-compose up -d acme-challenge
   $ make setup
- +
-

サーバを稼動させる

+

サーバを稼動させる

$ make serve
- +
-

感想

+

感想

(業務でなく) 個人だと数年ぶりのサーバセットアップで、これだけでも割と時間を食ってしまった。とはいえ式年遷宮は楽しいので、これからも定期的にやっていきたい。コンテナデプロイにしたい気持ちもあるのだが、色々実験したい関係上、本物のサーバも欲しくはある。次の式年遷宮では、手順の一部だけでも自動化したいところ。

-- cgit v1.2.3-70-g09d2