公式でboxを配布していますが、一度最初からやってみたいなと思い、やってみました。
ちなみにWindows環境でやっています。
手順というよりは、作業ログみたいな感じで記録します。
用意するもの
・Linuxのインストールメディア(ISO)
Docker公式が推している軽量のLinux「Alpine Linux」とか、「Ubuntu」とかやりやすそうですね。
ここでは手元にあった「RedHat Enterprise Linux」を使用します。「CentOS」でも同じだと思います。
・Vagrant
・VirtualBox
上記2つはインストール前提で話を進めます。
VirtualBoxの設定
まずはLinuxをインストールしていきます。
「新規」をクリックして下記のように設定しました。
・仮想マシン名は「rhel7」
・Typeは「Linux」、バージョンは「Red Hat(64bit)」
・メモリ512MB、ファイルタイプVDI、可変サイズ、容量8GB
起動する前に「設定」をしました。
・NICはアダプタ1のみでNAT割り当てにする(デフォルト設定)
・オーディオを無効化する
・USBを無効化する
OSインストール
・デバイスの光学ドライブにインストールメディアを指定する
・言語は「日本語」を指定
・ソフトウェアの選択は、適宜設定する
・イーサーネットはこの段階では設定しない
・rootパスワードは、本家ドキュメントに合わせて「vagrant」
・ユーザーの作成で「vagrant」、パスワードも「vagrant」
・ライセンス同意
インストール完了後、再起動してrootでログインする
NIC有効化
このままだとssh等で繋げられないのでNICを設定します。
私の環境では「ifcfg-enp0s3」を利用します。
ls -l /etc/sysconfig/network-scripts/ifcfg-enp0s3
sed -i -e "s/ONBOOT=no/ONBOOT=yes/" /etc/sysconfig/network-scripts/ifcfg-enp0s3
ls -l /etc/sysconfig/network-scripts/ifcfg-enp0s3
Guest Additions
VirtualBox上で
[デバイス]→[光学ドライブ]→[Guest Additions CD イメージの挿入]
mkdir /mnt/cdrom
ls -ld /mnt/cdrom
mount /dev/cdrom /mnt/cdrom/
cd /mnt/cdrom/
pwd
ls -l VBoxLinuxAdditions.run
sh VBoxLinuxAdditions.run
その他
この辺は環境に合わせて自由に設定してみてください。
・デフォルトランレベル
・不要なサービスの停止
・ホストオンリーアダプタの利用
sudoの設定
visudo
下記を記載する
vagrant ALL=(ALL) NOPASSWD: ALL
su - vagrant
sudo ls /root
SELinuxの設定
ls -l /etc/sysconfig/selinux
vi /etc/sysconfig/selinux
下記を記載する
SELINUX=disabled
ファイアウォールの設定
systemctl status firewalld
systemctl stop firewalld
systemctl status firewalld
鍵の登録
ls -ld /home/vagrant/.ssh
mkdir -m 700 -p /home/vagrant/.ssh
ls -ld /home/vagrant/.ssh
ls -l /home/vagrant/.ssh/authorized_keys
touch /home/vagrant/.ssh/authorized_keys
chmod 600 /home/vagrant/.ssh/authorized_keys
chown -R vagrant:vagrant /home/vagrant
ls -l /home/vagrant/.ssh/authorized_keys
vi /home/vagrant/.ssh/authorized_keys
下記を記載する
text:ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key
cat /home/vagrant/.ssh/authorized_keys
※やらないと、boxの起動時に「default: Warning: Authentication failure. Retrying...」とメッセージが出続ける
ボックスの作成、登録
shutdown -h now
コマンドプロンプトで操作
vagrant --version
ボックス化
vagrant package --base [名前.box]
登録
vagrant box add [VM名] [名前.box]
vagrant box list
初期化
vagrant init [ユーザ名]/[VM名]
カレントに「Vagrantfile」が生成される
テキストエディタで開き、下記を追記する
config.vm.box = "[名前]"
config.ssh.guest_port = 22
config.ssh.username = "vagrant"
config.ssh.host = "127.0.0.1"
config.ssh.private_key_path = "C:/Users/[ユーザ名]/.vagrant.d/insecure_private_key"
config.ssh.insert_key = false
ボックスの起動
起動
vagrant up
ステータス確認
vagrant status
接続
vagrant ssh
停止
vagrant halt
設定確認
vagrant ssh-config
再起動
vagrant reload
boxのコピー
配布する際など、boxをコピーする場合はこちら
vagrant package [VM名] --output [名前.box]