2017-01-27 28 views
0

我們,這是獲得通過EBS(在Tomcat)部署的應用程序,每一個現在,然後我們得到了一個錯誤:如何在Elastic Beanstalk中自定義hosts文件?

unable to resolve host ip-172-30-0-167 

這會導致其他問題。 據我所知,解決這個問題的方法之一是通過更新hosts文件並使用指向服務器真實IP地址的條目ip-172-30-0-167

我的問題是,如何在部署中向主機文件添加條目?我沒有通過.ebsextensions發現與它相關的任何內容。

也許有另一種方法來解決它。

UPDATE

其中之一,我有問題是發送電子郵件:

ERROR g.plugins.mail.MailMessageBuilder: Failed to send email 
Jan 27 15:40:30 unknown staging: org.springframework.mail.MailSendException: Mail server connection failed; nested exception is javax.mail.MessagingException: 501 Syntax: EHLO hostname 
Jan 27 15:40:30 unknown staging: . Failed messages: javax.mail.MessagingException: 501 Syntax: EHLO hostname 
Jan 27 15:40:30 unknown staging: at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:417) ~[spring-context-support-4.1.8.RELEASE.jar:4.1.8.RELEASE] 
Jan 27 15:40:30 unknown staging: at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:345) ~[spring-context-support-4.1.8.RELEASE.jar:4.1.8.RELEASE] 
Jan 27 15:40:30 unknown staging: at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:340) ~[spring-context-support-4.1.8.RELEASE.jar:4.1.8.RELEASE] 
Jan 27 15:40:30 unknown staging: at org.springframework.mail.javamail.JavaMailSender$send$0.call(Unknown Source) ~[na:na] 
Jan 27 15:40:30 unknown staging: at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) ~[groovy-2.4.5.jar:2.4.5] 
Jan 27 15:40:30 unknown staging: at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) ~[groovy-2.4.5.jar:2.4.5] 
Jan 27 15:40:30 unknown staging: at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) ~[groovy-2.4.5.jar:2.4.5] 
Jan 27 15:40:30 unknown staging: at grails.plugins.mail.MailMessageBuilder$_sendMessage_closure1.doCall(MailMessageBuilder.groovy:124) [mail-2.0.0.RC6.jar:na] 
Jan 27 15:40:30 unknown staging: at grails.plugins.mail.MailMessageBuilder$_sendMessage_closure1.doCall(MailMessageBuilder.groovy) [mail-2.0.0.RC6.jar:na] 
Jan 27 15:40:30 unknown staging: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_111] 
Jan 27 15:40:30 unknown staging: at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_111] 
Jan 27 15:40:30 unknown staging: at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_111] 
Jan 27 15:40:30 unknown staging: at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_111] 
Jan 27 15:40:30 unknown staging: at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-2.4.5.jar:2.4.5] 
Jan 27 15:40:30 unknown staging: at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-2.4.5.jar:2.4.5] 
Jan 27 15:40:30 unknown staging: at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-2.4.5.jar:2.4.5] 
Jan 27 15:40:30 unknown staging: at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-2.4.5.jar:2.4.5] 
Jan 27 15:40:30 unknown staging: at groovy.lang.Closure.call(Closure.java:426) [groovy-2.4.5.jar:2.4.5] 
Jan 27 15:40:30 unknown staging: at groovy.lang.Closure.call(Closure.java:420) [groovy-2.4.5.jar:2.4.5] 
Jan 27 15:40:30 unknown staging: at groovy.lang.Closure.run(Closure.java:507) [groovy-2.4.5.jar:2.4.5] 
Jan 27 15:40:30 unknown staging: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_111] 
Jan 27 15:40:30 unknown staging: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_111] 
Jan 27 15:40:30 unknown staging: at java.lang.Thread.run(Thread.java:745) [na:1.8.0_111] 
Jan 27 15:40:30 unknown staging: Caused by: javax.mail.MessagingException: 501 Syntax: EHLO hostname 
Jan 27 15:40:30 unknown staging: at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:1481) ~[mail-1.4.1.jar:1.4.1] 
Jan 27 15:40:30 unknown staging: at com.sun.mail.smtp.SMTPTransport.helo(SMTPTransport.java:917) ~[mail-1.4.1.jar:1.4.1] 
Jan 27 15:40:30 unknown staging: at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:417) ~[mail-1.4.1.jar:1.4.1] 
Jan 27 15:40:30 unknown staging: at javax.mail.Service.connect(Service.java:345) ~[javax.mail-api-1.5.1.jar:1.5.1] 
Jan 27 15:40:30 unknown staging: at org.springframework.mail.javamail.JavaMailSenderImpl.connectTransport(JavaMailSenderImpl.java:486) ~[spring-context-support-4.1.8.RELEASE.jar:4.1.8.RELEASE] 
Jan 27 15:40:30 unknown staging: at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:406) ~[spring-context-support-4.1.8.RELEASE.jar:4.1.8.RELEASE] 
Jan 27 15:40:30 unknown staging: ... 22 common frames omitted 
Jan 27 15:40:30 unknown staging: ERROR g.plugins.mail.MailMessageBuilder: Failed to send email 
Jan 27 15:40:30 unknown staging: org.springframework.mail.MailSendException: Mail server connection failed; nested exception is javax.mail.MessagingException: 501 Syntax: EHLO hostname 
Jan 27 15:40:30 unknown staging: . Failed messages: javax.mail.MessagingException: 501 Syntax: EHLO hostname 
Jan 27 15:40:30 unknown staging: at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:417) ~[spring-context-support-4.1.8.RELEASE.jar:4.1.8.RELEASE] 
Jan 27 15:40:30 unknown staging: at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:345) ~[spring-context-support-4.1.8.RELEASE.jar:4.1.8.RELEASE] 
Jan 27 15:40:30 unknown staging: at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:340) ~[spring-context-support-4.1.8.RELEASE.jar:4.1.8.RELEASE] 
Jan 27 15:40:30 unknown staging: at org.springframework.mail.javamail.JavaMailSender$send$0.call(Unknown Source) ~[na:na] 
Jan 27 15:40:30 unknown staging: at grails.plugins.mail.MailMessageBuilder$_sendMessage_closure1.doCall(MailMessageBuilder.groovy:124) [mail-2.0.0.RC6.jar:na] 
Jan 27 15:40:30 unknown staging: at grails.plugins.mail.MailMessageBuilder$_sendMessage_closure1.doCall(MailMessageBuilder.groovy) [mail-2.0.0.RC6.jar:na] 
Jan 27 15:40:30 unknown staging: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_111] 
Jan 27 15:40:30 unknown staging: at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_111] 
Jan 27 15:40:30 unknown staging: at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_111] 
Jan 27 15:40:30 unknown staging: at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_111] 
Jan 27 15:40:30 unknown staging: at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-2.4.5.jar:2.4.5] 
Jan 27 15:40:30 unknown staging: at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-2.4.5.jar:2.4.5] 
Jan 27 15:40:30 unknown staging: at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-2.4.5.jar:2.4.5] 
Jan 27 15:40:30 unknown staging: at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-2.4.5.jar:2.4.5] 
Jan 27 15:40:30 unknown staging: at groovy.lang.Closure.call(Closure.java:426) [groovy-2.4.5.jar:2.4.5] 
Jan 27 15:40:30 unknown staging: at groovy.lang.Closure.call(Closure.java:420) [groovy-2.4.5.jar:2.4.5] 
Jan 27 15:40:30 unknown staging: at groovy.lang.Closure.run(Closure.java:507) [groovy-2.4.5.jar:2.4.5] 
Jan 27 15:40:30 unknown staging: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_111] 
Jan 27 15:40:30 unknown staging: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_111] 
Jan 27 15:40:30 unknown staging: at java.lang.Thread.run(Thread.java:745) [na:1.8.0_111] 
Jan 27 15:40:30 unknown staging: Caused by: javax.mail.MessagingException: 501 Syntax: EHLO hostname 
Jan 27 15:40:30 unknown staging: at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:1481) ~[mail-1.4.1.jar:1.4.1] 
Jan 27 15:40:30 unknown staging: at com.sun.mail.smtp.SMTPTransport.helo(SMTPTransport.java:917) ~[mail-1.4.1.jar:1.4.1] 
Jan 27 15:40:30 unknown staging: at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:417) ~[mail-1.4.1.jar:1.4.1] 
Jan 27 15:40:30 unknown staging: at javax.mail.Service.connect(Service.java:345) ~[javax.mail-api-1.5.1.jar:1.5.1] 
Jan 27 15:40:30 unknown staging: at org.springframework.mail.javamail.JavaMailSenderImpl.connectTransport(JavaMailSenderImpl.java:486) ~[spring-context-support-4.1.8.RELEASE.jar:4.1.8.RELEASE] 
Jan 27 15:40:30 unknown staging: at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:406) ~[spring-context-support-4.1.8.RELEASE.jar:4.1.8.RELEASE] 
Jan 27 15:40:30 unknown staging: ... 19 common frames omitted 

