所以我为4个开发人员的小团队建立了一个流浪汉的环境。我正在使用Ubuntu / Precise32盒子,我创建了一个shell脚本,用于配置大量的apt-get和cp调用。像这样:
#!/bin/bash
#filename: provision.sh
sudo apt-get update
apt-get install debconf-utils -y > /dev/null
debconf-set-selections <<< "mysql-server mysql-server/root_password password myPassword"
debconf-set-selections <<< "mysql-server mysql-server/root_password_again password myPassword"
sudo apt-get install -y vim apache2 mysql-server-5.5 mysql-client git sqlite python-pip phpmyadmin
sudo pip install virtualenv
sudo pip install Django==1.4
sudo a2enmod rewrite
sudo service apache2 restart
echo "Copying hosts ..."
sudo cp /vagrant/hosts /etc/
echo "Copying .gitconfig ..."
sudo cp /vagrant/.gitconfig /home/vagrant/
echo "Copying .bashrc ..."
sudo cp /vagrant/.bashrc /home/vagrant/
echo "Copying .bash_aliases ..."
sudo cp /vagrant/.bash_aliases /home/vagrant/
sudo ln -fs /usr/share/phpmyadmin /var/www
if [ ! -d "/vagrant/projects" ]; then
echo "Creating folder /vagrant/projects"
mkdir /vagrant/projects
fi
cd /vagrant/projects
#git clone myServer:/git/project.git
#can't clone because the user is vagrant. tries ssh vagrant@myServer asking for a password
现在我想克隆一些git存储库(来自我们自己的服务器),如果它们还不存在的话。但是在该规定中,活动用户是流浪汉,我不想在我们的git服务器或我们可以使用的任何其他服务器上创建流浪者用户。
团队中的每个开发人员都已在其他服务器上拥有自己的ssh帐户。那么我应该在所有流浪盒中创建所有用户吗?如果是这样,他们怎么能没有密码ssh到其他服务器?
我不希望开发人员(包括我自己)在他们自己的流浪盒上进行用户管理(像adduser,ssh-copy-id等...)。我想提供克隆git存储库和rsync的所有内容,但我希望能够为不同的流浪盒设置合适的用户。
我希望能够从shell提供这样做:
如果Vagrant box 1 =&gt;创建已经对我们的服务器进行无密码ssh访问的用户developer1
如果Vagrant box 2 =&gt;创建已经对我们的服务器进行无密码ssh访问的用户developer2
如果Vagrant box 3 =&gt;创建已经对我们的服务器进行无密码ssh访问的用户developer3
如果Vagrant box 4 =&gt;创建已经对我们的服务器进行无密码ssh访问的用户developer4
谢谢!
答案 0 :(得分:0)
我不知道答案,但希望我能够指出你可能的解决方案。
我猜测/ vagrant共享将指向您设置中的主机,在这种情况下,您可以将该信息存储在各个开发人员的计算机上的项目文件夹中,然后调用/使用它配置设置。
或者,尝试使用&#39; Socket.gethostname&#39;在vagrant文件中 - 在Ruby中它返回主机的名称,因此您可以使用它来嗅探哪个开发人员的机器正在运行的流氓文件。
即。
if Socket.gethostname === 'Developer1PC'
end
if Socket.gethostname === 'Developer2PC'
end
if Socket.gethostname === 'Developer3PC'
end
if Socket.gethostname === 'Developer4PC'
end
你必须原谅任何红宝石错误,我不是红宝石开发者,但我只是必须在Vagrant中做类似的事情。