[Pkg-puppet-devel] autopkgtest issues in Ubuntu

Nish Aravamudan nish.aravamudan at canonical.com
Fri Feb 24 20:45:03 UTC 2017


On 24.02.2017 [12:34:24 -0800], Nish Aravamudan wrote:
> On 24.02.2017 [12:11:55 -0800], Nish Aravamudan wrote:
> > On 24.02.2017 [11:58:29 -0800], Nish Aravamudan wrote:
> > > On 24.02.2017 [11:54:11 -0800], Nish Aravamudan wrote:
> > > > On 24.02.2017 [11:48:45 +0200], Apollon Oikonomopoulos wrote:
> > > > > Hi Nish,
> > > > > 
> > > > > On 13:48 Thu 23 Feb     , Nish Aravamudan wrote:
> > > > > > Ok, so adding ca-certificates did not seem to make any difference (and
> > > > > > in fact, it seems like it is already installed in the Ubuntu autopkgtest
> > > > > > environment so that was a red herring anyways). Any ideas why, e.g.:
> > > > > 
> > > > > Puppet has its own CA system and does not rely on ca-certificates on any 
> > > > > way, so having ca-certificates installed or not should not make a 
> > > > > difference.
> > > > 
> > > > Got it.
> > > > 
> > > > > > https://objectstorage.prodstack4-5.canonical.com/v1/AUTH_77e2ada1e7a84929a74ba3b87153c0ac/autopkgtest-zesty-nacc-lp1570472/zesty/amd64/p/puppet/20170223_203421_4dd8e@/log.gz
> > > > > > 
> > > > > > there is no certificate for the hostname by default on Ubuntu but there
> > > > > > is on Debian? I don't see anything in the tests that ensure it exists
> > > > > > and only puppet-master-passenger generates it in a postinst (hence those
> > > > > > tests now pass, but I think it's technically incidental and dependent on
> > > > > > the .postinst's behavior, which might be fine).
> > > > > 
> > > > > The certificate should have been generated by the master process itself 
> > > > > if it does not exist, using Puppet's CA. Could you get the list of files 
> > > > > under /var/lib/puppet/ssl and /var/cache/puppet/ssl at the end of the 
> > > > > test?
> > > > 
> > > > So I just did a quick test in a LXD of 17.04 after installing
> > > > puppet-master and ruby-serverspec.
> > > > 
> > > > # ps aux | grep puppet
> > > > puppet    4421  0.0  0.2 216624 45424 ?        Ssl  19:52   0:00 /usr/bin/ruby /usr/bin/puppet master
> > > > 
> > > > # find /var/lib/puppet/ssl/
> > > > /var/lib/puppet/ssl/
> > > > /var/lib/puppet/ssl/certificate_requests
> > > > /var/lib/puppet/ssl/public_keys
> > > > /var/lib/puppet/ssl/public_keys/oriented-squirrel.lxd.pem
> > > > /var/lib/puppet/ssl/certs
> > > > /var/lib/puppet/ssl/certs/ca.pem
> > > > /var/lib/puppet/ssl/certs/oriented-squirrel.lxd.pem
> > > 
> > > Ah that seems to be the disconnect?
> > > 
> > > # puppet cert print $(hostname --fqdn).lxd
> > > 
> > > *does* work, which seems tied to
> > > 
> > > # puppet master --configprint hostcert
> > > /var/lib/puppet/ssl/certs/mighty-clam.lxd.pem
> > > 
> > > Note that this is all tied to LXD of course, and I can spin up a VM of
> > > Zesty but I expect we might see something similar there?
> > 
> > Ah:
> > 
> > # ruby -e 'require "facter"' -e 'puts Facter.value :domain'
> > lxd
> > 
> > while
> > 
> > # hostname --fqdn
> > mighty-clam
> > 
> > And the tests then disagree with puppet? :)
> 
> So I think the following changes are needed/reasonable for Debian, but
> I'd like some feedback. Also, are there plans to send
> d/p/0005-use-systemd-as-the-default-service-provider.patch upstream? I
> think we'd want to make the same change in Ubuntu there as well.
> 
>   * d/t/spec/puppet-master/install_spec.rb: the default puppet-master
>     certificate uses Facter(:fqdn) not `hostname --fqdn` and they can
>     differ. Specifically, on LXD containers, the former is
>     <containername>.lxd while the latter is <containername>.
>   * d/t/spec/puppet-master-passenger/zz_puppet3_compat_spec.rb: specify
>     to curl that 'puppet' should not be proxied.
> 
> diff -Nru puppet-4.8.2/debian/tests/spec/puppet-master/install_spec.rb puppet-4.8.2/debian/tests/spec/puppet-master/install_spec.rb
> --- puppet-4.8.2/debian/tests/spec/puppet-master/install_spec.rb	2017-02-15 04:23:19.000000000 -0800
> +++ puppet-4.8.2/debian/tests/spec/puppet-master/install_spec.rb	2017-02-24 12:29:14.000000000 -0800
> @@ -1,4 +1,5 @@
>  require 'spec_helper'
> +require 'facter'
>  
>  describe package('puppet-master') do
>    it { should be_installed }
> @@ -13,7 +14,7 @@
>    it { should be_listening.with('tcp') }
>  end
>  
> -describe command('puppet cert print $(hostname --fqdn)') do
> +describe command('puppet cert print #{Facter.value(:fqdn)}') do

Err, with s/'/"/g I think.

Note that while this does affect LXD locally for sure, it also affects
Ubuntu's autopkgtest runners, where I think again Facter disagrees with
hostname; there, Facter states the fqdn is 'autopkgtest.localdomain',
while hostname --fqdn has the actual nova instance's name.

Thanks,
Nish
-- 
Nishanth Aravamudan
Ubuntu Server
Canonical Ltd



More information about the Pkg-puppet-devel mailing list