-
Notifications
You must be signed in to change notification settings - Fork 23
Home
This project aims to provide the user with a puppetized lab setup. It can be used as the foundation of a home network, a learning puppet environment, or as a proof of concept lab for non-puppet software and hardware. Once complete, the lab environment will provide a number of services to the designated network. Each service definition includes a valid SELinux security configuration.
- dns
- dhcp
- puppet
- puppetdb
- hiera
- r10k
- yum repository
- build server
- mysql
- phpmyadmin
- tftp
The user must provide a default gateway for external configuration (see network for more information).
Puppetinabox was covered on the 1/14/2015 vBrownBag DevOps Series. Watch the video and [check out the slides] (http://www.slideshare.net/rnelson0/vbrownbag-devops-series-puppetinabox)!
OS: CentOS 6.5 and 6.6 have been tested thoroughly, specifically with my CentOS kickstart. Other Linux distributions may work. Please report any successes or failures via issues. Unless otherwise stated, all nodes are assumed to be CentOS 6.5.
Puppet: Tested with Puppet 3.7.3. Your OS templates should all include puppet.
The lab includes sample data and dns zone files describing 10.0.0.0/24. The DNS suffix is example.com. The following IP assignments are suggested and should be configured in your OS templates:
- 10.0.0.1 - default gw (user provided)
- 10.0.0.5 - puppet
- 10.0.0.10 - build
- 10.0.0.11 - phpmyadmin
- 10.0.0.40 - mysql
- 10.0.0.251 - tftp
- 10.0.0.252 - yumrepo (CNAME yum)
- 10.0.0.253 - dns
- 10.0.0.254 - dhcp
You are encouraged to change the DNS suffix and IP assignments. The documentation will make use of the sample suffix and IPs, however.
In your OS template, set a known root password of sufficient complexity for your environment. During the initial puppet run, an additional non-privileged user will be created:
- padmin: Pupp3tl4b
After the user is created on the first puppet run, you should use padmin rather than root.
An SSH key is included that can used with clients supporting the PuTTy (.ppk), OpenSSH (.openssh) or Secure Shell/RFC4716 (.secsh) formats. The public key (.pub) will be configured for padmin via puppet. Add the private key to your client to connect using pre-shared keys.
It is assumed the reader has familiarity with git and GitHub, such as how to fork a repo; how to add ssh-keys for authentication; how to clone, commit, and push changes. GitHub.com has many documents to help learn git.