EC2でVPCに起動されたインスタンスでは、HTTP_PROXY
とパートナーがVPCの外部にあるものにアクセスするように設定されている必要があります。
ここで、cloud-configに渡されるユーザーデータを制御できないという問題が発生しました(データパイプラインを使用)。プロキシが設定されていない場合、cloud-initユーザースクリプト中にwgetがハング(接続しようとしている)しているのがわかります。
/etc/environment
に環境変数を設定すると、これはランレベル3では読み取られないようです(これは正に古いAmazon Linux 2013.03
を使用し、ps axf
はランレベル3から呼び出されたことを示していますが、私は認めなければなりませんさまざまなinitデーモンとそれらのcloud-initとの相互作用に精通していません):
1354 ? S 0:00 \_ /bin/bash /etc/rc3.d/S99cloud-init-user-scripts start
1355 ? S 0:00 \_ /usr/bin/python2.6 /usr/bin/cloud-init-run-module once-per-instance user-scripts execute run-parts /var/lib/cloud/data/scripts
1356 ? S 0:00 \_ /bin/bash /usr/bin/run-parts /var/lib/cloud/data/scripts
1360 ? S 0:00 \_ /bin/bash /var/lib/cloud/data/scripts/part-000
1362 ? S 0:00 \_ wget -O remote-runner-install -N http://datapipeline-ap-southeast-2.s3.amazonaws.com/ap-southeast-2/bootstrap-actions/latest/TaskRu...
\
\ This works in a login Shell as I've set
the variables in /etc/environment
ここでこれらの変数を設定することは機能していないようです:
Cloud-init runtime中に使用されるプロキシを設定するにはどうすればよいですか?
現時点では、実行時にクラウドinitにプロキシを追加する良い方法はありません。それについては未解決のバグがあります launchpad/cloud-init上 。
コメントに記載されている回避策がありますが、それらはすべて本質的にアプリケーション固有であり(たとえば、yum
またはapt
の場合)、構成にプロキシ変数を設定します。