質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

3回答

989閲覧

AWS EC2のユーザーデータ設定について質問させてください。

b0nkeenu

総合スコア7

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2017/08/02 04:21

LambdaでEC2インスタンスの起動と終了の関数を作成致しました。
起動の関数を実行した時に、対象インスタンスに設定したユーザーデータを自動起動して欲しいのですが、上手く行きません。

ユーザーデータに記載しているコードは以下のとおりです。(※ディレクトリ名称変更)

#!/bin/bash sh /home/ec2-user/hoge/foo.sh

想定としては、インスタンスを立ち上げた際に上記のシェルスクリプトファイルが実行されると言ったものなのですが、
そもそもユーザーデータにファイルを指定して実行させることは不可能なのでしょうか。

/var/lib/cloud/instance/user-data.txt
内には記述したユーザーデータが記載されていることは確認済みです。

ご存知でしたら教えて頂けますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

自己解決

ユーザーデータの使用は諦め、/etc/rc.d/rc.localにシェルを追記しインスタンス起動時に実行させるよう回避した。

投稿2017/08/02 09:11

b0nkeenu

総合スコア7

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

マニュアルによると、ユーザーデータは root ユーザーとして実行されるようです。

#!/bin/bash /home/ec2-user/hoge/foo.sh

は root で起動するようになっていますか?
なっていない場合、直接 foo.sh を起動するのではなく、

#!/bin/bash su ec-user /home/ec2-user/hoge/foo.sh

みたいにしないといけないと思います。

投稿2017/08/02 06:41

hotta

総合スコア1613

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

b0nkeenu

2017/08/02 09:09

suで実行ユーザー権限を変えるよう追記してみたのですが、無理でした。。 今回はユーザーデータを使用しない方法で回避させました。 お忙しい中ありがとうございました。
guest

0

#!/bin/bash sh <実行したいスクリプトファイル>

ユーザーデータに対して上記のような書き方をしてスクリプトファイルを実行させることが可能か、
という部分に関しては、以下のブログ様にて同様の事例が載っておりますので、可能かと思います。

http://swfz.hatenablog.com/entry/2015/10/15/202128

想定通りになっていないことに関して原因は不明ですが、
以下のページで紹介されているログファイルに何かしら出力はされていないでしょうか。
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/user-data.html#user-data-shell-scripts

cloud-init 出力ログファイル (/var/log/cloud-init-output.log) にコンソール出力が記録されるので、インスタンスが意図したとおりに動作しない場合、起動後にスクリプトを簡単にデバッグできます。

投稿2017/08/02 05:03

編集2017/08/02 05:04
batchi

総合スコア172

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

b0nkeenu

2017/08/02 09:08

/var/log/cloud-init-output.log こちら確認したんですが、それらしいログは出力されておりませんでした。。。 今回はユーザーデータを使用せず、/etc/rc.d/rc.localに起動させたいシェルを記述し期待通りの結果を得ることが出来ました。 お忙しい中ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問