Articles of amazon ec2

用户数据脚本没有运行在我的自定义AMI上,而是在标准的Amazon linux上运行

这几天我search了很多关于“用户数据脚本不工作”的话题,但是到现在为止,我还没有了解我的情况,请帮我弄清楚发生了什么,非常感谢! 根据AWS 用户数据说明: 在Amazon EC2中启动实例时,可以select将用户数据传递给可用于执行常见自动化configuration任务的实例,甚至可以在实例启动后运行脚本。 所以我尝试在实例启动时传递我自己的用户数据,这是我的用户数据: #!/斌/庆典 echo'test'> /home/ec2-user/user-script-output.txt 但是这个path中没有文件:/home/ec2-user/user-script-output.txt 我检查了/var/lib/cloud/instance/user-data.txt,该文件是存在的,并且与我的用户数据脚本相同。 我也检查了/var/log/cloud-init.log中的日志,没有错误信息。 但是,如果我使用Amazon linux(2014.09.01)启动新实例,则用户数据脚本正在工作,但是我不确定我的AMI(基于Amazon linux)和Amazon Linux之间有什么区别。 我看到的唯一不同的部分是如果我运行这个脚本: sudo yum list安装了| grep cloud-init 我的AMI: cloud-init.noarch 0.7.2-8.33.amzn1 @ amzn-main 亚马逊linux: cloud-init.noarch 0.7.2-8.33.amzn1已安装 我不确定这是什么原因? 如果您需要更多信息,我很乐意提供,请让我知道我自己的AMI发生了什么,以及如何解决? 非常感谢 更新 刚刚从这个postfind了答案, 如果我在用户数据文件的顶部添加#cloud-boothook,它可以工作! #cloud-boothook #!/bin/bash echo 'test' > /home/ec2-user/user-script-output.txt 但仍然不知道为什么。

没有名为“virtualenvwrapper”的模块

我正在使用Ubuntu 14.04 LTS实例在Amazon EC2上设置一个Django项目。 我想写我的代码使用Python 3.我已经被build议,最好的办法是使用virtualenvwrapper 。 我已经成功安装了virtualenvwrapper export WORKON_HOME=$HOME/.virtualenvs export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.4 export PROJECT_HOME=$HOME/Devel source /usr/local/bin/virtualenvwrapper.sh 到我的.bashrc文件中。 现在我明白了: /usr/bin/python3.4: Error while finding spec for 'virtualenvwrapper.hook_loader' (<class 'ImportErro r'>: No module named 'virtualenvwrapper') virtualenvwrapper.sh: There was a problem running the initialization hooks. If Python could not import the module virtualenvwrapper.hook_loader, check that virtualenvwrapper has been installed […]

在EC2实例上设置SSL证书

我很难在我的EC2微型实例(如果我没有弄错的话,我使用基于CentOS的Amazon Linux AMI 2012.3)设置一个SSL证书(这是一个从NameCheap中获得的Comodo PositiveSSL)。 以下是我所做的: 我安装了mod_ssl&OpenSSL 我启用了我的EC2实例安全组上的端口443 Comodobuild议我将* .key&* .crt文件CHMOD到777 我确定IP地址和文件path是正确的(在示例中放了一串0,但在我的ssl.conf中是正确的) 我将这个VirtualHost条目添加到ssl.conf <VirtualHost 00.000.000.00:443> ############# I tried both with & without this section ############## ServerName www.mydomain.com:443 ServerAlias www.mydomain.com DocumentRoot /var/www ServerAdmin webmaster@mydomain.com ###################################################################### SSLEngine on SSLCertificateKeyFile /etc/ssl/mydomain_com.key SSLCertificateFile /etc/ssl/mydomain_com.crt SSLCertificateChainFile /etc/ssl/mydomain_com.ca-bundle </VirtualHost> 然后我重新启动Apache …但我仍然无法访问 https://www.mydomain.com/ ! 我说,与ssltool.com检查 The Common Name on the certificate is: […]

EC2上没有C编译器?

