我想尝试使用 Juju 部署 Wordpress 博客。虽然我对 Juju 和 Amazon EC2 还很陌生,并且遇到了一些麻烦。但我能够像这样引导环境:
juju bootstrap --constraints "instance-type=t1.micro
尽管我还没有成功部署任何东西。以下是输出juju -v status
:
2012-06-14 21:17:13,377 DEBUG Initializing juju status runtime
2012-06-14 21:17:13,387 INFO Connecting to environment...
2012-06-14 21:17:14,241 DEBUG Connecting to environment using ec2-50-112-192-46.us- west-2.compute.amazonaws.com...
2012-06-14 21:17:14,241 DEBUG Spawning SSH process with remote_user="ubuntu" remote_host="ec2-50-112-192-46.us-west-2.compute.amazonaws.com" remote_port="2181" local_port="52585".
2012-06-14 21:18:33,207 DEBUG Retrying connection: Cannot connect to environment using ec2-50-112-192-46.us-west-2.compute.amazonaws.com (perhaps still initializing): could not connect before timeout after 1 retries
2012-06-14 21:18:34,039 DEBUG Connecting to environment using ec2-50-112-192-46.us-west-2.compute.amazonaws.com...
2012-06-14 21:18:34,039 DEBUG Spawning SSH process with remote_user="ubuntu" remote_host="ec2-50-112-192-46.us-west-2.compute.amazonaws.com" remote_port="2181" local_port="41481".
尽管它从未建立连接,但它一直在重试。我想也许只是需要一些时间,所以我在将近一个小时后尝试了一次,结果还是一样。我在线查看了 AWS 管理控制台下的“实例”,我可以看到实例正在运行,尽管它似乎没有任何关联的密钥对(当我单击“连接”时,AWS 会告诉我这一点)。
我能够按照以下步骤使用 ec2-tools 启动实例并通过 SSH 连接到它们EC2 入门指南并运行ec2-run-instances ami-20800c10 -k ${EC2_KEYPAIR} -t t1.micro
。我以这种方式启动的实例在 AWS 实例页面的描述选项卡下列出了我的密钥对,并且我可以选择连接到它们。
那么,为什么我用 Juju 启动的实例没有获得与之关联的密钥对?我~/.juju/environments.yaml
按照描述进行了设置这里。
希望我没有忽略一些太简单的事情,提前感谢任何帮助。
答案1
如果没有其他信息(特别是您正在运行的发行版和实例的控制台日志),就很难帮助调试这个问题。
从输出来看,实例似乎正在运行,但尚未准备好。
请记住,t1.micros 在执行任何有趣的系统活动(如 bootstrap 执行的安装 Java 包)时会受到严重惩罚,因此可能需要很长时间(约 1 小时)才能完成引导过程。由于性能问题,我们停止使用 t1.micros 作为 juju 的默认设置。
juju 可跨云提供商移植,不使用 ec2 密钥对,它依靠 cloud-init 来安装用户密钥。