diff --git a/vagrant/.gitignore b/vagrant/.gitignore new file mode 100644 index 0000000..8000dd9 --- /dev/null +++ b/vagrant/.gitignore @@ -0,0 +1 @@ +.vagrant diff --git a/vagrant/Vagrantfile b/vagrant/Vagrantfile new file mode 100644 index 0000000..1425b49 --- /dev/null +++ b/vagrant/Vagrantfile @@ -0,0 +1,16 @@ +Vagrant.configure("2") do |config| + config.vm.box = "ubuntu/jammy64" + + # ファイルの共有をしない + config.vm.synced_folder ".", "/vagrant", disabled: true + + # 自動起動で`./setup.sh`を実行 + config.vm.provision "shell", path: "./setup/init.sh" + + # リソースの設定 + config.vm.provider "virtualbox" do |vb| + vb.memory = "512" + vb.cpus = 1 + vb.name = "shell-training-vm" + end +end diff --git a/vagrant/attach.sh b/vagrant/attach.sh new file mode 100755 index 0000000..b79617b --- /dev/null +++ b/vagrant/attach.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +command vagrant ssh diff --git a/vagrant/recreate.sh b/vagrant/recreate.sh new file mode 100755 index 0000000..23e1ba8 --- /dev/null +++ b/vagrant/recreate.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +command vagrant destroy -f && vagrant up diff --git a/vagrant/setup/init.sh b/vagrant/setup/init.sh new file mode 100644 index 0000000..eeb403b --- /dev/null +++ b/vagrant/setup/init.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +VAGRANT_HOME="/home/vagrant" + +apt-get update + +apt-get install -y \ + fish \ + lolcat sl figlet cowsay toilet + +# TODO: サンプル用のディレクトリ構成を作成する + +# PS1に仮想環境であることを明記 +command cat <<'EOF' >>"$VAGRANT_HOME/.bashrc" +export PS1="(vagrant) ${PS1}" +EOF + +command mkdir -p "$VAGRANT_HOME/.config/fish" +command cat <<'EOF' >>"$VAGRANT_HOME/.config/fish/config.fish" +set -gx PS1 "(vagrant) $PS1" +EOF + +echo "セットアップが完了しました!"