2017-05-20 15 views
2

botoを使用してEC2インスタンスでbashスクリプトを実行しようとしています。 Botoは公共のIP上でSSHからEC2インスタンスへの方法を提供しますが、私の場合、インスタンスはプライベートIPしか持っていません。これらのインスタンスでSSHが実行される方法は、プライベートIP(Bastionホスト)を使用するすべてのインスタンスでSSHできるホストを使用しています。続き は、パブリックIP上のインスタンスに接続するためのスクリプトです:SSHからEC2インスタンスに、Bastionサーバー経由でプライベートIP上でbotoを使用

s3_client = boto3.client('s3') 
s3_client.download_file('mybucket','key/mykey.pem', '/tmp/mykey.pem') 
k = paramiko.RSAKey.from_private_key_file("/tmp/mykey.pem") 
c = paramiko.SSHClient() 
c.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
host=event 
print "Connecting to " + host 
c.connect(hostname = host, username = "ec2-user", pkey = k) 

我々は公共IPで要塞ホストを通じてP.P.P.P

+0

スクリプトはどこで実行されていますか?インターネット上の自分のコンピュータやAmazon EC2インスタンスでは? EC2の場合は、同じVPCにありますか?それがEC2の外にあり、プライベートサブネット内のインスタンスに接続しようとしている場合は、パブリックインスタンスにSSH接続し、別のSSH接続をそこからプライベートインスタンスに開始する必要があります。 –

+0

はい、私はプライベートサブネットでインスタンスにsshするこのインスタンスから最初にsshする必要があるインスタンスがあります。 paramikoを使って、上記のスクリプトでどのように達成できるのでしょうか? –

+0

これはできません。一般公開のインスタンスにSSHする必要があります。次に、PublicインスタンスからPrivateインスタンスに別のSSHセッションを開始します。 –

答えて

0

を接続する場合hostではなく、公開鍵のプライベートIPを持っている場合、インスタンスに接続する方法Amazon EC2インスタンスでいくつかのコードの実行をトリガーする必要がある場合は、SSH接続を自動化するのではなく、Amazon EC2 Run Commandを使用する方がよいでしょう。

Amazon EC2の実行コマンドは、PowerShellはWindows上でコマンドを実行するソフトウェアやパッチなどをインストールし、Linux上でシェルスクリプトやコマンドを実行するように一般的な管理タスクを自動化する簡単な方法を提供します。 Amazon EC2 Run Commandを使用すると、これらのコマンドを複数のインスタンスで実行でき、結果の可視性が提供され、インスタンス全体の構成変更を簡単に管理できます。

インスタンスには、Amazon EC2システムマネージャ(SSM)エージェントがインストールされている必要があります。参照:Installing SSM Agent

次に、Amazon EC2インスタンスfrom the management console,AWS Command-Line Interface (CLI)またはAPI呼び出しでコマンドを実行します。

sendコマンドは入力としてタグを受け入れません。ただし、最初にlist-instancesコマンドを実行してタグでインスタンスを検索し、instance-idssendコマンドに渡すことができます。参照:AWS CLI send-command

+0

EC2インスタンスに存在するいくつかのタグに基づいて、いくつかのbashスクリプトを実行しようとしています。それは可能でしょうか?はいの場合は、それについて簡単に教えていただけますか? –

+0

私は自分の答えを更新しました。あなたはタグで選択することはできませんが、タグでインスタンスを見つけてからコマンドを実行することができます。このマニュアルを読んでください。これは、複数のEC2インスタンスでコマンドを実行する非常に堅牢な方法です。 –

+0

私は自動化されたソリューションを望んでいますが、手動ではありません。私のbotoスクリプトでプライベートIPを使用してsshに手伝ってもらえれば助けになるでしょう。 –

関連する問題