2

いくつかの ubuntu ec2 インスタンスを実行しています。新しいインスタンスが AMI から起動されるたびに Github からコードをプルする自動化スクリプトを実行したいと考えています。現在ssh、サーバーにアクセスしてコマンドを実行するとgit pull origin master、パスワードキーが要求されます。

このプロセスを自動化するにはどうすればよいですか? したがって、AMI から新しいインスタンスを起動した後、このスクリプトは次のようになります。

  • 走る
  • コードとサブモジュールをプルする
  • いくつかのファイルを作成して構成する

それを達成するのを手伝ってください。

ありがとう

4

3 に答える 3

7

これにはおそらくある程度の時間と構成が必要ですが、これで正しい道に進むことができます。

まず、ssh キーをセットアップして、パスワードなしでリポジトリから自動的にプルできるようにします。ここで概説: https://help.github.com/articles/generating-ssh-keys

次に、Github から「pull」コマンドを発行するための起動スクリプトを作成します。ここ: https://help.ubuntu.com/community/UbuntuBootupHowto

次に、AMI を保存します。新しい EC2 AMI を開始すると、スクリプトが実行され、Github の変更が取り込まれます。

また、gits リモート パスが SSH を使用していることを確認してください。HTTPS の場合は、常にパスワードを要求されます。

于 2012-12-17T14:02:55.437 に答える
1

最善の方法は、Ubuntu が正規のイメージ内で CloudInit を利用しているという事実を利用することです。

CloudInit を使用すると、EC2 ユーザー データとしてさまざまな起動段階で実行するスクリプト (つまりシェル スクリプト) を渡すことができます。

このようなスクリプトから GIT コマンド ライン シーケンスを実行するのは非常に簡単です。彼は、例を含むドキュメントへのリンクです。

https://help.ubuntu.com/community/CloudInit

于 2012-12-17T21:00:15.103 に答える
0

ubuntu インスタンスへのユーザー パスワード アクセスを作成します。複数必要な場合は、この特定のインスタンスを複製します。これで、キー アクセスから解放されます。そのインスタンスでプロセスを自動化する必要がある場合は、それを cron にするか、ssh 経由でそのインスタンスにスクリプトを送信し、cron にそれを見つけて実行させます。

于 2012-12-17T14:01:32.863 に答える