2013-04-10 18 views
5

Używam instancji ec2 @ ubuntu. Próbuję automatycznie "git pull" po uruchomieniu nowej instancji z mojego AMI. Repo dir jest już w moim AMI, wszystko czego potrzebuję to aktualizacja repo.Jak mogę zrobić "git pull" automatycznie po uruchomieniu mojego serwera

co robię teraz to kładę "origin master git pull" w rc.local .... ale to nie działa ....

+0

to może dać wskazówkę: http://askubuntu.com/questions/9853/how-can-i-make- rc-local-run-on-startup – rcomblen

Odpowiedz

2

git --git-dir=some/dir/.git pull origin master powinien działać

+0

Mam go do pracy ... – Wen

4

mam go do pracy ..

sudo -u ubuntu -i git --git-dir =/home/ubuntu/blastoff/.git - work-tree =/home/ubuntu/blastoff/fetch pochodzenie sudo -u ubuntu -i git --git-dir =/home/ubuntu/blastoff/.git --work-tree =/home/ubuntu/blastoff/merge origin/master

0

The właściwe miejsce do umieszczenia kodu nie jest /etc/rc.local/, ale ~/.profile. Następnie można uruchamiać polecenia jako zalogowany użytkownik bez potrzeby zmieniania użytkownika wykonującego komendy za pomocą sudo lub .

0

notatek z https://stackoverflow.com/a/8880633/659188 i odpowiedź pracuje powyżej, można zastosować to do potencjalnie wielu folderach robiąc coś takiego w pliku rc.local (również tylko ściąga aktualną gałąź zamiast zawsze jest mistrzem):

#!/bin/bash -e 
# /etc/rc.local 

# Ensure folders in array have a trailing slash! 

declare -a folders=("/var/www/html/project1/" "/var/www/html/project2/" "/some/other/location/") 

# Update to latest in all above folders 

for i in "${folders[@]}" 
do 
     sudo -u ubuntu -i git --git-dir=$i/.git --work-tree=$i fetch origin 
     sudo -u ubuntu -i git --git-dir=$i/.git --work-tree=$i pull 
done 

exit 0 
0

Jeśli chcesz utworzyć git pull, gdy instancja została utworzona (pierwsze uruchomienie), możesz użyć cloud-init.

Sprawdź docs AWS To pass a shell script to an instance with user data

ten można zautomatyzować za pomocą ansible/saltstack itp ale do testowania, można ręcznie załadować skryptu. W punkcie 3 "Konfiguruj instancję" w szczegółach zaawansowania wybierz opcję Jako plik i umieść poniższy skrypt.

enter image description here

Można przesłać tam swój własny scenariusz:

#!/bin/sh 

echo "git pull or any other custom commands here" 
Powiązane problemy