VagrantでCentoOS7導入後の設定
はじめに
一つ前の記事でVagrantでCentOS7を導入しましたが、その後に行った設定等を記載します。
本記事は2020/01/25の記事です。
将来的にバージョン等が変わると思いますので、適宜その時の環境に合わせて実施してください。
環境
- ホストOS:Windows10 64bit
- ゲストOS:CentOS 7.6
- Vagrant:Vagrant 2.2.6
- VirtualBox:VirtualBox 6.0.16
Vagrantの設定
「Vagrant init」で作成されたVagrantファイルで設定を変更していきます。
1. 仮想マシンへのメモリ割り当て変更
Vagrantファイルの「vb.memory」の「xxx」に割り当てたい数値を記入します。(単位はMBです)
# # Customize the amount of memory on the VM: vb.memory = "xxx"
2. 仮想マシンに固定IPアドレスを設定
Vagrantファイルの「config.vm.network "private_network", ip:」のコメントアウト(行頭の「#」)を外せばOKです。 設定したいIPアドレスがある場合はIPアドレスを書き換えてください。
# Create a private network, which allows host-only access to the machine # using a specific IP. config.vm.network "private_network", ip: "192.168.33.10"
3. ホストマシンと仮想マシン間の共有ディレクトリ設定
ホストマシンと仮想マシン間でファイルをやり取りするための共有ディレクトリを設定します。
Vagrantファイルの「config.vm.synced_folder」のコメントアウトを外します。 「./data」がホストマシン側のディレクトリ、「/vagrant_data」が仮想マシン側のディレクトリです。 必要に応じてディレクトリを変更してください。
# Share an additional folder to the guest VM. The first argument is # the path on the host to the actual folder. The second argument is # the path on the guest to mount the folder. And the optional third # argument is a set of non-required options. config.vm.synced_folder "./data", "/vagrant_data"
共有ディレクトリに関してはVagrantファイルの設定だけではだめで、
ホストマシンに「vagrant-vbguest」をインストールする必要があります。
コマンドプロンプトで下記のコマンドを実行してインストールしてください。
vagrant plugin install vagrant-vbguest
「vagrant-vbguest」インストール後、仮想マシンを再起動します。
vagrant plugin install vagrant-vbguest
CentOS7の設定
仮想マシンにインストールしたCentOS7の設定を行っていきます。
1. パッケージのアップデート
OSのインストール後はバージョンが古いままのパッケージがあるそうなので、
アップデートを行います。
CentOS7のコンソール上で下記のコマンドを実行します。
yum -y update
2. タイムゾーンの変更
初期設定では時刻が日本時間になっていないので日本時間に変更します。
CentOS7のコンソールで下記のコマンドを実行します。
sudo timedatectl set-timezone Asia/Tokyo
3. 作業用ユーザの作成
開発等、普段の作業で使用するユーザを作成します。
CentOS7のコンソールで下記のコマンドを実行します。 コマンド実行後、パスワード入力を促されるので任意のパスワードを入力してください。
$ useradd ユーザ名 -G wheel $ passwd ユーザ名 ↓ 設定するパスワードを入力する
上記のコマンドの「-G wheel」はユーザを「wheel」というグループに設定するという意味です。
「wheel」グループに属しているとroot権限が必要なコマンドを実行する時に必要な「sudo」コマンドを使えるようになります。
4. 作業用ユーザのsshログイン設定
初期設定ではsshログインでパスワードでのログインができなくなっているため、 鍵認証を使用してsshログインできるように設定していきます。
私はteratermで鍵の作成等を実施したため、teratermでの手順を記載します。
ⅰ. teratermのインストール
ⅱ. 公開鍵と秘密鍵の作成
teratermのメニューバーで「設定」→「SSH鍵生成」をクリックします。
鍵の種類:RSA ビット数:2048 上記を設定し、「生成」をクリックします。 パスワードは設定してもしてなくても鍵を生成できます。
「公開鍵の保存」をクリックし、公開鍵を任意のフォルダに保存します。 「秘密鍵の保存」をクリックし、秘密鍵を任意のフォルダに保存します。
ⅲ. 作業用ユーザの公開鍵設定
デフォルトで作成されている「vagrant」ユーザでログインします。
「RSA/DSA/ECDSA/ED25519鍵を使う」にチェックを入れ、秘密鍵を設定し、
「OK」をクリックします。
秘密鍵は
「vagrantファイルが作成されたフォルダ\.vagrant\machines\default\virtualbox」
の「private_key」を設定します。
ログイン後、先ほど作成した公開鍵をteratermのコンソール上にドラッグアンドドロップします。
表示されたウィンドウの「SCP」を選択し、送信先に「~/」を入力します。
この操作を実施すると、「vagrant」ユーザのホームディレクトリに公開鍵が保存されます。
次に作業用ユーザのディレクトリ配下に公開鍵を保存するためのディレクトリを作成します。
一時的に「su」コマンドで作業用ユーザに切り替えます。
最後に「exit」で「vagrant」ユーザに戻ります。
$su 作業用ユーザ ↓ パスワードの入力を促されるので作成したユーザのパスワード入力する $cd $mkdir .ssh $exit
「vagrant」ユーザに戻った後、公開鍵の所有者を作業用ユーザに変更します。
公開鍵を送信した際に「vagrant」ユーザでログインしていたため、所有者が「vagrant」ユーザになっていて、
作業用ユーザのSSHログインに使用できないためです。
$sudo chmod 作業用ユーザ 公開鍵ファイル
作業用ユーザの「.ssh」ディレクトリに公開鍵ファイルを移動します。
この時、ファイルに別名をつけて移動します。
$mv 公開鍵ファイル /home/作成したユーザ/.ssh/authorized_keys
再度、作業用ユーザに切り替えて作業を行います。
「.ssh」、「公開鍵ファイル」のパーミッション(権限)を変更し、作業用ユーザ以外のユーザから参照できないようにします。
$su 作業用ユーザ $cd $chmod 700 .ssh $chmod 600 .ssh/authorized_keys
以上で、SSHログイン用の鍵の設定は完了です。
上記の手順はパスワード認証できない場合の手順です。
パスワード認証でログインできるようにするともう少し楽にできます。
ⅳ. 作業用ユーザでログイン
teratermでユーザに作業用ユーザを設定し、鍵に先ほど作成した秘密鍵を設定すると作業用ユーザでログインできます。
CentOS7導入後の設定は以上です。
とりあえずの設定なので、ほかにもセキュリティ確保の設定等調べてみてください。
参考文献
この記事は以下の情報を参考にして執筆しました。