# -*- mwde: ruby -*-
# vi: set ft=ruby ff=unix expandtab ts=2 sw=2 :

# 環境変数でVM内のUSER/UID/GIDを指定(未定義ならばvagrantコマンド実行ユーザーのUSER/UID/GIDを利用)
VUSER = ENV.fetch('VUSER', `whoami`.chomp) 
VUID = ENV.fetch('VUID', `id -u`.chomp) 
VGID = ENV.fetch('VGID', `id -g`.chomp) 

Vagrant.configure("2") do |config|
  config.vm.box = "bento/fedora-39"
  # マウントオプションを明示的に指定
  config.vm.synced_folder ".", "/vagrant", mount_options: ["uid=#{VUID}", "gid=#{VGID}"]
  config.vm.provision "shell", inline: <<-SHELL
    set -x

    # Vagrantfile 内で定義した変数をスクリプト内で使用
    VUSER="#{VUSER}"
    VUID="#{VUID}"
    VGID="#{VGID}"

    # 指定されたUIDとGIDを持つユーザーが存在しなければ作成
    if ! getent group "$VGID"; then
        groupadd -g "$VGID" "$VUSER"
    fi
    if ! getent passwd "$VUSER"; then
      useradd -d "/home/$VUSER" -m -s /bin/bash -u "$VUID" -g "$VGID" "$VUSER"
    fi

    # 作成したユーザーに対してホームディレクトリに適切な権限を付与
    chown -R "$VUSER":"$VUSER" "/home/$VUSER"
  SHELL
end

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS