2015-08-27 12 views
4

Я работаю над виртуальными машинами. Я использую виртуальные машины для целей тестирования, и я часто занимаюсь созданием виртуальных машин или переключением виртуальных машин. Проблема в том, что мне нужно воссоздать свою рабочую среду каждый раз, когда я создаю/переключаю VM. Моя рабочая среда включает файлы (.bashrc, .emacs, .emacs.d, .vimrc, .gitconfig и т. Д.). Поскольку мне нужны эти файлы для создания моей собственной гибкой среды linux. Но его головная боль постоянно копирует эти файлы. Пожалуйста, предложите лучший способ быстрого воссоздания моего env.ищет лучший способ автоматизации рабочей среды

+0

Мои друзья используют Puppet, чтобы следить за этими пользовательских файлов. См. Http://serverfault.com/questions/330584/recommendations-on-managing-dot-files-for-users-using-puppet – user244255

+0

Я использую dfm для этого https://github.com/justone/dfm – edi9999

ответ

2

Вы можете создать скрипт bash для этого. По моему пониманию вы знаете git. Я предлагаю вам создать пару git-репозиций (возможно, на github) на основе классификации ваших файлов env. Вот пример быстрого воссоздания вашего env. В vm поделитесь ссылкой на git repos. И вы можете связать файлы с вашими репо-файлами. например .bashrc -> к/вашей/Bashrc

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

     err=0 

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

     gclone() 
     { 
     echo path=$1 
     echo repo=$2 
     path=$1 
     repo=$2 
     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 
1

Предлагаю создать репозиторий github вашей рабочей среды. Как только это будет сделано, на каждом новом хост-хосте:

cd ~ 
cd git clone [my repo URL] 

... чтобы загрузить все ваши файлы с соответствующей структурой каталогов.

Если это слишком для вас, или если у вас есть файлы за пределами вашей домашней папки, а затем, возможно, деготь шар может быть более подходящим:

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

Затем на новой машине:

cd/
tar xzvf ~/my_env.tgz 

Обратите внимание, что с решением github гораздо проще обновлять ряд хостов, поскольку вы что-то изменяете в своей среде.

NB: Если вам необходимо установить пакеты и т. Д., Вы можете включить init.sh, который будет выполнять общие задачи для вас.

0

Я использую CloudShare, и я думаю, что это решение поможет вам с проблемой, что вы ссылаетесь, когда вы пишете "я продолжаю часто создавать виртуальные машины или переключение виртуальных машин проблемы. что мне нужно воссоздать свою рабочую среду каждый раз, когда я создаю/переключаю VM ». Позвольте мне объяснить. CloudShare предоставляет виртуальную ИТ-среду для разработки и тестирования ваших приложений. У вас есть функция там, где вы можете «сделать снимок» своей среды и создать «золотой шаблон» вашей текущей виртуальной машины. Это поможет решить вашу проблему, так как вам не нужно будет каждый раз создавать свои виртуальные машины, и вы сможете вернуться к последнему рабочему состоянию одним щелчком мыши. Вы можете прочитать больше по своему усмотрению здесь: http://cloudshare.com/overview-1

Я надеюсь, что это поможет вам

Смежные вопросы