VPSセットアップ時にやることリスト

こんにちは、GMOインターネットグループ株式会社の斉藤です。

この記事はConoHa Advent Calendar 2022の13日目の記事です

12日目は@narikakunさんのConoHa VPSを使ってツイキャスの配信が始まったら通知するプログラムを動かすでした。

VPSのセットアップ

今回は基本に立ち返って(?)、VPSの初期設定のお話しです。

ちょっとしたプログラムのテストや何か新しいソフトウェアを動かしてみたりするときに、ConoHa VPSはとても便利です。仮想サーバーがすぐに立ち上がりますし、1時間単位で課金されるのでコストも最小限になります。

私も日頃から何かのテストや動作検証などなどで、とっても便利に利用しています。最近はコンテナを使うことが増えていますが、それでもOSやその下のネットワーキングなど低いレイヤーをテストする場合は仮想サーバーが便利なこともまだまだ多くあります。

新しくサーバーを立てると、もちろんそのサーバーはすっぴん状態です。自分が普段日常的に使うツールなどは入っていませんし、シェルの設定なども初期状態です。これは使いにくい! 検証目的とは言え自分好みのサーバーの環境を使いたいものです。

ConoHaであればVPSを「イメージ保存」で保存して、次回からそのイメージからサーバーを立ち上げることができます。なので初期セットアップを済ませた状態のVPSをイメージ保存すると言う方法が一つ賢い使い方です。

一方で自分好みのサーバーの初期設定をスクリプトなどにしておくととても便利です。イメージ保存を使うと保存した時点でのソフトウェアで固定されますが、スクリプトにしておくと毎回セットアップ時に最新のバージョンのソフトウェアとを使うことができます。

それにOSのメジャーバージョンアップなどがあった場合でも、スクリプトの大部分を使い回せることが多いですしね。

と言うわけで、私が普段Ubuntuで使っている初期セットアップスクリプトをご紹介したいと思います。ConoHaは以前からサーバーの勉強をしている方の利用が多いですし、コメントで解説を入れてありますので参考にしてみてください。

スクリプト

以下のようなスクリプトをgistに保存しています。一部、対話的なコマンド(update-alternativesやvisudo)があるのでスクリプトを流して終わりというわけには行きません。ただ数回のコピー/ペーストで終わるのでこれで十分だと思っています。

もちろんこれは最小限なので、用途に応じて追加でいろいろインストールしたり設定を変えたりと言うことを行います。

# apt関連
# インストールしているソフトウェアのコメントを付けておきます
#
# fish: fishシェルを常用しているので必須です
# vim-nox: -noxを付けるとX Window System関連の依存が入らなくなるので便利です
# findutils: 古いですがfindとかxargsとかまだ使うので
# lv: lvはlessよりタイプ数が少ないのが良いです
# install-info: infoもたまに見ます
# aptitude: 極まれにaptでインストールできないものを入れるのに使います
# dnsutils: dig用
# jq: 良い代替ツールないですかね
# mosh: ターミナルマルチプレクサはサーバー屋さん必須ツールです
# build-essential: ビルドに必須
# automake: ビルドに必須
# grc: いろいろなコマンドの出力に色づけしてくれます https://github.com/garabik/grc
#
apt update && apt -y install \
fish \
vim-nox \
git \
gh \
findutils \
language-pack-ja \
wget \
curl \
tmux \
lv \
install-info \
aptitude \
dnsutils \
jq \
mosh \
build-essential \
automake \
zip \
grc

# タイムゾーンを日本に
sudo timedatectl set-timezone Asia/Tokyo

# Ubuntuはデフォルトでnanoを使うのでvim-basicに変更
update-alternatives --config editor

# Docker(CE)のインストール
# オフィシャルリポジトリからインストールすると最新版が使えます
sudo apt-get install -y \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io

# ローカルユーザーを作成します。私は"hiro"をずっと使っています。
# UIDを固定していますがこれは昔からの名残で今は必要ないでしょう
useradd -u 5010 -s /usr/bin/fish -m -d /home/hiro hiro

# dockerとsudoグループに追加
usermod -a -G docker,sudo hiro

# sudoの設定を変更します。
visudo 

# ローカルユーザーの設定を行います
su -l hiro -c /bin/bash

# 設定ファイルはgitにしておくとcloneするだけなので楽です
git clone https://github.com/hironobu-s/dotfiles ~/dotfiles
ln -s ~/dotfiles/fish ~/.config

# sshの設定
mkdir -m 0700 ~/.ssh

# 公開鍵はgithubから取ると便利です
curl https://github.com/hironobu-s.keys > ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys

# ローカルユーザーで使う実行ファイルはここに格納します
mkdir -p ~/local/bin

終わりに

今年も無事ConoHa Advent Calendarに参加できました。個人的にはこれを書くと年末という感じがしますね。去年は「diskspdでいろいろなVPSのストレージベンチマークを取ってみる」という記事でした。お時間のある方は読んでみてください。

それでは皆様、どうぞよいお年をお迎えください。

ブログの著者欄

斉藤 弘信

GMOインターネットグループ株式会社

2001年に同社に入社。ユーザーサポートやデータセンターでのオペレーション業務等を担当し,その後社長室などのゼネラル部門を経て,2014年9月よりクラウド/ホスティング事業のテクニカルエバンジェリストを担当。現在はWebプロモーション研究室のソフトウェアエンジニアとして勤務。得意分野はWebアプリケーションの設計/開発,Linuxサーバー構築/運用。

採用情報

関連記事

KEYWORD

採用情報

SNS FOLLOW

GMOインターネットグループのSNSをフォローして最新情報をチェック