Ubuntu

在 Ubuntu 伺服器啟動時拉取 GitHub 儲存庫

  • August 18, 2014

我有一個自動縮放 EC2 組,並且我有一個在伺服器之間使用 git 的中央配置。它們設置有密鑰,因此不需要密碼。

我想確保當一個實例從 AMI 啟動和創建(具有可能過時的配置)時,它使用普通的 git pull 命令提取配置。該命令必須以特定使用者身份執行,因為只有該使用者可以 git pull 因為它是在其主目錄中具有 RSA 密鑰的使用者。

所以基本上在伺服器啟動時,某個使用者需要在某個儲存庫中執行 git pull。

您可以在 /etc/rc.local 中設置該命令。修改圖像中的 rc.local,使其包含以下內容:

#!/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

只需替換為您希望執行“git pull”的使用者。另外,以防萬一,不要忘記執行:

chmod +x /etc/rc.local

這是 rc.local 上相關 RedHat 文件的一部分,但在所有發行版上基本相同:

/etc/rc.d/rc.local 腳本由 init 命令在引導時或更改執行級別時執行。將命令添加到該腳本的底部是一種執行必要任務的簡單方法,例如啟動特殊服務或初始化設備,而無需在 /etc/rc.d/init.d/ 目錄中編寫複雜的初始化腳本並創建符號連結。

引用自:https://serverfault.com/questions/622063