Ubuntu立てるときに、はじめにやることの大体のアレ
AWSでもGCPでもどんなクラウドでも、もしくはクライアントPCでUbuntuをインストールしてなんかするときに、ワイが大体やることをまとめたかったのでメモ書き。 いつも大体やってるんだけど、ほとんどあのコマンドなんやっけ?とかなって調べて「あぁそうやったわ」ってなるのがいい加減面倒くさくなったので。。
- OSは以下
今回は訳合ってUbuntu 20.04
。 書いた時点で最新のLTSである22.04
が良かったんだけど、MongoDBがうまく対応してなかったかなんかで一個前のLTSを採用した。
$ cat /etc/os-release NAME="Ubuntu" VERSION="20.04.4 LTS (Focal Fossa)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 20.04.4 LTS" VERSION_ID="20.04" HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" VERSION_CODENAME=focal UBUNTU_CODENAME=focal
- rootになる
初期設定はroot作業が多いので、面倒くさいからrootで作業してる。 sudoでやったほうがいいけど、まぁ、これだけだしそんなにセキュリティがちがちじゃなくてもいいかな。
$ sudo -s
- aptのアップグレードとアップデート
AWSでUbuntu作ったらsource.list
のリポジトリがap-northeast-1
のミラーを見てるみたいなで、それをそのまま利用させてもらう。 クライアントPCとかでデスクトップとして使うとかの用途なら、どこかの大学とかが公開してるミラーサイトに変更する。
# apt upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done The following NEW packages will be installed: linux-aws-5.15-headers-5.15.0-1017 linux-headers-5.15.0-1017-aws linux-image-5.15.0-1017-aws linux-modules-5.15.0-1017-aws ... # apt update Hit:1 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu focal InRelease ...
- 時間合わせる
過去に記事にしたけど、とっちらかっるのが嫌なのでリンクと内容書いとく unionsep.hatenablog.com
# timedatectl Local time: Wed 2022-08-17 02:39:47 UTC Universal time: Wed 2022-08-17 02:39:47 UTC RTC time: Wed 2022-08-17 02:39:46 Time zone: Etc/UTC (UTC, +0000) System clock synchronized: yes NTP service: active RTC in local TZ: no # timedatectl list-timezones|grep Tokyo Asia/Tokyo # timedatectl set-timezone Asia/Tokyo # date Wed Aug 17 11:40:38 JST 2022
- 日本語にしたいな
英語(us
)のままでも別にいいんだけど、マニュアル(man
)は日本語のほうが緊急時に助かったりするので、日本語にする。
# localectl status System Locale: LANG=C.UTF-8 VC Keymap: n/a X11 Layout: us X11 Model: pc105 # localectl list-locales C.UTF-8 en_US.UTF-8 # apt install language-pack-ja -y Reading package lists... Done Building dependency tree Reading state information... Done ... # localectl list-locales C.UTF-8 en_US.UTF-8 ja_JP.UTF-8 # localectl set-locale LANG=ja_JP.UTF-8
- ホスト名変えたいな
AWSだとプライベートIPを含む名前になるみたいなんだけど、管理サーバが多くなってきて脳みその切り替えのコストがしんどくなってきたんでわかり易い名前に変更してます。
# hostnamectl Static hostname: ip-xxx-xxx-xxx-xxx Icon name: computer-vm Chassis: vm Machine ID: aaaaa Boot ID: bbbbb Virtualization: kvm Operating System: Ubuntu 20.04.4 LTS Kernel: Linux 5.13.0-1029-aws Architecture: x86-64 # hostnamectl set-hostname XXXXX
- ここで一旦再起動
ロケール変えたりホスト名変えたけど、リブートしないと反映されないっぽいので、一旦このタイミングで再起動してる。
# reboot
- マニュアルを日本語にする
ゆっくり英語のマニュアルを読むのはいいんだけど、急いでるときはちょっとしんどいんでman
は日本語にしておく
# apt install manpages-ja パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下のパッケージが新たにインストールされます: manpages-ja アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。 ... # apt install manpages-ja-dev パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下のパッケージが新たにインストールされます: manpages-ja-dev アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。 ...
- visudoのエディタを変える
visudoのエディタがnano
であんまり慣れてないからvim.tiny
に変える。 選択肢の4番を指定する。
# update-alternatives --config editor There are 4 choices for the alternative editor (providing /usr/bin/editor). Selection Path Priority Status ------------------------------------------------------------ * 0 /bin/nano 40 auto mode 1 /bin/ed -100 manual mode 2 /bin/nano 40 manual mode 3 /usr/bin/vim.basic 30 manual mode 4 /usr/bin/vim.tiny 15 manual mode
- ユーザを追加
ユーザ作ってから、visudo
を使ってパスワードなしでsudo
できる権限をつける。
# adduser unionsep --disabled-password Adding user `unionsep' ... Adding new group `unionsep' (1001) ... Adding new user `unionsep' (1001) with group `unionsep' ... Creating home directory `/home/unionsep' ... Copying files from `/etc/skel' ... Changing the user information for unionsep Enter the new value, or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] Y
- 追加したユーザに
sudo
できるようにする
visudo
で開いた/etc/sudoers.tmp
に以下追加
# visudo unionsep ALL=NOPASSWD: ALL
- 作ったユーザがkeypairでログインできるようにしてる
AWSでは、ubuntu
というデフォルトのユーザが作成され、インスタンス生成時にこのユーザに独自のkeypair
を設定してる。 各々のユーザにkeypair
を作って各々のインスタンスに配布したいのだけど、Bastionに入れるユーザがワイしかいないので、コピーしてる・・・
# cp -r /home/ubuntu/.ssh /home/unionsep/ # chown -R unionsep:unionsep /home/unionsep/.ssh
その他、 ll
コマンドなんかの alias
や、 LSCOLORS
で ls
コマンドの色つけたりするけど、Ubuntuはすでにできてるのでやらない。
作ったインスタンスはAMIとかにしておくんだけど、AMIって課金対象だったりするので、あんまり作ってないなぁ。
Ansibleで構成管理したりしたらコマンド一発だしね。。
こんな感じで作ったインスタンスに node
やら java
やら elasticsearch
やらなんやかんや入れて構築したりしてる感じ。
では〜