はじめに
Azure上でLinuxVMを立ち上げる時に最低限やっておく設定をまとめてみました。
前提条件
OSはCentOS7、Ubuntu18.04とします。
historyにタイムスタンプを表示(推奨)
いつどんなコマンドを叩いたか追えるように。
~/.bashrc
# 以下追記
HISTTIMEFORMAT='%Y-%m-%d %T%z '
# 再起動
exec $SHELL -l
スワップファイルを作成(推奨)
# 事前確認
$ free
total used free shared buff/cache available
Mem: 3514412 166960 3174020 8468 173432 3113864
Swap: 0 0 0
# スワップファイル有効化
$ sudo vi /etc/waagent.conf
……省略(修正箇所のみ表示)……
# CentOS
ResourceDisk.EnableSwap=y
ResourceDisk.SwapSizeMB=4096 #メモリの2倍を推奨。仮想サーバのSKUにより値は異なる。
# Ubuntu18.04 上記の二項目の他↓を設定
ResourceDisk.Format=y
タイムゾーン変更(推奨)
デフォルトのUTCではなく日本時間(JST)で管理したい時に。
# 事前確認
$ timedatectl
Local time: 金 2018-02-02 09:52:06 UTC
Universal time: 金 2018-02-02 09:52:06 UTC
RTC time: 金 2018-02-02 09:52:46
Time zone: Etc/UTC (UTC, +0000)
NTP enabled: yes
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
# システムクロックのタイムゾーンを変更
$ sudo timedatectl set-timezone Asia/Tokyo
# ハードウェアクロックのタイムゾーンをUTCへ変更
$ sudo timedatectl set-local-rtc 0
# 変更後確認
$ timedatectl
localとキーボードレイアウトを変更
# 変更前確認
$ localectl status
System Locale: LANG=en_US.UTF-8
VC Keymap: us
X11 Layout: us
# 日本語に変更
$ sudo localectl set-locale LANG=ja_JP.utf8
$ sudo localectl set-keymap jp106
パスワード設定
Azure Potalなどからコンソール接続したいときには必要です。
$ sudo passwd hoge
$ sudo passwd root
SELinux無効化
SELinux使えこなせるつよつよエンジニアには不要かもしれません。
# 事前確認
$ getenforce
Enforcing
# configバックアップ
$ sudo cp -piv /etc/selinux/config /etc/selinux/config.`date "+%Y%m%d"`
`/etc/selinux/config' -> `/etc/selinux/config.20180202'
# 編集
$ sudo vi /etc/selinux/config
……省略(修正箇所のみ表示)……
##SELINUX=enforcing
SELINUX=disabled
Log Analytics
syslogやアクセスログ等のログを統合管理したい場合は推奨しておきます。
事前にAzure Potal等でLog Analyticsワークスペースを作成しておく必要があります。
wget https://raw.githubusercontent.com/Microsoft/OMS-Agent-for-Linux/master/installer/scripts/onboard_agent.sh && sh onboard_agent.sh -w <ワークスペース ID> -s <ワークスペース PRIMARY KEY>
Azure CLI(推奨)
何かと使うのでインストールしておくとのちのち便利です。
# CentOS
## リポジトリキーのインポート
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
## リポジトリ情報の登録
echo -e "[azure-cli]
name=Azure CLI
baseurl=https://packages.microsoft.com/yumrepos/azure-cli
enabled=1
gpgcheck=1
gpgkey=https://packages.microsoft.com/keys/microsoft.asc" | sudo tee /etc/yum.repos.d/azure-cli.repo
## インストール
sudo yum install azure-cli
# Ubuntu18.04
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
パッケージアップデート(必須)
これはタイトル通り最低限やっておきたいです。
# CentOS7
$ sudo yum -y update
# Ubuntu18.04
## パッケージ情報の更新
$ sudo apt update
## パッケージ更新
$ sudo apt upgrade
再起動(必須)
$ sudo shutdown -r now
諸々確認
# スワップファイル確認
$ free
total used free shared buff/cache available
Mem: 3514412 167820 3198808 8468 147784 3126148
Swap: 4194300 0 4194300
# タイムゾーン確認
$ timedatectl
Local time: 金 2018-02-02 18:52:44 JST
Universal time: 金 2018-02-02 09:52:44 UTC
RTC time: 金 2018-02-02 09:53:25
Time zone: Asia/Tokyo (JST, +0900)
NTP enabled: yes
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
# 変更後確認
$ localectl status
System Locale: LANG=ja_JP.utf8
VC Keymap: jp106
X11 Layout: jp
X11 Model: jp106
X11 Options: terminate:ctrl_alt_bksp
# SELinux確認
$ getenforce
Disabled
# ワークスペース登録状況
$ sudo /opt/microsoft/omsagent/bin/omsadmin.sh -l
Primary Workspace: <workspaceId> Status: Onboarded(OMSAgent Running)
# Azure CLI バージョン確認
$ az --version
azure-cli 2.5.1
command-modules-nspkg 2.0.3
core 2.5.1
nspkg 3.0.4
telemetry 1.0.4
...
最後に
他の方がどのようなことをやっているのか知りたいので上記以外にもありましたらコメント頂けると助かります。
参考
Azure VMでLinuxインスタンスを起動したら最初にやっておくべき初期設定
chrony.conf(5) Manual Page