rodjek / librarian-puppet

http://librarian-puppet.com
MIT License
694 stars 216 forks source link

No route to host - gitserver? #327

Closed ITler closed 8 years ago

ITler commented 8 years ago

Description

I'm facing an issue when using librarian-puppet on a prod system. librarian-puppet install leads to a no route to host error when trying to resolve my internal git server (DNS name resolving private class A network IP).

When pinging, sshing or doing nslookup to the git server from bash, it _does_ response as expected, but librarian-puppet install fails.

Environment

                    +---------------+   
                    |               |   
                    |  +---------+  |   
                    |  |         |  |   
+-------------------v--v--+      |  |   
|                   :  :  |      |  |   
| CentOS - prod     :  :  |      |  |   
|                   :  :  |   Class A IP
|  docker-host      :  :  |      |  |   
|                   :  :  |      |  |   
|              +----v--v--+--+   |  |   
|              |             |   |  |   
|           +--+ Git-Server  |   |  |   
|           |  |             |   |  |   
|  default  |  +----------+--+   |  |   
|  Class B IP             |      |  |   
|           |  +----------+--+   |  |   
|           |  |             |   |  |   
|           |  | librarian   |   |  |   
|           +--+ problem     +---+  |   
|              |             |      |   
|              +----------+--+      |   
|                         |         |   
+-------------------------+         |   
                                    |   
+----------------+                  |   
|                |                  |   
| Ubuntu - dev   |                  |   
|                |                  |   
|  docker-host   |                  |   
|                |                  |   
|        +-------+-----+            |   
|        |             |            |   
|        | librarian   +------------+   
|        | working     |                
|        |             |                
|        +-------+-----+                
|                |                      
+----------------+                      

Container network config

