寻找更好的自动化工作环境的方法
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
希望对你有帮助
我正在使用 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
希望对你有帮助