,它看起來像上部署該方法並沒有幫助:

ERROR net.sf.ehcache.Cache: Unable to set localhost. This prevents creation of a GUID. Cause was: ip-172-35-11-183: ip-172-35-11-183: Name or service not known 
Jan 27 15:35:25 unknown staging: java.net.UnknownHostException: ip-172-35-11-183: ip-172-35-11-183: Name or service not known 
Jan 27 15:35:25 unknown staging: at java.net.InetAddress.getLocalHost(InetAddress.java:1505) ~[na:1.8.0_111] 
Jan 27 15:35:25 unknown staging: at net.sf.ehcache.Cache.<clinit>(Cache.java:200) ~[ehcache-core-2.4.3.jar:na] 
Jan 27 15:35:25 unknown staging: at net.sf.ehcache.config.ConfigurationHelper.createCache(ConfigurationHelper.java:302) [ehcache-core-2.4.3.jar:na] 
Jan 27 15:35:25 unknown staging: at net.sf.ehcache.config.ConfigurationHelper.createDefaultCache(ConfigurationHelper.java:218) [ehcache-core-2.4.3.jar:na] 
Jan 27 15:35:25 unknown staging: at net.sf.ehcache.CacheManager.configure(CacheManager.java:599) [ehcache-core-2.4.3.jar:na] 
Jan 27 15:35:25 unknown staging: at net.sf.ehcache.CacheManager.init(CacheManager.java:358) [ehcache-core-2.4.3.jar:na] 
+0

