web-dev-qa-db-ja.com

cloud-initランタイム時/前のプロキシ設定

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

ここでこれらの変数を設定することは機能していないようです:

  • / etc/environment
  • / etc/sysconfig/cloudinit

Cloud-init runtime中に使用されるプロキシを設定するにはどうすればよいですか?

1
kadrach

現時点では、実行時にクラウドinitにプロキシを追加する良い方法はありません。それについては未解決のバグがあります launchpad/cloud-init上

コメントに記載されている回避策がありますが、それらはすべて本質的にアプリケーション固有であり(たとえば、yumまたはaptの場合)、構成にプロキシ変数を設定します。

1
ffledgling