Saya tahu Anda menggunakan Wayang, tetapi saya menjalankannya menggunakan skrip bash ini ( provisioners/shell/application.setup.sh
):
#!/bin/bash
local_user=vagrant
if [ ! -n "$(grep "^bitbucket.org " /home/$local_user/.ssh/known_hosts)" ]; then
ssh-keyscan bitbucket.org >> ~/.ssh/known_hosts 2>/dev/null;
fi
if [[ ! -d "/home/$local_user/app" ]]; then
git clone git@bitbucket.org:czerasz/some-app.git /home/$local_user/app
chown -R $local_user:$local_user /home/$local_user/app
su - $local_user -c "source /usr/local/bin/virtualenvwrapper.sh && mkvirtualenv some-env && workon some-env && pip install -r /home/$local_user/app/requirements.txt"
fi
Orang bisa dengan mudah mengubahnya menjadi manifes wayang ...
Bersama dengan ini Vagrantfile
config.vm.define "web1", primary: true do |web1_config|
web1_config.ssh.forward_agent = true
# Create a private network, which allows host-only access to the machine
web1_config.vm.network "private_network", ip: "192.168.11.10"
web1_config.vm.hostname = "web1.#{domain}"
web1_config.vm.provision "shell", path: "provisioners/shell/python.setup.sh"
web1_config.vm.provision "shell", path: "provisioners/shell/application.setup.sh"
end
Poin kunci bagi saya adalah ketika saya mengeksekusi:
su - $local_user -c "ssh-keyscan bitbucket.org >> ~/.ssh/known_hosts 2>/dev/null;"
su - $local_user -c "git clone git@bitbucket.org:czerasz/some-app.git /home/$local_user/app"
Itu tidak berhasil. Seolah kunci tidak dilewati menggunakan su
. Jadi saya mengkloning repo sebagai root dan kemudian mengubah kepemilikan sesudahnya.
Posting ini sangat membantu.