虽然我写了相当数量的厨师,但我对AWS/VPC和管理网络流量(尤其是堡垒主机)都很陌生.
使用刀ec2插件,我希望能够从我的开发人员工作站动态创建和引导VM.VM应该能够存在于我的VPC的公共或私有子网中.我想在不使用弹性IP的情况下完成所有这些工作.我也希望我的堡垒主机可以放手(即我希望避免在我的堡垒主机上创建明确的每个VM侦听隧道)
我已成功使用刀ec2插件在传统EC2模型中创建VM(例如,在我的VPC之外).我现在正在尝试在我的VPC中创建一个实例.在knife命令行中,我指定了一个网关,安全组,子网等.虚拟机被创建,但是之后刀无法ssh到它.
这是我的刀命令行:
knife ec2 server create \
--flavor t1.micro \
--identity-file <ssh_private_key> \
--image ami-3fec7956 \
--security-group-ids sg-9721e1f8 \
--subnet subnet-e4764d88 \
--ssh-user ubuntu \
--server-connect-attribute private_ip_address \
--ssh-port 22 \
--ssh-gateway <gateway_public_dns_hostname (route 53)> \
--tags isVPC=true,os=ubuntu-12.04,subnet_type=public-build-1c \
--node-name <VM_NAME>
Run Code Online (Sandbox Code Playgroud)
我怀疑我的问题与我的堡垒主机的配置有关.经过一天的谷歌搜索,我无法找到有效的配置.我可以ssh到堡垒主机,从那里我可以ssh到新创建的VM.我无法使用gateway参数成功复制此刀.
我玩过/ etc/ssh/ssh_config.今天它是如何存在的:
ForwardAgent yes
#ForwardX11 no
#ForwardX11Trusted yes
#RhostsRSAAuthentication no
#RSAAuthentication yes
#PasswordAuthentication no
#HostbasedAuthentication yes
#GSSAPIAuthentication no
#GSSAPIDelegateCredentials no
#GSSAPIKeyExchange no
#GSSAPITrustDNS no
#BatchMode no
CheckHostIP no
#AddressFamily any
#ConnectTimeout 0
StrictHostKeyChecking no
IdentityFile ~/.ssh/identity …
Run Code Online (Sandbox Code Playgroud) 我正在尝试为我的DAO对象创建一个JUnit测试.JUnit直接从Netbeans运行.我对其中的几种技术都很陌生,因此我有一段时间可以追踪我的错误来自何处.我的代码和我看到的相应错误是:
2011年7月22日下午7:09:09 com.sun.enterprise.v3.server.CommonClassLoaderServiceImpl findDerbyClient INFO:找不到javadb客户端jar文件,默认情况下derby jdbc驱动程序不可用.FATAL [DatasourceConnectionProvider] - 无法找到数据源:Waylon org.omg.CORBA.COMM_FAILURE:FINE:IOP00410001:连接失败:socketType:IIOP_CLEAR_TEXT; hostname:localhost; port:3700 vmcid:OMG次代码:1完成:没有javax.naming.NamingException:在SerialContext中查找'Waylon'失败[myEnv = {java.naming.factory.initial = com.sun.enterprise.naming.impl.SerialInitContextFactory ,java.naming.factory.url.pkgs = com.sun.enterprise.naming,java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl} [root异常是javax.naming .NamingException:无法为SerialContext获取SerialContextProvider [myEnv = {java.naming.factory.initial = com.sun.enterprise.naming.impl.SerialInitContextFactory,java.naming.factory.url.pkgs = com.sun.enterprise.naming ,java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl} [根异常是org.omg.CORBA.COMM_FAILURE:FINE:IOP00410001:连接失败:socketType:IIOP_CLEAR_TEXT; hostname:localhost; 端口:3700 vmcid:OMG次要代码:1完成:否]]在sun.sref.enterEv. .reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)在com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455)在java.lang.reflect.Constructor.newInstance(Constructor.java:513 )在com.sun.corba的com.sun.corba.ee.spi.orbutil.logex.corba.CorbaExtension.makeException(CorbaExtension.java:248)的javax.naming.InitialContext.lookup(InitialContext.java:392)中. ee.spi.orbutil.logex.corba.CorbaExtension.makeException(CorbaExtension.java:95)位于com.sun.corba.ee.spi.orbutil的org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:52). org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(Connec)中的logex.WrapperGenerator.handleFullLogging(WrapperGenerator.java:387)tionProviderFactory.java:124)在com.sun.corba.ee.spi.orbutil.logex.WrapperGenerator.access $ 400(WrapperGenerator.java:107)在org.hibernate.ejb.InjectionSettingsFactory.createConnectionProvider(InjectionSettingsFactory.java:29)在com.sun.corba.ee.spi.orbutil.logex.WrapperGenerator $ 2.invoke(WrapperGenerator.java:511)位于com.sun.corba.ee的org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:62)位于org.hibernate.cfg的$ Proxy40.connectFailure(未知来源)的org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2009)中的.spi.orbutil.proxy.CompositeInvocationHandlerImpl.invoke(CompositeInvocationHandlerImpl.java:99).位于org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)的com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.(SocketOrChannelConnectionImpl.java:257)中的Configuration.buildSessionFactory(Configuration.java:1292)at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.(SocketOrChannelConnec tionImpl.java:270)at com.unernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669)at com.sun.corba.ee.impl.transport.SocketOrChannelContactInfoImpl.createConnection(SocketOrChannelContactInfoImpl.java:129)at com.sun位于com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl的org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:126)上的.corba.ee.impl.protocol.CorbaClientRequestDispatcherImpl.beginRequest(CorbaClientRequestDispatcherImpl.java:223) .request(CorbaClientDelegateImpl.java:228)位于org.omg.CORBA的com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.is_a(CorbaClientDelegateImpl.java:393)的javax.persistence.Persistence.createEntityManagerFactory(未知来源) .portable.ObjectImpl._is_a(ObjectImpl.java:112)位于com.google.inject.persist的org.omg.CosNaming.NamingContextHelper.narrow(NamingContextHelper.java:69)的javax.persistence.Persistence.createEntityManagerFactory(未知来源) .jpa.JpaPersistService.在com.sun.enterprise.naming.impl.SerialContext $ ProviderCacheKey.getNameService(SerialContext.java:1241)的com.sun.label.LabelDAOIJTest.setUpClass(LabelDAOIJTest.java:36)的com.sun开始(JpaPersistService.java:94) .enterprise.naming.impl.SerialContext.getRemoteProvider(SerialContext.java:411)在com.sun.enterprise.naming.impl.SerialContext.getProvider(SerialContext.java:347)在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:504)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at com.sun.enterprise.naming.impl.SerialContext.lookup (SerialContext.java:455)在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)在javax.naming.InitialContext.lookup(InitialContext.java:392)在java.lang.reflect.Method.invoke(方法. java:597)org.juni上的org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:52)位于org.junit.internal.runners.model.ReflectiveCallable.run的org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:124)中的t.runners.model.FrameworkMethod $ 1.runReflectiveCall(FrameworkMethod.java:44)(ReflectiveCallable)的.java:15)在在org.junit.runners.model.FrameworkMethod org.hibernate.ejb.InjectionSettingsFactory.createConnectionProvider(InjectionSettingsFactory.java:29)在org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:62).在org.hibernate的org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)的org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2009)中调用了爆炸性的(FrameworkMethod.java:41) .cfg.Configuration.buildSessionFactory(Configuration.java:1292)在org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)在org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859 )org.junit.runners.ParentRunner.run(父 Runner.java:303)org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669)位于org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence)的junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39) .java:126)org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:518)at org.apache.tools.ant的javax.persistence.Persistence.createEntityManagerFactory(未知来源) .taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1052)位于org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:906)的javax.persistence.Persistence.createEntityManagerFactory (未知来源)at com.google.inject.persist.jpa.JpaPersistService.start(JpaPersistService.java:94)at waylon.label.LabelDAOIJTest.setUpClass(LabelDAOIJTest.java:36)引起:javax.naming.NamingException:Unable获取SerialContext的SerialContextProvider [myEnv = {java.naming.factory.initial = …
amazon-ec2 ×1
amazon-vpc ×1
chef-infra ×1
derby ×1
guice ×1
java ×1
jpa ×1
knife ×1
ssh ×1
unit-testing ×1