我一直在试图在我的EC2实例上安装Gearman,但是当我尝试./configure gearmand时,我得到这个: checking build system type… x86_64-unknown-linux-gnu checking host system type… x86_64-unknown-linux-gnu checking target system type… x86_64-unknown-linux-gnu checking for gcc… no checking for cc… no checking for cl.exe… no configure: error: in `/home/ec2-user/gearmand-1.1.3': configure: error: no acceptable C compiler found in $PATH See `config.log' for more details 现在,奇怪的是,GCC是绝对安装的。 which gcc46 回报 /usr/bin/gcc46 但是,当我尝试运行命令“gcc”时,找不到… 我试图通过yum擦除/安装/重新安装gcc和gcc-c ++,但这似乎没有帮助。 […]

Rsync到Amazon Ec2实例

我有一个EC2实例正在运行,我可以通过SSH进入。 但是,当我尝试rsync,它给了我的错误权限被拒绝(公钥)。 我正在使用的命令是: rsync -avL –progress -e ssh -i ~/mykeypair.pem ~/Sites/my_site/* root@ec2-XX-XXX-XXX-XXX.us-west-2.compute.amazonaws.com:/var/www/html/ 我也试过了 rsync -avz ~/Sites/mysite/* -e "ssh -i ~/.ssh/id_rsa.pub" root@ec2-XX-XXX-XXX-XXX.us-west-2.compute.amazonaws.com:/var/www/html/ 谢谢,

shell脚本错误?

我正在尝试shell脚本中的代码。 而我试图将批处理脚本的代码转换为shell脚本,我得到一个错误。 batch file代码 :: Create a file with all latest snapshots FOR /F "tokens=5" %%a in (' ec2-describe-snapshots ^|find "SNAPSHOT" ^|sort /+64') do set "var=%%a" set "latestdate=%var:~0,10%" call ec2-describe-snapshots |find "SNAPSHOT"|sort /+64 |find "%latestdate%">"%EC2_HOME%\Working\SnapshotsLatest_%date-today%.txt" 代码在shell脚本 #Create a file with all latest snapshots FOR snapshot_date in $(' ec2-describe-snapshots | grep -i "SNAPSHOT" |sort /+64') do […]

即使没有其他进程阻塞端口,Node.js应用程序也不能在端口80上运行

我在安装了Node.js的Amazon EC2上运行Debian实例。 如果我运行下面的代码: http = require('http'); http.createServer(function (request, response){ response.writeHead(200, {'Content-Type':'text/plain'}); response.end('Hello World\n'); }).listen(80); console.log("Running server at port 80"); 我得到下面的输出告诉我有另一个进程在80端口监听: Running server at port 80 events.js:72 throw er; // Unhandled 'error' event ^ Error: listen EACCES at errnoException (net.js:901:11) at Server._listen2 (net.js:1020:19) at listen (net.js:1061:10) at Server.listen (net.js:1127:5) at Object.<anonymous> (/home/admin/nodetests/nodetest.js:6:4) at Module._compile (module.js:456:26) at […]

从Windows到SSH的EC2 Linux实例

我正在设置“云端数据分析”课程,大部分学生可能会使用Windows。 学生将不得不build立EC2 Ubuntu实例并连接到它们。 什么是为Windows XP-7设置SSH最简单的方法? 我已经尝试了PuTTY,但Puttygen只能将公钥转换为putty格式,如果我手动在文本编辑器中添加换行符。 这对80级的学生来说太麻烦了。 我试过OpenSSH,但我似乎无法find公钥文件的正确权限。 在Mac OS / Linux上,它只是chmod 600 。 有没有一个体面的SSH客户端支持我可以轻松设置的亚马逊的密钥格式?

Windows的Cloud-Init等价物是什么?

似乎股票的引导过程在Windows上有点欠缺。 Linux有一个cloud-init,它将安装软件包,存储文件,并从用户数据运行一个bash脚本。 Windows有ec2config,但是当系统“准备就绪”时,目前不支持运行cmd或powershell脚本 – 这意味着所有的初始重新启动都完成了。 似乎有第三方的select。 例如,RightScale具有执行此function的RightLink代理。 有开源选项吗? 有没有计划将这个function添加到Ec2Config? 我必须build立这个我自己? 我错过了什么吗?

AWS ec2 – 从AMI启动的Windows机器不提供Windows密码

我有一个EC2的Windows机器AMI,从那里我昨天创build了一个实例,我不记得它的pipe理员密码,我一直在尝试获取Windows密码,但每次我尝试它说“这可能需要长达30分钟”。 现在已经有15个小时了,这里有什么根本性的错误,我怎样才能访问我的机器。