這在Tomcat Elastic Beanstalks上總是出錯 - 它會導致什麼問題? – stdunbar

+0

在我們的例子中,似乎發送電子郵件是窒息+有時nginx代理需要在部署後重新啓動。 –

+0

@stdunbar因此,這種方法似乎並沒有真正的幫助。請參閱最新信息 –

回答

0

好吧,我說這是常見的,然後看看其他代碼,發現我在.ebextensions中設置主機名。我有類似的東西:

01_command: 
    echo 127.0.0.1 `hostname` >> /etc/hosts" 

添加主機名。請注意,我沒有發送電子郵件,所以我不確定是否需要真正的主機名。如果你這樣做,可改爲:

01_command: 
    echo `curl -s http://169.254.169.254/latest/meta-data/local-ipv4` `hostname` >> /etc/hosts" 

最終的問題是,彈性魔豆將主機名設置的東西,是不是在/ etc /像你說的主機。

+0

此解決方案有幾個問題。我需要知道這個內部知識產權,我不知道(當然也不總是)。 +它會在每個部署中都這樣做,所以我最終會得到一堆這些條目。至於你的最後一個問題,我沒有說這是在hosts文件中設置任何東西。我認爲它離開了骨頭Ubuntu的鏡像。 –

+0

curl命令爲您提供內部IP(私有IP)。你是對的 - 我的部署過程取消了所有的實例並加入新的實例,所以如果你重用實例,你會得到多個條目。這實際上不會傷害任何東西,但它可能是不正確的。 – stdunbar

+0

另一個問題,但是:這是什麼:http://169.254.169.254/latest/meta-data/local-ipv4? –