私はec2 instance @ ubuntuを使っています。私はAMIから新しいインスタンスを起動した後、自動的に "git pull"を実行しようとしています。 repo dirはすでに私のAMIに入っています。私はrepoを更新するだけです。サーバーの起動時に "git pull"を自動的に行うにはどうすればいいですか?
答えて
を動作するはず
私が今やっていることは、私はrc.localにに「gitのプル原点マスター」を入れている....しかし、それは動作しません....私はそれを得ました動作するように..
はsudo -u Ubuntuの-iのgit --git-DIR = /ホーム/ Ubuntuの/ blastoff/.git --workツリー= /ホーム/ Ubuntuの/ blastoff /フェッチ起源 のsudo -uのubuntu -i git --git-dir =/home/ubuntu/blastoff/.git --work-tree =/home/ubuntu/blastoff /マージ元/マスター
コードを置く場所は/etc/rc.local/
ではなく、~/.profile
です。 sudo
またはsu
を使わずに、コマンドを実行しているユーザーを変更するために、ログインしたユーザーとしてコマンドを実行できます。
https://stackoverflow.com/a/8880633/659188からノートを取り、上記のあなたの作業の答えは、あなたがあなたのrc.local
ファイル内でこのような何かを行うことによって、潜在的に複数のフォルダにこれを適用することができ(また、唯一常にあること、マスターするのではなく、現在のブランチを引く):
#!/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
git pull
をインスタンス作成時(最初の起動時)に実行する場合は、cloud-initを使用できます。
AWSドキュメントにTo pass a shell script to an instance with user data
を確認してくださいこれはansible/saltstackなどを使用することによって自動化することができますが、テストのために、手動でスクリプトをアップロードすることができます。 Advance Detailsのステップ3「Configure instance」で、「As file」オプションを選択し、スクリプトを下に置きます。
あなたはそこにあなたのカスタムスクリプトをアップロードすることもできますhttp://askubuntu.com/questions/9853/how-can-i-make-:
#!/bin/sh
echo "git pull or any other custom commands here"
が、これはあなたにヒントを与えるかもしれませんrc-local-run-on-startup – rcomblen