GCP Compute Engine Ubuntu minimal のメモ


GCP の Compute Engine で Ubuntu minimal を選ぶとほとんど何もパッケージが入っておらずわけがわかりませんが、その対応を含めた自分用メモです。永久無料枠での使用前提

Compute Engine 一般

  • 永久ストレージは30GBまでいけるが目一杯使うとスワップパーティションを追加できずインスタンスも1つしか作れないから14GBくらいで作るといいかも
  • 課金データを保存する Cloud Storage と同じ場所にCompute Engineの仮想マシンを立てるのが良さげ
  • Cronで定期ジョブを実行するだけなら仮想マシン作成時には何もポートを開ける必要がない
  • 設定→使用量データのエクスポートから使用量データの記録を取るようにする

Ubuntu Minimalの話

  • ゾーン永続ディスクの追加またはサイズ変更 でディスクを追加してスワップパーティションにする。追加できるディスクは最低10GBの大きさで、追加するとLinuxからは/dev/sdb と見えるから mkswap /dev/sdb して /etc/fstab に追加する。
  • Optimizing persistent disk performance に従ってext4swap パーティションのマウントオプションに discard を入れてもいいかも知れない
  • journald.conf とか logind.conf を設定するとjournaldが起動しなくなったりブラウザからsshログインできなくなった
  • /etc/default/grub のブートパラメーターを設定してupdate-grubしても効かない。代わりに /etc/default/grub.d/50-cloudimg-settings.cfg を編集して systemd.unified_cgroup_hierarchy=1cgroup_no_v1=all を追加する。
  • sudo bash でルートプロンプトを出す
  • 最初に apt-utilswhiptail を入れてまともにパッケージインストールできるようにする
  • 次に vim-tiny を入れて以下を作る
/etc/apt/apt.conf.d/00myconf
APT::Install-Recommends 0;
APT::Get::Purge 1;
  • apt/sources.list から ubuntu-backports を削除
  • tzdata, language-pack-en をインストールする
  • localectl set-locale en_US.UTF-8 する
  • chrony を削除して metadata.google.internal を時刻合わせ先として /etc/systemd/timesyncd.conf に設定し timesyncd を再スタートする(chronyを使いつづけても可。その場合 dpke-reconfigure chrony などで時刻合わせ先を設定)。timedatectl status で確認
  • (rsyslog はログが煩いので削除する
  • dpkg-reconfigure unattended-upgrades で更新を有効にし、/etc/apt/apt.conf.d/50unattended-upgrades を編集する
  • /etc/systemd/system.conf と /etc/systemd/user.conf に以下を入れる
DefaultCPUAccounting=On
DefaultMemoryAccounting=On
DefaultTasksAccounting=On
DefaultIOAccounting=On
DefaultBlockIOAccounting=yes
DefaultIPAccounting=On