Hi,
Im using OpenNebula(4.12.3) and configured the econe-server.conf as mentioned in all the articles.
This is the part of the config:
Host and port where econe server will run
:host: 192.168.11.2
:port: 4567
According to [this][1] i should be able to communicate via any EC2 Client to OpenNebula.
" The econe-server is a component on top of the OpenNebula core that translates Amazon EC2 API calls into OpenNebula actions, therefore a user will be able to interact with an OpenNebula cloud using any of the available EC2 clients or tools."
I wan´t to use the Amazon Java API or the Amazon CLI to communicate with OpenNebula but i get the following Error:
Nov 04, 2015 11:36:25 AM com.amazonaws.http.AmazonHttpClient parseClockSkewOffset
WARNUNG: Unable to parse clock skew offset from errmsg: The username or password is not correct (Service: AmazonEC2; Status Code: 401; Error Code: AuthFailure; Request ID: null)
Nov 04, 2015 11:36:25 AM com.amazonaws.http.AmazonHttpClient parseClockSkewOffset
WARNUNG: Unable to parse clock skew offset from errmsg: The username or password is not correct (Service: AmazonEC2; Status Code: 401; Error Code: AuthFailure; Request ID: null)
Nov 04, 2015 11:36:26 AM com.amazonaws.http.AmazonHttpClient parseClockSkewOffset
WARNUNG: Unable to parse clock skew offset from errmsg: The username or password is not correct (Service: AmazonEC2; Status Code: 401; Error Code: AuthFailure; Request ID: null)
Exception in thread “main” com.amazonaws.AmazonServiceException: The username or password is not correct (Service: AmazonEC2; Status Code: 401; Error Code: AuthFailure; Request ID: null)
at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1219)
at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:803)
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:505)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:317)
at com.amazonaws.services.ec2.AmazonEC2Client.invoke(AmazonEC2Client.java:11901)
at com.amazonaws.services.ec2.AmazonEC2Client.describeImages(AmazonEC2Client.java:6091)
at init.main(init.java:43)
I used oneadmin as accesskey and the hashed password from oneuser show oneadmin.
now there is some strange behavior on OpenNebula when i run netcat and try to connect with Amazon EC2 CLI to describe images:
*CLIENT-COMMAND
/ec2-describe-images -O oneadmin -W *********** -v -H --debug
Setting User-Agent to [ec2-api-tools 1.7.5.1]
Using AWS acces key: oneadmin
2015-11-04 12:09:26,508 [main] DEBUG org.apache.http.wire - >> "POST / HTTP/1.1[\r][\n]"
2015-11-04 12:09:26,511 [main] DEBUG org.apache.http.wire - >> "Host: 192.168.11.2:4567[\r][\n]"
2015-11-04 12:09:26,512 [main] DEBUG org.apache.http.wire - >> "X-Amz-Date: 20151104T110926Z[\r][\n]"
2015-11-04 12:09:26,512 [main] DEBUG org.apache.http.wire - >> "Authorization: AWS4-HMAC-SHA256 Credential=oneadmin/20151104/us-east-1/ec2/aws4_request, SignedHeaders=host;user-agent;x-amz-date, Signature=f70e0406ce2d16f8587decdbff33c6ddbd44e4a339fafe997f251774d22f70e4[\r][\n]"
2015-11-04 12:09:26,512 [main] DEBUG org.apache.http.wire - >> "User-Agent: ec2-api-tools 1.7.5.1, aws-sdk-java/unknown-version Linux/4.1.0-2-amd64 OpenJDK_64-Bit_Server_VM/24.91-b01/1.7.0_91[\r][\n]"
2015-11-04 12:09:26,513 [main] DEBUG org.apache.http.wire - >> "Content-Type: application/x-www-form-urlencoded; charset=utf-8[\r][\n]"
2015-11-04 12:09:26,513 [main] DEBUG org.apache.http.wire - >> "Content-Length: 53[\r][\n]"
2015-11-04 12:09:26,513 [main] DEBUG org.apache.http.wire - >> "Connection: Keep-Alive[\r][\n]"
2015-11-04 12:09:26,513 [main] DEBUG org.apache.http.wire - >> "[\r][\n]"
2015-11-04 12:09:26,514 [main] DEBUG org.apache.http.wire - >> "Action=DescribeImages&Version=2015-04-15&Owner.1=self"
Unknown problem connecting to host: 'http://192.168.11.2:4567’
Unable to execute HTTP request: Read timed out
com.amazonaws.AmazonClientException: Unable to execute HTTP request: Read timed out
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:467)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:295)
at com.amazonaws.services.ec2.AmazonEC2Client.invoke(AmazonEC2Client.java:8184)
at com.amazonaws.services.ec2.AmazonEC2Client.describeImages(AmazonEC2Client.java:4303)
at com.amazon.aes.webservices.client.Jec2SdkImpl.describeImages(Jec2SdkImpl.java:390)
at com.amazon.aes.webservices.client.cmd.DescribeImages.invokeOnline(DescribeImages.java:158)
at com.amazon.aes.webservices.client.cmd.BaseCmd.invoke(BaseCmd.java:1187)
at com.amazon.aes.webservices.client.cmd.DescribeImages.main(DescribeImages.java:182)
Caused by: java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:152)
at java.net.SocketInputStream.read(SocketInputStream.java:122)
at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:166)
at org.apache.http.impl.io.SocketInputBuffer.fillBuffer(SocketInputBuffer.java:90)
at org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:281)
at org.apache.http.impl.conn.LoggingSessionInputBuffer.readLine(LoggingSessionInputBuffer.java:115)
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:92)
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:62)
at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:254)
at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:289)
at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:252)
at org.apache.http.impl.conn.ManagedClientConnectionImpl.receiveResponseHeader(ManagedClientConnectionImpl.java:191)
at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:300)
at com.amazonaws.http.protocol.SdkHttpRequestExecutor.doReceiveResponse(SdkHttpRequestExecutor.java:66)
at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:127)
at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:717)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:522)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:681)
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:456)
… 7 more
ec2-api-tools-1.7.5.1/bin$ packet_write_wait: Connection to 132.231.8.240: Broken pipe
*SERVER-COMMAND
command: netcat -vlp 4567
listening on [any] 4567 …
connect to [192.168.11.2] XXXXXXX [192.168.11.2] 40027
POST / HTTP/1.1
Host: 192.168.11.2:4567
X-Amz-Date: 20151104T110926Z
Authorization: AWS4-HMAC-SHA256 Credential=oneadmin/20151104/us-east-1/ec2/aws4_request, SignedHeaders=host;user-agent;x-amz-date, Signature=f70e0406ce2d16f8587decdbff33c6ddbd44e4a339fafe997f251774d22f70e4
User-Agent: ec2-api-tools 1.7.5.1, aws-sdk-java/unknown-version Linux/4.1.0-2-amd64 OpenJDK_64-Bit_Server_VM/24.91-b01/1.7.0_91
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Content-Length: 53
Connection: Keep-Alive
Action=DescribeImages&Version=2015-04-15&Owner.1=self
now if i try to connect with the OpenNebula EC2 CLI (ECONE), the Host receives following and the connection is established:
*CLIENT COMMAND:
ec2-api-tools-1.7.5.1/bin$ econe-describe-images -K oneadmin -S *********
SERVER COMMAND:
netcat -vlp 4567
listening on [any] 4567 …
connect to [192.168.11.2] from XXXXXXX [192.168.11.2] 39973
POST / HTTP/1.1
Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept: /
User-Agent: github-amazon-ec2-ruby-gem
Content-Type: application/x-www-form-urlencoded
Host: 192.168.11.2:4567
Content-Length: 204
AWSAccessKeyId=oneadmin&Action=DescribeImages&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2015-11-04T11%3A08%3A00Z&Version=2010-08-31&Signature=3QXOb68NHEExQtmeyUzPO%2FN438fxs6JxhNfNHBZvFlU%3Dro
so you can see, there are differences between the different tools on the Authentication and the Auth is not working if i use any EC2 client (same problem with hybridfox!). So i´m not able to use EC2 clients as mentioned in [1].
Can anybody explain me, why this is happens and how to solve it to use the Amazone EC2 CLI ?
Thank you!
[1]: http://opennebula.org/opennebula-4-4-enhanced-amazon-ec2-api-implementation/