問題タブ [cloud-init]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
amazon-web-services - EC2 上の CoreOS で cloud-config.yml の「インスタンス ID」を使用するには?
Amazon EC2 に CoreOS インスタンスがあります。
「$private_ipv4」や「$public_ipv4」など、cloud-config.yml からアクセスできる定義済みの変数がいくつかあります。
「$instance_id」のような EC2 インスタンスの「インスタンス ID」にアクセスする方法はありますか? (「$instance_id」と「$INSTANCE_ID」を試しましたが、どちらも有効になりませんでした)
python - urllib3 をアップグレードすると cloud-init が失敗しました。どうやら urllib3 と python リクエストにはバージョンの互換性の問題がありますか?
python-urllib3 を 1.5-7 から 10.10.4-1 にアップグレードし、AWS メタデータを取得しようとしたときに Cloud-init でエラーが発生し始めました。
"unexpected error [cannot concatenate 'str' and 'tuple' objects]".
urllib3 とリクエストの間の非互換性の問題 ( Python Requests Timeout Value error ) を指している他のいくつかの StackOverFlow の問題を見てきました ( Algolia reindex コマンドが urllib3 で例外を出して失敗します)。
私が見つけられないのは、一緒に機能するバージョンのマトリックスです。呼び出しコードが CloudInit に埋め込まれているため、他の質問の解決策は利用できません。
他のパッケージ (ElasticSearch Curator) が明らかに新しいバージョンを必要とするため、以前のバージョンの urllib3 に戻るオプションは実際にはありません。
openstack - cloud-init: ホスト名 XXXX を /var/lib/cloud/data/previous-hostname に書き込めませんでした
cloud-init スクリプトを使用して Bluemix VM のホスト名を設定しようとしていますが、エラーがスローされます。
/var/lib/cloud/data/previous-hostname
サーバーにログインすると、存在しないことがわかります。
のコード/usr/lib/python2.7/site-packages/cloudinit/config/cc_set_hostname.py
は非常に単純に見えます。
このエラーの原因は何ですか? 独自のバージョンの cc_set_hostname.py スクリプトを提供して、追加のデバッグを追加してダンプすることはできException
ますか?
powershell - ユーザーデータファイルとして AWS EC2 インスタンスに渡された Bash スクリプトが初回起動時にロードに失敗する
AWS ライブラリを使用して Powershell スクリプトを介して AWS EC2 ubuntu インスタンスに渡そうとする単純な bash スクリプトがあります。
base64 でファイルの内容をエンコードし、EC2 インスタンスを開始するコマンドレットを呼び出す PowerShell スクリプトを次に示します。
これは、クラウドの初期化ログのスニペットです。
/var/lib/cloud/instance/scripts/part-001 の ubuntu インスタンスに読み込まれたユーザー データ スクリプトのスニペットを次に示します。
010 Editor と Cygwin を使用して Windows ファイルを Linux に変換しようとしました。CRLF バイトを LF バイトに置き換えてみました。結果は同じです。bash スクリプト全体が 1 行に圧縮され、すべての改行が削除され、初回起動時にユーザー データ スクリプトの読み込みに失敗します。
更新: 改行変換を行うために使用した両方のコード スニペットを含めました。どちらもピア ソース (SO) から精査されました。何らかの理由で、Linux インスタンスにスクリプトが改行文字なしで表示されます。
スニペット 1
スニペット 2
amazon-ec2 - Elastic Beanstalk または ec2 コンテナー サービスを使用せずに AWS に Docker コンテナーをデプロイする方法
Elastic Beanstalk や ec2 コンテナー サービスを使用せずに Docker コンテナーを使用したいと考えています。コンテナーを記述したファイルをアップロードし.zip
(Elastic Beanstalk で行うように)、docker を使用して一般的な ec2 インスタンスで実行したいと考えています。
user data
docker コンテナーを実行している beanstalk によって作成された ec2 インスタンスのセクションを調べると、すべてのセットアップを行う大きなシェル スクリプトをダウンロードする cloud-init スクリプトが表示されます ( Example )。Elastic Beanstalk が行うことはすべて、ec2 インスタンスとuser data
スクリプトを使用して手動でも実現できると思います。
私の質問は次のとおりです。誰かがスクリプトの最小限の例を提供できますかuser data
- docker をインストール/構成します
- .zip ファイルをダウンロードします
- Docker イメージを実行する
私は自動スケーリング グループなどに精通しており、beanstalk または ec2 コンテナー サービス マジックを使用せずにこのセットアップを実行したいと考えています。
provisioning - cloud-init が初期化を完了したことを検出する方法
cloud-init/cloud-config を使用して OpenStack ボックスを構成しています。使用を開始する前に、完全に構成されるまで待つつもりです。
これは、いくつかのマーカー ファイルを使用したり、cloud-init プロセスがまだ実行されているかどうかを検出したりするのはそれほど難しいことではありませんが、すべての cloud-init スクリプトでこれを行うのは非常に面倒に思えます。何かおすすめの方法はありますか?理想的には、cloud-init によってネイティブにサポートされていますか?