Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

running dev-tools on a new fedora 17 minimal install results in error: #9

Open
martinpovolny opened this issue Nov 29, 2012 · 16 comments

Comments

@martinpovolny
Copy link

Error: Could not set 'directory' on ensure: Could not find group puppet
Error: Could not set 'directory' on ensure: Could not find group puppet
Wrapped exception:
Could not find group puppet
Error: /File[/var/lib/puppet/log]/ensure: change from absent to directory failed: Could not set 'directory' on ensure: Could not find group puppet
Debug: /File[/etc/puppet/ssl/private]/ensure: created
Debug: /File[/etc/puppet/ssl/certificate_requests]/ensure: created
Debug: Finishing transaction 25072740
Error: Got 3 failure(s) while initializing: Could not set 'directory' on ensure: Could not find group puppet; Could not set 'directory' on ensure: Could not find group puppet
Wrapped exception:
Could not find group puppet; change from absent to directory failed: Could not set 'directory' on ensure: Could not find group puppet

  • '[' '!' x = x ']'
@cwolferh
Copy link
Contributor

Hmm, I have seen this bug and we removed the command to add the puppet group as part of #8 . However, I tested it on f16, f17 and on rhel6 instances that did not have puppet groups and did not see the issue. I just retried on an f16 instance with no puppet group and it seemed to work.

What do you get for "puppet --version"?

@martinpovolny
Copy link
Author

Sure. It says: 3.0.1

It's a couple minute's job to retry including new Fedora minimal install, so feel free to request any assistance.

@gfidente
Copy link
Member

gfidente commented Dec 2, 2012

@martinpovolny, the boostrap command will echo dueing execution and before launching puppet a message pointing you to a known bug from puppet. Is the error you're seeing the same described in the bug report? This is a link to the actual bug: http://projects.puppetlabs.com/issues/9862

@martinpovolny
Copy link
Author

hi, I did not notice such bug in the output

I have just rerun the test and get to similar result

I did:

install minimal fedora 17
then install screen
then run the dev-script as root
then I got the same result as previous line

