Giter VIP home page Giter VIP logo

puppet-bootstrap's Introduction

Puppet Bootstrap Scripts

This repository contains a multitude of single file scripts for setting up Puppet on a variety of machines.

Puppet is fantastic for managing infrastructure but there is a chicken/egg problem of getting Puppet initially installed on a machine so that Puppet can then take over for the remainder of system setup. This repository contains small scripts to bootstrap your system just enough so that Puppet can then take over.

Please contribute by forking and sending a pull request for your operating system.

The goal of this repository is to create a set of scripts that run on every version of every platform to set up Puppet.

Features of Each Script

  • Requires no parameters and runs without any human input, but can optionally take parameters to tune the packages the install and such. See each script for details on the parameters.
  • Uses only built-in software to install Puppet. These scripts have no external dependencies over the base install of their OS.
  • Installs Puppet agent and Facter.
  • Does not auto-start the Puppet agent service on the machine. Your bootstrap can choose to do this in addition to these scripts, if you'd like.

Using a Script

To use one of the scripts in this repository, you can either download the script directly from this repository as part of your machine setup process, or copy the contents of the script you need to your own location and use that. The latter is recommended since it then doesn't rely on GitHub uptime and is generally more secure.

If you do choose to download directly from this repository, make sure you link to a specific commit (and not master), so that the file contents don't change on you unexpectedly.

Contributing

Fork and pull request. Simple.

puppet-bootstrap's People

Contributors

antonlindstrom avatar braf avatar calebalbers avatar cappetta avatar danieldreier avatar ddrager avatar emyl avatar ferventcoder avatar filirom1 avatar finn avatar grahamgilbert avatar grubernaut avatar jmaslibre avatar kian avatar mattr- avatar michaelkrieg avatar mitchellh avatar ptomulik avatar schrepfler avatar stagrlee avatar wickedshimmy avatar zakdoek avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

puppet-bootstrap's Issues

Permission Error

I get this error when using this script

==> default: /tmp/vagrant-shell: line 1: /vagrant/puppet_bootstrap.sh: Permission denied
==> default: /tmp/vagrant-shell: line 3: puppet: command not found
==> default: /tmp/vagrant-shell: line 4: puppet: command not found
==> default: /tmp/vagrant-shell: line 5: puppet: command not found
The SSH command responded with a non-zero exit status. Vagrant
assumes that this means the command failed. The output for this command
should be in the log above. Please read the output to determine what
went wrong.

my vagrantfile is as below

config.vm.provision :shell do |shell|
shell.inline = "/vagrant/puppet_bootstrap.sh;
mkdir -p /etc/puppet/modules;
puppet module install puppetlabs/git;
puppet module install puppetlabs/mysql;
puppet module install puppetlabs-tomcat;"
end

Add corresponding removal scripts

In some cases, such as Packer builds of Docker images, using Puppet for initial configuration is great. But since there's no intention of running Puppet after the initial build, its preferable to remove Puppet from the system. This is probably a simple one-liner for all the distros, but it'd be nice to have them all documented somewhere. For Debian/Ubuntu ones it'd probably just be:

apt-get purge -y --auto-remove puppet

Licenses

Is it intended that these scripts remain the copyright property of the those who submitted them? If not, please can the contributors apply their appropriate licenses so that we know how we can use and/ or modify them.

what does this do

does this create infographics or is that puppet displaying what it does - very confused

Q: Why install RubyGems in addition to Puppet in ubuntu.sh?

Hi there,

Thanks for the great Puppet bootstrap scripts, they are very helpful indeed.

I was just looking through the one named ubuntu.sh and noticed the block at the bottom where you also install RubyGems. i.e.

# Install RubyGems for the provider
echo "Installing RubyGems..."
if [ $DISTRIB_CODENAME != "trusty" ]; then
  apt-get install -y rubygems >/dev/null
fi
gem install --no-ri --no-rdoc rubygems-update
update_rubygems >/dev/null

I am wondering why you do this? Not being that familiar with Puppet yet, I'm not really sure how RubyGems supports Puppet and why it is needed? I have looked around various docs but haven't yet found anything concrete.

Thanks for your time and thoughts.

Cheers,
Dan

Puppet 4 for CentOS

Hi,

I have added pull request #56 that updates CentOS scripts so that the latest Puppet 4 is installed from Puppet Collection 1 repository.

A few extra improvements:

  • Unified all CentOS scripts, they all now have a minor difference and should be compatible with their respective RHEL derivatives.
  • A better way to check if Puppet is installed. You can no longer rely on $PATH as puppet directory has changed in version and may not be available for root.
  • Added symlinks to puppet so that they are always in $PATH.

SLES Script

It will be very nice if someone could provide a script for SLES.

Best regards.

Bashism in debian.sh (Debian doesn't use bash as default /bin/sh)

Within Debian, the default /bin/sh is Dash[0] [1].
(Since Debian Squeeze)

There is a "bash-ism" in puppet-bootstrap/debian.sh line 22 [2],
$EUID should be "$(id -u)", or you could change the shebang to use explicitly "bash" instead of sh.

Using the current script you get the message:
"==> default: /tmp/vagrant-shell: 22: [: Illegal number:"
that is cause by this issue.

[0] https://wiki.debian.org/Shell
[1] https://packages.debian.org/dash
[2] https://github.com/hashicorp/puppet-bootstrap/blob/master/debian.sh#L22

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.