[英]How to organize users in vagrant shell provision?
因此,我正在為由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'ing,但是我希望能夠為不同的無所事事的人設置合適的用戶。
我希望能夠從shell配置中做到這一點:
如果Vagrant框1 =>創建已經對我們的服務器具有無密碼ssh訪問權限的用戶developer1
如果Vagrant box 2 =>創建已經對我們的服務器具有無密碼ssh訪問權限的用戶developer2
如果Vagrant box 3 =>創建已經對我們的服務器具有無密碼ssh訪問權限的用戶developer3
如果Vagrant box 4 =>創建已經對我們的服務器具有無密碼ssh訪問權限的用戶developer4
謝謝!
我不知道答案,但希望我能為您指出可能的解決方案。
我猜想/ vagrant共享將指向您設置中的主機,在這種情況下,您可以將該信息存儲在單個開發人員計算機上的項目文件夾中,然后在預配設置中調用/使用它。
或者,嘗試在流浪者文件中使用“ Socket.gethostname”-在Ruby中,它返回主機的名稱,因此您可以使用它來嗅探該流浪者文件在哪台開發人員的計算機上運行。
即
if Socket.gethostname === 'Developer1PC'
end
if Socket.gethostname === 'Developer2PC'
end
if Socket.gethostname === 'Developer3PC'
end
if Socket.gethostname === 'Developer4PC'
end
您必須原諒任何ruby錯誤,我不是ruby開發人員,但是我只需要按照Vagrant中的類似方法做一些事情。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.