<commit_before># Pail - Manage containers like nodes

Pail uses `debootstrap` and `systemd` to create and manage containers as puppet
nodes on Debian 8 systems.


Pail creates a base system using `debootstrap` and
then starts the container and installs Puppet on the system. It enables the
systemd Puppet unit and installs the specified `puppet.conf`. It then sends a
certificate signing request to the master. The resulting container will appear
to the master like any other Puppet node.

Please note that containers brought up with `systemd-nspawn` may not be
suitable for fully secure container setups. This is a proof of concept.


### What pail affects

* Pail installs `debootstrap`.
* Pail creates a directory tree at the specified location.
* Pail spins up and bootstraps a container.

### Beginning with pail

Here's an example to place in `site.pp`
```puppet
node 'node.vm' {
        class { 'pail':
                container_name => '/foo',
                puppet_conf => 'puppet.conf.erb',
                suite => 'squeeze', # The debian flavor to create, like sid
                system => 'http://http.debian.net/debian/'
        }
}
```<commit_msg>Update comments on class attributes<commit_after># Pail - Manage containers like nodes

Pail uses `debootstrap` and `systemd` to create and manage containers as puppet
nodes on Debian 8 systems.


Pail creates a base system using `debootstrap` and
then starts the container and installs Puppet on the system. It enables the
systemd Puppet unit and installs the specified `puppet.conf`. It then sends a
certificate signing request to the master. The resulting container will appear
to the master like any other Puppet node.

Please note that containers brought up with `systemd-nspawn` may not be
suitable for fully secure container setups. This is a proof of concept.


### What pail affects

* Pail installs `debootstrap`.
* Pail creates a directory tree at the specified location.
* Pail spins up and bootstraps a container.

### Beginning with pail

Here's an example to place in `site.pp`
```puppet
node 'node.vm' {
        class { 'pail':
                container_name='test', # The machine name of the container
                root_path='/test', # The fully qualified path to where the
                # filesystem will be unpacked. This will be created with
                # debootstrap if it doesn't exist
                puppet_conf='/etc/puppet/puppet.conf', # A template for the
                # puppet.conf file
                suite='squeeze', # The debian version to include, like sid or
                # unstable
                system='http://http.debian.net/debian/', # Where to download
                # the packages from
) {
        }
}
```
{'fraction_non_alphanumeric': 0.07145474532795897, 'fraction_numerical': 0.0007328691828508611, 'mean_word_length': 2.86685552407932, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '37563', 'n_tokens_mistral': 759, 'n_tokens_neox': 716, 'n_words': 342}