unfortunately when I tried to copy the output from the screen I screwed it up :-(
but is is surely reproducable by the steps above

I will come back to this issue in 2 days if you need more input, I am out of office atm

might there be the problem in running as root? I can retry as a unprivileged user then...

@martinpovolny
Copy link
Author

here is the full output, if a run the bootstrap on the same machine for a second time:

[root@test4 martin]# curl https://raw.github.com/aeolus-incubator/dev-tools/master/bootstrap.sh | /bin/bash -x
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0+ '[' x = x ']'

  • HAVESUDO=1
  • '[' x = x ']'
  • export WORKDIR=/root/aeolus-workdir
  • WORKDIR=/root/aeolus-workdir
  • '[' x = x ']'
  • export FACTER_AEOLUS_WORKDIR=/root/aeolus-workdir
  • FACTER_AEOLUS_WORKDIR=/root/aeolus-workdir
  • '[' x = x ']'
  • export FACTER_CONDUCTOR_PORT=3000
  • FACTER_CONDUCTOR_PORT=3000
  • '[' x = x ']'
  • export FACTER_IWHD_URL=http://localhost:9090
  • FACTER_IWHD_URL=http://localhost:9090
  • '[' x = x ']'
  • export FACTER_DELTACLOUD_URL=http://localhost:3002/api
  • FACTER_DELTACLOUD_URL=http://localhost:3002/api
  • '[' x = x ']'
  • export FACTER_IMAGEFACTORY_URL=https://localhost:8075/imagefactory
  • FACTER_IMAGEFACTORY_URL=https://localhost:8075/imagefactory
  • '[' x = x ']'
  • export FACTER_OAUTH_JSON_FILE=/tmp/oauth.json
  • FACTER_OAUTH_JSON_FILE=/tmp/oauth.json
  • '[' '!' -e /tmp/oauth.json ']'
    100 11655 100 11655 0 0 18404 0 --:--:-- --:--:-- --:--:-- 25559
    ++ grep -q -P ':3000\s'
    ++ netstat -tln
  • '[' -e /root/aeolus-workdir/conductor ']'
  • '[' -e /root/aeolus-workdir/aeolus-image-rubygem ']'
  • '[' -e /root/aeolus-workdir/aeolus-cli ']'
  • os=unsupported
    ++ grep -Eqs 'Red Hat Enterprise Linux Server release 6|CentOS release 6' /etc/redhat-release
    ++ grep -qs -P 'Fedora release 16' /etc/fedora-release
    ++ grep -qs -P 'Fedora release 17' /etc/fedora-release
  • os=f17
  • '[' -f /etc/debian_version ']'
  • '[' f17 = unsupported ']'
  • '[' f17 = f16 -o f17 = f17 -o f17 = el6 ']'
  • depends=git
  • depends='git gcc make zlib-devel'
  • depends='git gcc make zlib-devel libffi-devel'
  • depends='git gcc make zlib-devel libffi-devel libxml2-devel'
  • depends='git gcc make zlib-devel libffi-devel libxml2-devel libxslt-devel'
  • depends='git gcc make zlib-devel libffi-devel libxml2-devel libxslt-devel gcc-c++'
  • depends='git gcc make zlib-devel libffi-devel libxml2-devel libxslt-devel gcc-c++ openssl-devel lsof'
  • depends='git gcc make zlib-devel libffi-devel libxml2-devel libxslt-devel gcc-c++ openssl-devel lsof sqlite-devel'
  • '[' x = x ']'
  • depends='git gcc make zlib-devel libffi-devel libxml2-devel libxslt-devel gcc-c++ openssl-devel lsof sqlite-devel rubygems ruby-devel'
  • '[' f17 '!=' el6 ']'
  • depends='git gcc make zlib-devel libffi-devel libxml2-devel libxslt-devel gcc-c++ openssl-devel lsof sqlite-devel rubygems ruby-devel rubygem-bundler'
  • '[' x '!=' x ']'
  • '[' 1 = 1 ']'
    ++ echo git gcc make zlib-devel libffi-devel libxml2-devel libxslt-devel gcc-c++ openssl-devel lsof sqlite-devel rubygems ruby-devel rubygem-bundler
  • for dep in 'echo $depends'
    ++ rpm -q --quiet --nodigest git
    ++ rpm -q --quiet --nodigest git
  • for dep in 'echo $depends'
    ++ rpm -q --quiet --nodigest gcc
    ++ rpm -q --quiet --nodigest gcc
  • for dep in 'echo $depends'
    ++ rpm -q --quiet --nodigest make
    ++ rpm -q --quiet --nodigest make
  • for dep in 'echo $depends'
    ++ rpm -q --quiet --nodigest zlib-devel
    ++ rpm -q --quiet --nodigest zlib-devel
  • for dep in 'echo $depends'
    ++ rpm -q --quiet --nodigest libffi-devel
    ++ rpm -q --quiet --nodigest libffi-devel
  • for dep in 'echo $depends'
    ++ rpm -q --quiet --nodigest libxml2-devel
    ++ rpm -q --quiet --nodigest libxml2-devel
  • for dep in 'echo $depends'
    ++ rpm -q --quiet --nodigest libxslt-devel
    ++ rpm -q --quiet --nodigest libxslt-devel
  • for dep in 'echo $depends'
    ++ rpm -q --quiet --nodigest gcc-c++
    ++ rpm -q --quiet --nodigest gcc-c++
  • for dep in 'echo $depends'
    ++ rpm -q --quiet --nodigest openssl-devel
    ++ rpm -q --quiet --nodigest openssl-devel
  • for dep in 'echo $depends'
    ++ rpm -q --quiet --nodigest lsof
    ++ rpm -q --quiet --nodigest lsof
  • for dep in 'echo $depends'
    ++ rpm -q --quiet --nodigest sqlite-devel
    ++ rpm -q --quiet --nodigest sqlite-devel
  • for dep in 'echo $depends'
    ++ rpm -q --quiet --nodigest rubygems
    ++ rpm -q --quiet --nodigest rubygems
  • for dep in 'echo $depends'
    ++ rpm -q --quiet --nodigest ruby-devel
    ++ rpm -q --quiet --nodigest ruby-devel
  • for dep in 'echo $depends'
    ++ rpm -q --quiet --nodigest rubygem-bundler
    ++ rpm -q --quiet --nodigest rubygem-bundler
  • '[' f17 = debian ']'
  • mkdir -p /root/aeolus-workdir
  • '[' '!' -d /root/aeolus-workdir ']'
  • '[' x '!=' x ']'
  • gem_installs='json facter puppet'
  • '[' f17 = el6 ']'
  • declare -A gem_versions
  • gem_versions["facter"]=1.6.13
    ++ echo json facter puppet
  • for the_gem in 'echo $gem_installs'
    ++ gem list -i json
  • '[' true = false ']'
  • for the_gem in 'echo $gem_installs'
    ++ gem list -i facter
  • '[' true = false ']'
  • for the_gem in 'echo $gem_installs'
    ++ gem list -i puppet
  • '[' true = false ']'
  • '[' x '!=' x ']'
  • '[' x '!=' x ']'
  • mkdir -p /root/aeolus-workdir
  • '[' '!' -d /root/aeolus-workdir ']'
  • cd /root/aeolus-workdir
  • '[' '!' -d dev-tools ']'
  • echo 'dev-tools DIRECTORY ALREADY EXISTS, LEAVING IN TACT.'
    dev-tools DIRECTORY ALREADY EXISTS, LEAVING IN TACT.
  • echo 'Given this puppet bug http://projects.puppetlabs.com/issues/9862'
    Given this puppet bug http://projects.puppetlabs.com/issues/9862
  • echo 'you may need to add manually the '''puppet''' group to the system in case of errors.'
    you may need to add manually the 'puppet' group to the system in case of errors.
  • cd /root/aeolus-workdir/dev-tools
  • puppet apply -d --modulepath=. test.pp --no-report
    Info: Loading facts in /root/aeolus-workdir/dev-tools/conductor/lib/facter/oauth.rb
    Warning: Could not retrieve fact fqdn
    Debug: importing '/root/aeolus-workdir/dev-tools/aeolus-image-rubygem/manifests/init.pp' in environment production
    Debug: Automatically imported aeolus-image-rubygem from aeolus-image-rubygem into production
    Debug: importing '/root/aeolus-workdir/dev-tools/aeolus-image-rubygem/manifests/install/dev.pp' in environment production
    Debug: Automatically imported aeolus-image-rubygem::install::dev from aeolus-image-rubygem/install/dev into production
    Debug: importing '/root/aeolus-workdir/dev-tools/git/manifests/repo.pp' in environment production
    Debug: Automatically imported git::repo from git/repo into production
    Debug: importing '/root/aeolus-workdir/dev-tools/aeolus-image-rubygem/manifests/setup/dev.pp' in environment production
    Debug: Automatically imported aeolus-image-rubygem::setup::dev from aeolus-image-rubygem/setup/dev into production
    Debug: importing '/root/aeolus-workdir/dev-tools/bundler/manifests/init.pp' in environment production
    Debug: Automatically imported bundler from bundler into production
    Debug: importing '/root/aeolus-workdir/dev-tools/bundler/manifests/install.pp' in environment production
    Debug: Automatically imported bundler::install from bundler/install into production
    Debug: Executing '/usr/bin/rpm --version'
    Debug: Executing '/usr/bin/rpm --version'
    Debug: Executing '/usr/bin/rpm -ql rpm'
    Debug: Executing '/usr/bin/rpm -ql rpm'
    Debug: importing '/root/aeolus-workdir/dev-tools/conductor/manifests/init.pp' in environment production
    Debug: Automatically imported conductor from conductor into production
    Debug: importing '/root/aeolus-workdir/dev-tools/conductor/manifests/install/dev.pp' in environment production
    Debug: Automatically imported conductor::install::dev from conductor/install/dev into production
    Debug: importing '/root/aeolus-workdir/dev-tools/conductor/manifests/config/dev.pp' in environment production
    Debug: Automatically imported conductor::config::dev from conductor/config/dev into production
    Debug: Scope(Class[Conductor::Config::Dev]): Retrieving template conductor/conductor-settings.yml
    Debug: template[/root/aeolus-workdir/dev-tools/conductor/templates/conductor-settings.yml]: Bound template variables for /root/aeolus-workdir/dev-tools/conductor/templates/conductor-settings.yml in 0.00 seconds
    Debug: template[/root/aeolus-workdir/dev-tools/conductor/templates/conductor-settings.yml]: Interpolated template /root/aeolus-workdir/dev-tools/conductor/templates/conductor-settings.yml in 0.00 seconds
    Debug: Failed to load library 'selinux' for feature 'selinux'
    Debug: importing '/root/aeolus-workdir/dev-tools/conductor/manifests/setup/dev.pp' in environment production
    Debug: Automatically imported conductor::setup::dev from conductor/setup/dev into production
    Debug: importing '/root/aeolus-workdir/dev-tools/conductor/manifests/run/dev.pp' in environment production
    Debug: Automatically imported conductor::run::dev from conductor/run/dev into production
    Debug: importing '/root/aeolus-workdir/dev-tools/aeolus-cli/manifests/init.pp' in environment production
    Debug: Automatically imported aeolus-cli from aeolus-cli into production
    Debug: importing '/root/aeolus-workdir/dev-tools/aeolus-cli/manifests/install/dev.pp' in environment production
    Debug: Automatically imported aeolus-cli::install::dev from aeolus-cli/install/dev into production
    Debug: importing '/root/aeolus-workdir/dev-tools/aeolus-cli/manifests/setup/dev.pp' in environment production
    Debug: Automatically imported aeolus-cli::setup::dev from aeolus-cli/setup/dev into production
    Debug: importing '/root/aeolus-workdir/dev-tools/git/manifests/install.pp' in environment production
    Debug: Automatically imported git::install from git/install into production
    Debug: Adding relationship from Class[Aeolus-image-rubygem] to Class[Conductor] with 'before'
    Debug: Exec[gem build aeolus-image.gemspec]: Adding default for path
    Debug: Exec[init submodule]: Adding default for path
    Debug: Exec[init submodule]: Adding default for logoutput
    Debug: Exec[update submodule]: Adding default for path
    Debug: Exec[update submodule]: Adding default for logoutput
    Debug: Exec[use sqlite gem]: Adding default for path
    Debug: Exec[use sqlite gem]: Adding default for logoutput
    Debug: Exec[sqlite database.yml]: Adding default for path
    Debug: Exec[sqlite database.yml]: Adding default for logoutput
    Debug: Exec[use established ouath.json if it exists]: Adding default for path
    Debug: Exec[use established ouath.json if it exists]: Adding default for logoutput
    Debug: Exec[update deltacloud_url]: Adding default for path
    Debug: Exec[update deltacloud_url]: Adding default for logoutput
    Debug: Exec[update iwhd_url]: Adding default for path
    Debug: Exec[update iwhd_url]: Adding default for logoutput
    Debug: Exec[update imagefactory_url]: Adding default for path
    Debug: Exec[update imagefactory_url]: Adding default for logoutput
    Debug: Exec[patch Gemfile to point to local aeolus-image-rubygem]: Adding default for path
    Debug: Exec[patch Gemfile to point to local aeolus-image-rubygem]: Adding default for logoutput
    Debug: Exec[bundle install]: Adding default for path
    Debug: Exec[migrate database]: Adding default for path
    Debug: Exec[migrate database]: Adding default for logoutput
    Debug: Exec[setup database]: Adding default for path
    Debug: Exec[setup database]: Adding default for logoutput
    Debug: Exec[setup delayed_job to log locally]: Adding default for path
    Debug: Exec[setup delayed_job to log locally]: Adding default for logoutput
    Debug: Exec[create admin]: Adding default for path
    Debug: Exec[create admin]: Adding default for logoutput
    Debug: Exec[compass compile]: Adding default for path
    Debug: Exec[compass compile]: Adding default for logoutput
    Debug: Exec[conductor rails server]: Adding default for path
    Debug: Exec[conductor rails server]: Adding default for logoutput
    Debug: Exec[conductor delayed_job]: Adding default for path
    Debug: Exec[conductor delayed_job]: Adding default for logoutput
    Debug: Exec[conductor dbomatic]: Adding default for path
    Debug: Exec[conductor dbomatic]: Adding default for logoutput
    Debug: Exec[wait for rails to start]: Adding default for path
    Debug: Exec[wait for rails to start]: Adding default for logoutput
    Debug: Exec[clone-repo-aeolus-image-rubygem]: Adding default for logoutput
    Debug: Exec[branch-repo-aeolus-image-rubygem-master]: Adding default for logoutput
    Debug: Exec[clone-repo-conductor]: Adding default for logoutput
    Debug: Exec[branch-repo-conductor-master]: Adding default for logoutput
    Debug: Exec[clone-repo-aeolus-cli]: Adding default for logoutput
    Debug: Exec[branch-repo-aeolus-cli-master]: Adding default for logoutput
    Debug: Puppet::Type::Package::ProviderDpkg: file /usr/bin/dpkg does not exist
    Debug: Puppet::Type::Package::ProviderApt: file /usr/bin/apt-get does not exist
    Debug: Puppet::Type::Package::ProviderSun: file /usr/bin/pkginfo does not exist
    Debug: Puppet::Type::Package::ProviderSunfreeware: file pkg-get does not exist
    Debug: Puppet::Type::Package::ProviderHpux: file /usr/sbin/swinstall does not exist
    Debug: Puppet::Type::Package::ProviderPkg: file /usr/bin/pkg does not exist
    Debug: Puppet::Type::Package::ProviderAptrpm: file apt-get does not exist
    Debug: Puppet::Type::Package::ProviderRug: file /usr/bin/rug does not exist
    Debug: Puppet::Type::Package::ProviderAptitude: file /usr/bin/aptitude does not exist
    Debug: Puppet::Type::Package::ProviderPacman: file /usr/bin/pacman does not exist
    Debug: Puppet::Type::Package::ProviderOpenbsd: file pkg_info does not exist
    Debug: Puppet::Type::Package::ProviderFreebsd: file /usr/sbin/pkg_info does not exist
    Debug: Puppet::Type::Package::ProviderZypper: file /usr/bin/zypper does not exist
    Debug: Puppet::Type::Package::ProviderAix: file /usr/bin/lslpp does not exist
    Debug: Puppet::Type::Package::ProviderNim: file /usr/sbin/nimclient does not exist
    Debug: Puppet::Type::Package::ProviderFink: file /sw/bin/fink does not exist
    Debug: Puppet::Type::Package::ProviderUrpmi: file urpmi does not exist
    Debug: Puppet::Type::Package::ProviderPortage: file /usr/bin/emerge does not exist
    Debug: Puppet::Type::Package::ProviderPkgin: file pkgin does not exist
    Debug: Puppet::Type::Package::ProviderPortupgrade: file /usr/local/sbin/portupgrade does not exist
    Debug: Puppet::Type::Package::ProviderPorts: file /usr/local/sbin/portupgrade does not exist
    Debug: Puppet::Type::Package::ProviderUp2date: file /usr/sbin/up2date-nox does not exist
    Debug: Creating default schedules
    Debug: Using settings: adding file resource 'confdir': 'File[/etc/puppet]{:path=>"/etc/puppet", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
    Debug: Using settings: adding file resource 'vardir': 'File[/var/lib/puppet]{:path=>"/var/lib/puppet", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
    Debug: Failed to load library 'shadow' for feature 'libshadow'
    Debug: Failed to load library 'ldap' for feature 'ldap'
    Debug: Puppet::Type::User::ProviderLdap: feature ldap is missing
    Debug: Puppet::Type::User::ProviderUser_role_add: file roleadd does not exist
    Debug: Puppet::Type::User::ProviderDirectoryservice: file /usr/bin/dscl does not exist
    Debug: Puppet::Type::User::ProviderPw: file pw does not exist
    Debug: Using settings: adding file resource 'logdir': 'File[/var/lib/puppet/log]{:path=>"/var/lib/puppet/log", :mode=>"750", :owner=>"root", :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
    Debug: Using settings: adding file resource 'statedir': 'File[/var/lib/puppet/state]{:path=>"/var/lib/puppet/state", :mode=>"1755", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
    Debug: Using settings: adding file resource 'rundir': 'File[/var/lib/puppet/run]{:path=>"/var/lib/puppet/run", :mode=>"1777", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
    Debug: Using settings: adding file resource 'libdir': 'File[/var/lib/puppet/lib]{:path=>"/var/lib/puppet/lib", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
    Debug: Using settings: adding file resource 'certdir': 'File[/etc/puppet/ssl/certs]{:path=>"/etc/puppet/ssl/certs", :owner=>"root", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
    Debug: Using settings: adding file resource 'ssldir': 'File[/etc/puppet/ssl]{:path=>"/etc/puppet/ssl", :mode=>"771", :owner=>"root", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
    Debug: Using settings: adding file resource 'publickeydir': 'File[/etc/puppet/ssl/public_keys]{:path=>"/etc/puppet/ssl/public_keys", :owner=>"root", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
    Debug: Using settings: adding file resource 'requestdir': 'File[/etc/puppet/ssl/certificate_requests]{:path=>"/etc/puppet/ssl/certificate_requests", :owner=>"root", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
    Debug: Using settings: adding file resource 'privatekeydir': 'File[/etc/puppet/ssl/private_keys]{:path=>"/etc/puppet/ssl/private_keys", :mode=>"750", :owner=>"root", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
    Debug: Using settings: adding file resource 'privatedir': 'File[/etc/puppet/ssl/private]{:path=>"/etc/puppet/ssl/private", :mode=>"750", :owner=>"root", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
    Debug: Using settings: adding file resource 'clientyamldir': 'File[/var/lib/puppet/client_yaml]{:path=>"/var/lib/puppet/client_yaml", :mode=>"750", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
    Debug: Using settings: adding file resource 'client_datadir': 'File[/var/lib/puppet/client_data]{:path=>"/var/lib/puppet/client_data", :mode=>"750", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
    Debug: Using settings: adding file resource 'clientbucketdir': 'File[/var/lib/puppet/clientbucket]{:path=>"/var/lib/puppet/clientbucket", :mode=>"750", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
    Debug: Using settings: adding file resource 'graphdir': 'File[/var/lib/puppet/state/graphs]{:path=>"/var/lib/puppet/state/graphs", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
    Debug: /File[/var/lib/puppet/log]: Autorequiring File[/var/lib/puppet]
    Debug: /File[/var/lib/puppet/state]: Autorequiring File[/var/lib/puppet]
    Debug: /File[/var/lib/puppet/run]: Autorequiring File[/var/lib/puppet]
    Debug: /File[/var/lib/puppet/lib]: Autorequiring File[/var/lib/puppet]
    Debug: /File[/etc/puppet/ssl/certs]: Autorequiring File[/etc/puppet/ssl]
    Debug: /File[/etc/puppet/ssl]: Autorequiring File[/etc/puppet]
    Debug: /File[/etc/puppet/ssl/public_keys]: Autorequiring File[/etc/puppet/ssl]
    Debug: /File[/etc/puppet/ssl/certificate_requests]: Autorequiring File[/etc/puppet/ssl]
    Debug: /File[/etc/puppet/ssl/private_keys]: Autorequiring File[/etc/puppet/ssl]
    Debug: /File[/etc/puppet/ssl/private]: Autorequiring File[/etc/puppet/ssl]
    Debug: /File[/var/lib/puppet/client_yaml]: Autorequiring File[/var/lib/puppet]
    Debug: /File[/var/lib/puppet/client_data]: Autorequiring File[/var/lib/puppet]
    Debug: /File[/var/lib/puppet/clientbucket]: Autorequiring File[/var/lib/puppet]
    Debug: /File[/var/lib/puppet/state/graphs]: Autorequiring File[/var/lib/puppet/state]
    Error: /File[/var/lib/puppet/log]: Could not evaluate: Could not find group puppet
    Debug: Finishing transaction 24281660
    Error: Got 1 failure(s) while initializing: Could not evaluate: Could not find group puppet
  • '[' '!' x = x ']'

@gfidente
Copy link
Member

gfidente commented Dec 3, 2012

hi Martin, thanks for helping with this. The lines which alert about the bugs are here:

echo 'Given this puppet bug http://projects.puppetlabs.com/issues/9862' Given this puppet bug http://projects.puppetlabs.com/issues/9862

echo 'you may need to add manually the '''puppet''' group to the system in case of errors.' you may need to add manually the 'puppet' group to the system in case of errors.

but I'm of the idea that, because you're not exporting RBENV_VERSION, the script is installing some rpms for you and using the system-wide ruby distribution, instead of rbenv. This is a 'supported' use case, but nothing I ever tested cause I was interested in using RBENV.

I suspect you're facing such an issue because the version of puppet installed by YUM suffers the bug in question.

@cwolferh
Copy link
Contributor

cwolferh commented Dec 4, 2012

@martinpovolny Yes, that you are running as root is the difference that is causing the problem.

The script isn't intended to be run as root anymore since that will fire up a few processes (dbomatic, conductor, delayed jobs) as root. So, two possible options:

  1. Print a warning message telling user ^^ when running as root but that the puppet group will be added even though you really shouldn't be running as root..
  2. Print an error message and exit.

I kind of favor 1 because I like scripts that just work. Either way we should also take out giulivo's echo statement since it appears to be a root-only issue.

@gfidente
Copy link
Member

gfidente commented Dec 4, 2012

@cwolferh the thing is that I don't like the idea of adding a system-wide 'puppet' group only to fix a particular bug. It only affects some versions of puppet and people using RBENV (or on recent distros) should never face such a problem cause the newer versions of puppet seem to have fixed it

I think we should prevent the script from being launched as root, strip out the '-x' from the bash arguments, but don't see the need for any other change. I'd be happy to keep the sudo thing only to install the dependencies and make it use RBENV by default, even when RBENV_EXPORT is not set.

@gfidente
Copy link
Member

gfidente commented Dec 4, 2012

@martinpovolny can you please help confirming if the following steps:

  • install minimal fedora 17
  • then install screen
  • switch to a non privileged user
  • export RBENV_VERSION=1.9.3-p327
  • run the dev-script

produce a working install?

@martinpovolny
Copy link
Author

@cwolferh the thing is that I don't like the idea of adding a system-wide 'puppet' group only to fix a particular bug. It only affects some versions of puppet and people using RBENV (or on recent distros) should never face such a problem cause the newer versions of puppet seem to have fixed it

well the thing is that having clean nice code and/or environment etc. is important, but not as important as having the code working

so if it's needed in some setups to add a system-wide puppet group, you should do it

if you do not like the idea of adding it everywhere, then you should try to detect when it is needed

just my 2 cents

@martinpovolny
Copy link
Author

I did the above steps w/o the RBENV_ line and got a running conductor

@justinclift
Copy link

As a clarity thing, is this issue on F16 (as per issue title), F17, or both?

@martinpovolny
Copy link
Author

sorry, it's F17, fixed the title

@cwolferh
Copy link
Contributor

This is a continuation of the "add puppet group" discussion from #8 (bootstrap.sh added the puppet group once upon a time).

A similar issue with fc17 (or actually any OS with a version of facter after 1.6.13) is with facter, i.e., "Error: Could not run: Could not retrieve facts for hostname: undefined method `kernel_fact_value' for Facter::Util::Processor:Module."

I think the solution for puppet/facter is #14 . That is, if the user wants to use system ruby, we install the versions of puppet and facter that are known to work locally to the user.

@martinpovolny
Copy link
Author

I think that the "make it work" approach is clear here. The dev-tools should add the puppet group.

I would suggest taking the "make it work" approach and actually make it work instead of discussing it ;)

Actually in the beaker task I do exactly that (add the puppet group) until dev-tools decide it's worth fixing.

@justinclift
Copy link

Yeah, we should just add the puppet group.

If people complain about it, we can look for a better solution later.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants