寻找更好的自动化工作环境的方法

looking for better way of automating the work environment

我正在使用 VM(虚拟机)。我将 VM 用于测试目的,并且我经常创建 VM 或切换 VM。问题是每次 create/switch VM 时我都需要重新创建我的工作环境。我的工作环境包括文件(.bashrc、.emacs、.emacs.d、.vimrc、.gitconfig 等)。因为我需要这些文件来创建我自己的灵活 linux 环境。但是每次都要不停地复制这些文件,这让人很头疼。 请提出一个更好的方法来快速重建我的环境。

我建议为您的工作环境创建一个 github 存储库。完成后,在每个新主机上 运行:

cd ~
cd git clone [my repo URL]

...下载具有相应目录结构的所有文件。

如果这对您来说太过分了,或者如果您的主文件夹外有文件,那么 tar 球可能更合适:

cd /
tar czvf ~/my_env.tgz [path to each file]

然后在新机器上:

cd /
tar xzvf ~/my_env.tgz

请注意,使用 github 解决方案,在您更改环境中的某些内容时更新一系列主机要容易得多。

注意: 如果您需要安装软件包等,您可以包含一个 init.sh 来为您处理常见任务。

您可以创建 bash 脚本来执行此操作。据我了解,您知道 git。我建议您根据 env 文件的分类创建几个 git 存储库(可能在 github 上)。这是快速重新创建环境的示例。 在 vm 中共享 git 存储库的路径。你可以 link 文件和你的回购文件。例如.bashrc -> to/your/bashrc

#!/bin/bash
        declare -a repos=('repo1.git' 'repo2.git' 'repo3.git')

        err=0

        err_sts()
        {
        if [ 0 -ne $? ]; then
            err=
            echo above step failed exiting.. err code: $err
            exit $err              
        fi
        }

        gclone()
        {
        echo path= 
        echo repo=
        path=
        repo=
        echo "cd $hmdir"
        cd $hmdir
        echo "git clone $path/$repo"
        git clone $path/$repo
        }

        main()
        {
        echo enter the path to repos:
        read pth

        ls $pth
        err_sts 1

        #path where you want your repos 
        echo enter home dir for repos:
        read hmdir

    ls $hmdir
    err_sts 2

    err=3
    for ((i = 0; i < ${#repos[@]}; i++))
    do
    echo "ls $pth/${repos[$i]}"
    ls $pth/${repos[$i]}
    err_sts $(($err + $i))
    gclone $pth ${repos[$i]}
    done
    }

    main

我使用 CloudShare,我认为此解决方案将帮助您解决您在撰写“我一直频繁创建 VM 或切换 VM。问题是我每次都需要重新创建我的工作环境”时提到的问题我 create/switch 虚拟机”。 让我解释。 CloudShare 提供用于开发和测试应用程序的虚拟 IT 环境。您在那里有一个功能,您可以在其中 "snapshot" 您的环境并创建一个 "golden template" 当前 VM。这样做将解决您的问题,因为您不需要每次都重新创建您的 VM,并且您将能够通过单击鼠标恢复到上次工作状态。您可以在此处自行阅读更多内容:http://cloudshare.com/overview-1

希望对你有帮助