カテゴリー
Linux

Conoha 作業。WordPress サーバを Ansible で構築した時の、主に playbook 実行前の作業メモ

はじめに

そうだ、ブログサーバを引っ越ししましょう。

引っ越し前のブログサーバは、1 台の VPS に WordPress や MySQL などすべてを入れて動かしています。

今回、引越し先のサーバをセットアップし、WordPress が使用できる状態にするまでを記録します。

サーバインスタンスを立ち上げて、接続設定を行い、最後に Ansible を実行するところまでが範囲となります。

環境

  • Ansible コントロールノード: CentOS 7.5 (Mac 上の仮想マシン)
  • Ansible ターゲットノード: CentOS 7.5 (Conoha、以下、VPS)
  • Ansible 以外で VPS をいじるのは MacBook Pro (Retina, 13-inch, Late 2012)、以下、Mac

作業一覧

  1. Conoha 管理画面からサーバを作成
  2. root ユーザでの SSH 接続の確認
  3. ユーザの追加
  4. root の SSH 接続を禁止
  5. 追加ユーザの公開鍵認証でのSSH接続
  6. Ansible 用ユーザ ansible の追加
  7. ansible ユーザの公開鍵認証でのSSH接続
  8. Ansible playbook の実行
  9. パスワードによる SSH 接続の禁止

Conoha 管理画面からサーバを作成

  • サービス: メモリ512M
  • イメージタイプ: CentOS 7.5(64bit)
  • 他はデフォルトのまま。

root ユーザでの SSH 接続の確認

Mac などから

ssh root@192.0.2.0

ユーザの追加

VPS での作業

useradd username
passwd username

Mac などのクライアントから追加ユーザで SSH ログインを確認

ssh username@192.0.2.0

root の SSH 接続を禁止

/etc/ssh/sshd_config の PermitRootLogin yesPermitRootLogin no へと修正します。

# 編集と差分確認
cp -a /etc/ssh/sshd_config /etc/ssh/sshd_config.org
sed -i -e 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config
diff -up /etc/ssh/sshd_config.org /etc/ssh/sshd_config
# 文法チェック
sshd -t
# ssh 再起動
systemctl restart sshd

Mac などのクライアントから root での SSH 接続できないことを確認

追加ユーザの公開鍵認証でのSSH接続

Mac での作業

cd ~/.ssh
# 公開鍵および秘密鍵を作成
# ファイル名、パスフレーズ、パスフレーズの確認、の順に入力する。
ssh-keygen
# VPS へ公開鍵を追加
# ssh-copy-id -i 公開鍵ファイル ユーザ名@接続先
ssh-copy-id -i ~/.ssh/conoha.pub username@192.0.2.0
# 公開鍵認証でのSSH接続確認
# ↓は公開鍵認証を使用しない SSH 接続
ssh username@192.0.2.0
# VPS での作業
# 追加した鍵情報が表示されれば OK
cat .ssh/authorized_keys 

Ansible 用ユーザの追加

VPS にて root ユーザで実施

useradd ansible
passwd ansible
# sudo 可能にする
gpasswd -a ansible wheel

Ansible コントロールノードからターゲットノードへの接続確認と playbook の実行

の README.md にしたがって操作し、VPS へ接続できることを確認しました。
そして、playbook を実行し、ウェブブラウザからアクセスしてテスト用の WordPress が表示・操作できることを確かめました。

パスワードによる SSH 接続の禁止

/etc/ssh/sshd_config の PasswordAuthentication yesPasswordAuthentication no へと修正します。

# 編集と差分確認
sed -i -e 's/PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config
diff -up /etc/ssh/sshd_config.org /etc/ssh/sshd_config
# 文法チェック
sshd -t
# ssh 再起動
systemctl restart sshd

おわりに

Ansible のコントロールノードは仮想マシンとしました。けれども、公開鍵認証を行うことを考えると、別の機会に playbook 実行を同じターゲットノードへと行いたい場合、仮想マシンを破棄してしまっていては以前にターゲットノードに登録してた公開鍵が使えません。
コントロールノードで作成した秘密鍵をとっておかなければなりません。なんだか面倒です。

公開鍵認証での接続という方法自体には問題はありませんが、コマンドがあまり洗練されていないように感じます。ssh_config あたりを調べてもう少し学習してみようかと存じます。

さて、それはそれとして、無事に WordPress サーバが一瞬にして構築されました。続いて、引っ越しをしてまいりましょう♪

以上です。

コメントを残す