Ubuntu ec2 实例无法 运行 用户数据脚本
Ubuntu ec2 instance fails to run userdata script
我正在尝试执行一个脚本,该脚本需要在 Ubuntu 14.04 ec2 实例上执行 运行 每当自动缩放组中的实例或其图像旋转时 -
#!/bin/bash-x
REGION=`curl http://169.254.169.254/latest/dynamic/instance- identity/document|grep region|awk -F\" '{print }'`
sudo apt-get update
sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev
cd
wget http://ftp.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.gz
tar -xzvf ruby-2.3.1.tar.gz
cd ruby-2.3.1/
./configure
make
sudo make install
apt-get install apache2
cd /home/ubuntu
wget https://aws-codedeploy-$REGION.s3.amazonaws.com/latest/install
chmod +x ./install
./install auto
但脚本从来没有 运行s。我去了 cloud-init-output.log 文件,下面是日志详细信息-
Cloud-init v. 0.7.5 running 'modules:final' at Mon, 12 Dec 2016 15:54:20 +0000. Up 36.92 seconds.
2016-12-12 15:54:20,432 - util.py[WARNING]: Failed running /var/lib/cloud/instance/scripts/part-001 [-]
2016-12-12 15:54:20,436 - cc_scripts_user.py[WARNING]: Failed to run module scripts-user (scripts in /var/lib/cloud/instance/scripts)
2016-12-12 15:54:20,436 - util.py[WARNING]: Running scripts-user (<module 'cloudinit.config.cc_scripts_user' from '/usr/lib/python2.7/dist-packages/cloudinit/config/cc_scrip$
Cloud-init v. 0.7.5 finished at Mon, 12 Dec 2016 15:54:20 +0000. Datasource DataSourceEc2. Up 37.11 seconds
具体来说,我想实现的是在实例中安装codedeploy。
你用的shebang是错误的
将#!/bin/bash-x
改为#!/bin/bash
为了对此进行测试,我启动了一个 Amazon Linux EC2 实例,其中 #!/bin/bash-x
位于用户数据的顶部。
日志说:
/bin/sh: /var/lib/cloud/instance/scripts/part-001: /bin/bash-x: bad interpreter: No such file or directory
我在没有 -x
的情况下重新启动它,它工作正常。
所以,这绝对是亚马逊问题的原因 Linux。 Ubuntu.
的情况可能有所不同
更新: 根据 sqlbot 的建议(下方),我再次尝试使用 #!/bin/bash -x
(-x
之前的 space)和它运行良好。
我正在尝试执行一个脚本,该脚本需要在 Ubuntu 14.04 ec2 实例上执行 运行 每当自动缩放组中的实例或其图像旋转时 -
#!/bin/bash-x
REGION=`curl http://169.254.169.254/latest/dynamic/instance- identity/document|grep region|awk -F\" '{print }'`
sudo apt-get update
sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev
cd
wget http://ftp.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.gz
tar -xzvf ruby-2.3.1.tar.gz
cd ruby-2.3.1/
./configure
make
sudo make install
apt-get install apache2
cd /home/ubuntu
wget https://aws-codedeploy-$REGION.s3.amazonaws.com/latest/install
chmod +x ./install
./install auto
但脚本从来没有 运行s。我去了 cloud-init-output.log 文件,下面是日志详细信息-
Cloud-init v. 0.7.5 running 'modules:final' at Mon, 12 Dec 2016 15:54:20 +0000. Up 36.92 seconds.
2016-12-12 15:54:20,432 - util.py[WARNING]: Failed running /var/lib/cloud/instance/scripts/part-001 [-]
2016-12-12 15:54:20,436 - cc_scripts_user.py[WARNING]: Failed to run module scripts-user (scripts in /var/lib/cloud/instance/scripts)
2016-12-12 15:54:20,436 - util.py[WARNING]: Running scripts-user (<module 'cloudinit.config.cc_scripts_user' from '/usr/lib/python2.7/dist-packages/cloudinit/config/cc_scrip$
Cloud-init v. 0.7.5 finished at Mon, 12 Dec 2016 15:54:20 +0000. Datasource DataSourceEc2. Up 37.11 seconds
具体来说,我想实现的是在实例中安装codedeploy。
你用的shebang是错误的
将#!/bin/bash-x
改为#!/bin/bash
为了对此进行测试,我启动了一个 Amazon Linux EC2 实例,其中 #!/bin/bash-x
位于用户数据的顶部。
日志说:
/bin/sh: /var/lib/cloud/instance/scripts/part-001: /bin/bash-x: bad interpreter: No such file or directory
我在没有 -x
的情况下重新启动它,它工作正常。
所以,这绝对是亚马逊问题的原因 Linux。 Ubuntu.
的情况可能有所不同更新: 根据 sqlbot 的建议(下方),我再次尝试使用 #!/bin/bash -x
(-x
之前的 space)和它运行良好。