Puxe o repositório GitHub no início do servidor Ubuntu

2

Eu tenho um grupo EC2 de escalonamento automático e eu tenho uma configuração central usando o git entre os servidores. Eles estão configurados com chaves, então eles não precisam de senha.

Eu quero ter certeza de que quando uma instância é iniciada e criada a partir da AMI (com uma configuração possivelmente desatualizada), ela puxa a configuração usando um comando git pull normal. O comando deve ser executado como um determinado usuário, já que somente esse usuário pode git pull, já que é o único com a chave RSA em seu diretório inicial.

Então, essencialmente, no servidor, um certo usuário precisa executar o git pull em um determinado repositório.

    
por aFreshMelon 18.08.2014 / 00:56

1 resposta

1

Você pode definir esse comando em /etc/rc.local. Modifique rc.local na sua imagem, de modo que consista em algo ao longo destas linhas:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

pushd /certain/repository
su -s /bin/bash -c "git pull" <username>
popd
exit 0

Basta substituir com o usuário sob quais privilégios você deseja que o 'git pull' seja executado. Além disso, apenas no caso, não se esqueça de executar:

chmod +x /etc/rc.local

Esta é a parte da documentação relevante do RedHat em rc.local, mas é basicamente a mesma em todas as distribuições:

The /etc/rc.d/rc.local script is executed by the init command at boot time or when changing runlevels. Adding commands to the bottom of this script is an easy way to perform necessary tasks like starting special services or initialize devices without writing complex initialization scripts in the /etc/rc.d/init.d/ directory and creating symbolic links.

    
por 18.08.2014 / 01:25