(By the way, I should have referred to myself as a new Puppet _user_.
I certainly didn't mean to imply that I'm a developer of Puppet open
source software. I'm obviously not up to that challenge.)

Thanks a lot, Craig.

I'm using Webrick now, and will move to Apache before release to
production. I did see the chapter 4 in Pro Puppet, Turnbull, on making
the puppet master scalable. I also have "Pulling strings with Puppet,"
Turbull, and have ordered "Puppet 2.7 Cookbook," Arundel.

It sounds like you're suggesting a good practice is for users to su to
the puppet user and do their work as puppet. That's what I've read and
that's why it's bugging me that I can't seem to switch to the puppet
user.

I'll  be the primary developer of modules, manifests, etc, with a
backup person. Also a few other ops people would make changes to
configuration files that get served out as updates to the clients.

I get the part about separate environments and puppet masters for dev
and test. Thanks for that. I need to read and understand about
environments.

As I mentioned, I'm having trouble switching to the puppet user. Maybe
this is an Ubuntu sys admin question, but it pertains specifically to
the puppet user. The user is set up during install. I installed from
the following debians:

        facter_1.6.4-1puppetlabs1_all.deb
        puppet_2.7.9-1puppetlabs1_all.deb
        puppet-common_2.7.9-1puppetlabs1_all.deb
        puppet-dashboard_1.2.4-1puppetlabs1_all.deb
        puppetmaster_2.7.9-1puppetlabs1_all.deb
        puppetmaster-common_2.7.9-1puppetlabs1_all.deb

# sam (not the real user name) has admin rights.
# the password required here isn't the one for sam and I don't have a
password for puppet since it was set up during install.

sam@puppetmaster:~$ su - puppet
Password:

adding 'puppet ALL=(ALL) NOPASSWD:ALL' to the sudoers file didn't
help. 'su - puppet' still wants a password.

sudo password puppet # lets me create a password for puppet

The command line now accepts 'su - puppet' with the password for
puppet, but the prompt still says 'sam@puppetmaster:~$' and puppet
won't create a subdirectory from a directory owned by puppet:puppet.
Also I still have admin rights form the command line. I don't think
switch user to puppet is actually occurring.

The command line accepts 'sudo su - puppet' without a password, but
same behavior as immediately above.

I could blow away the puppet user and re-create it as a member of
puppet group and not of admin. Does that seem like a good idea? I'm
curious about the nature of the puppet user that's created during
install, and whether I'm losing anything important if I blow it away
and recreate with:

sudo useradd puppet --create-home --user-group --shell /bin/bash

Thanks for any help,

Paul


On Feb 21, 7:19 am, Craig White <craig.wh...@ttiltd.com> wrote:
> On Feb 21, 2012, at 2:52 AM, paulS wrote:
>
>
>
>
>
>
>
>
>
> > Hi all. New puppet developer. Very excited. I have the agents
> > communicating with the puppet master.
>
> > I'm wondering now about best practice for file and user permissions on
> > the puppet master. Most of my wonder probably stems from general lack
> > of understanding in this area. I'd like to get it right though to
> > avoid refactoring later.
>
> >    1. What's the best practice, or your practice, for directory and file
> > permissions on the puppet master?
>
> >    2. What's the best practice, or your practice, for users and their
> > permissions on the puppet master?
>
> > Feel free to point me to posts, articles, or chapters in books. I
> > haven't found much so far on this topic; just that the  agent should
> > be run as root so that it has permission to make any changes, and the
> > puppetmaster can be run as non root.
>
> > Thanks for any discussion here.
>
> > Here's my setup so far.
>
> > =============================
> > server OS and puppet versions
> > =============================
>
> > Ubuntu 10.04.3 LTS (Lucid) on puppet master and clients/agents
>
> > puppet-master$ dpkg -l | grep puppet
> > ii  facter                   1.6.4-1puppetlabs1      Ruby module for
> > collecting simple facts abou
> > ii  puppet                   2.7.9-1puppetlabs1      Centralized
> > configuration management - agent
> > ii  puppet-common            2.7.9-1puppetlabs1      Centralized
> > configuration management
> > ii  puppetmaster             2.7.9-1puppetlabs1      Centralized
> > configuration management - maste
> > ii  puppetmaster-common      2.7.9-1puppetlabs1      Puppet master
> > common scripts
>
> > puppet-agent$ dpkg -l | grep puppet
> > ii  facter               1.6.4-1puppetlabs1       Ruby module for
> > collecting simple facts abou
> > ii  puppet               2.7.9-1puppetlabs1       Centralized
> > configuration management - agent
> > ii  puppet-common        2.7.9-1puppetlabs1       Centralized
> > configuration management
>
> > ===================================================
> > directory and file permissions on the puppet master
> > ===================================================
>
> > puppet.conf shows default 'moduledir = /etc/puppet/modules:/var/lib/
> > puppet/modules:/opt/modules'
>
> > These directories are normally root:root so I've been making all
> > sudirectories and files for puppet manifests, modules, and files as
> > root:root.
>
> > =====================
> > users and permissions
> > =====================
>
> > puppet user
>
> >    upon install I have a puppet user.
>
> >    grep puppet /etc/group
> >    puppet:x:113:
>
> >    grep puppet /etc/passwd
> >    puppet:x:108:113:Puppet configuration management daemon,,,:/var/lib/
> > puppet:/bin/false
>
> >    grep puppet /etc/group
> >    puppet:x:113:
>
> >    'sudo -s su puppet' does not switch the user to puppet, so I haven't
> > been doing anything as puppet.
>
> > other users
>
> >    puppetadmin to store just a couple things in /home/puppetadmin that
> > don't belong in any one employees account. puppetadmin is a member of
> > its own group and of the admin group
>
> >    Individual user acccounts for a few ops engineer who will need access
> > to make changes to configuration files in /etc/puppet/files and /opt/
> > stacks/<configuration files>. These users are members of their own
> > group and of the admin group. They generally switch user to root to
> > work on the puppet files since the files are root:root.
>
> ----
> I think that the ownership of the files relates more to the services that use 
> these files and you don't really say if you are still using webrick, apache, 
> nginx to serve these files as that may have some impact.
>
> I myself have all the files and folders owned by puppet:puppet (/etc/puppet, 
> /var/lib/puppet, /var/www/foreman, /var/www/puppet-dashboard) and use nginx 
> to serve forman, puppet & puppet-dashboard.
>
> I think if you want to change to user puppet, you probably only need to 'su - 
> puppet' but if /var/lib/puppet isn't owned by puppet:puppet then switching to 
> user puppet is probably going to be difficult.
>
> Also, it seems that if you have multiple users doing configuration, you 
> probably should have multiple environments (ie, development & testing and not 
> just a production) and also a version control system (git or subversion) and 
> perhaps a separate puppet server for development & testing to avoid 
> inflicting errors into running configurations.
>
> I found the book "Pro Puppet" very useful for defining the all of these best 
> practices.
>
> Craig

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to