eth0      Link encap:Ethernet  HWaddr 02:42:ac:11:00:11  
          inet addr:172.17.0.17  Bcast:0.0.0.0  Mask:255.255.0.0
          inet6 addr: fe80::42:acff:fe11:11/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:33 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:648 (648.0 B)  TX bytes:4162 (4.1 KB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Shell output

# shell within docker container
$ librarian-puppet install --verbose
[Librarian] Ruby Version: 2.1.6
[Librarian] Ruby Platform: x86_64-linux
[Librarian] Rubygems Version: 2.2.5
[Librarian] Librarian Version: 0.6.3
[Librarian] Librarian Adapter: puppet
[Librarian] Librarian Adapter Version: 2.2.1
[Librarian] Project: /tmp/bootstrap
[Librarian] Specfile: Puppetfile
[Librarian] Lockfile: Puppetfile.lock
[Librarian] Git: /usr/bin/git
[Librarian] Git Version: 1.9.1
[Librarian] Git Environment Variables:
[Librarian]   (empty)
[Librarian] Pre-Cached Sources:
[Librarian] Post-Cached Sources:
[Librarian]   [:forge, "https://forgeapi.puppetlabs.com", {}]
[Librarian]   [:git, "https://gitserver.example.com/puppet/profiles.git", {}]
[Librarian] Resolving profiles (>= 0) <https://gitserver.example.com/puppet/profiles.git#master>
[Librarian]   Checking manifests
[Librarian]     --- Exited with pid 104 exit 128
[Librarian]     --> fatal: unable to access 'https://gitserver.example.com/puppet/profiles.git/': Failed to connect to gitserver.example.com port 443: No route to host
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarian-puppet-2.2.1/lib/librarian/puppet/source/git.rb:37:in `rescue in cache!'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarian-puppet-2.2.1/lib/librarian/puppet/source/git.rb:34:in `cache!'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarian-puppet-2.2.1/lib/librarian/puppet/source/local.rb:32:in `fetch_version'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarianp-0.6.3/lib/librarian/manifest.rb:93:in `fetch_version!'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarianp-0.6.3/lib/librarian/manifest.rb:85:in `fetched_version'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarianp-0.6.3/lib/librarian/manifest.rb:24:in `version'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarianp-0.6.3/lib/librarian/manifest.rb:20:in `to_s'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarianp-0.6.3/lib/librarian/resolver/implementation.rb:191:in `block in scope_checking_manifest'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarianp-0.6.3/lib/librarian/resolver/implementation.rb:236:in `block in debug'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarianp-0.6.3/lib/librarian/logger.rb:37:in `block in debug'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarianp-0.6.3/lib/librarian/ui.rb:32:in `debug'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarianp-0.6.3/lib/librarian/logger.rb:37:in `debug'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarianp-0.6.3/lib/librarian/resolver/implementation.rb:236:in `debug'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarianp-0.6.3/lib/librarian/resolver/implementation.rb:191:in `scope_checking_manifest'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarianp-0.6.3/lib/librarian/resolver/implementation.rb:160:in `block (2 levels) in resolving_dependency_map_find_manifests'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarianp-0.6.3/lib/librarian/resolver/implementation.rb:218:in `block in map_find'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarianp-0.6.3/lib/librarian/resolver/implementation.rb:217:in `each'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarianp-0.6.3/lib/librarian/resolver/implementation.rb:217:in `map_find'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarianp-0.6.3/lib/librarian/resolver/implementation.rb:159:in `block in resolving_dependency_map_find_manifests'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarianp-0.6.3/lib/librarian/resolver/implementation.rb:172:in `block (2 levels) in scope_resolving_dependency'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarianp-0.6.3/lib/librarian/resolver/implementation.rb:186:in `block in scope_checking_manifests'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarianp-0.6.3/lib/librarian/resolver/implementation.rb:230:in `scope'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarianp-0.6.3/lib/librarian/resolver/implementation.rb:185:in `scope_checking_manifests'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarianp-0.6.3/lib/librarian/resolver/implementation.rb:171:in `block in scope_resolving_dependency'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarianp-0.6.3/lib/librarian/resolver/implementation.rb:230:in `scope'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarianp-0.6.3/lib/librarian/resolver/implementation.rb:170:in `scope_resolving_dependency'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarianp-0.6.3/lib/librarian/resolver/implementation.rb:158:in `resolving_dependency_map_find_manifests'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarianp-0.6.3/lib/librarian/resolver/implementation.rb:65:in `do_resolve'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarianp-0.6.3/lib/librarian/resolver/implementation.rb:50:in `resolve'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarianp-0.6.3/lib/librarian/resolver.rb:23:in `resolve'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarianp-0.6.3/lib/librarian/action/resolve.rb:31:in `run'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarian-puppet-2.2.1/lib/librarian/puppet/action/resolve.rb:10:in `run'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarian-puppet-2.2.1/lib/librarian/puppet/cli.rb:104:in `resolve!'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarian-puppet-2.2.1/lib/librarian/puppet/cli.rb:68:in `install'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/thor-0.19.1/lib/thor/command.rb:27:in `run'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/thor-0.19.1/lib/thor/invocation.rb:126:in `invoke_command'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/thor-0.19.1/lib/thor.rb:359:in `dispatch'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/thor-0.19.1/lib/thor/base.rb:440:in `start'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarianp-0.6.3/lib/librarian/cli.rb:26:in `block (2 levels) in bin!'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarianp-0.6.3/lib/librarian/cli.rb:31:in `returning_status'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarianp-0.6.3/lib/librarian/cli.rb:26:in `block in bin!'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarianp-0.6.3/lib/librarian/cli.rb:47:in `with_environment'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarianp-0.6.3/lib/librarian/cli.rb:26:in `bin!'
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/librarian-puppet-2.2.1/bin/librarian-puppet:7:in `<top (required)>'
/opt/puppetlabs/puppet/bin/librarian-puppet:23:in `load'
/opt/puppetlabs/puppet/bin/librarian-puppet:23:in `<main>'

Where is my mistake? How to debug that issue?

ITler commented 8 years ago

At the moment, I really assume, that this problem comes from docker (gitserver container is on same host as librarian-puppet problem container). This is a conclusion, because using the container on another CentOS prod docker host server, there were no problems using librarian-puppet install. That's why I close this issue for now.