<commit_before># Technology & type (Best Practices, Style Guide, ..) i.e. ****** Style Guide
At this point we're going to talk about...

[Replace this logo] ![alt text](https://github.com/beeva/beeva-best-practices/blob/master/static/horizontal-beeva-logo.png "BEEVA")

## Index

* Architecture, technologies and tools
* Environment preparation
* Foreman Stack creation
* Workflow
* Puppet Module documentation

---
## Foreman Stack Creation
---
At this point, an environment deployed with *r10k* and all the *hiera* configurations associated with it is presumed to be on the puppetmaster. The next logiacal step is to provide a quick creation of the new infrastructure stacks.

Although there are several ways to do it, such as manual deployment with the Foreman GUI or the official [Hammer](https://github.com/theforeman/hammer-cli) tool, the steps reproduced here use [YAFCT](https://github.com/ITV/YAFCT), due to the complete stack creation options and because it is programmed in Python instead of Ruby. 

Feel free to use another tool from the [Foreman-related tools](http://projects.theforeman.org/projects/foreman/wiki/List_of_Plugins) in the list of supported plugins.

### Extra definitions
<commit_msg>Index improved and some Hiera information headers added<commit_after># Configuration Management

Configuration Management is the set of processes that are used to ensure proper operation of the Informational Systems as they were previously defined, in an automated and repeatable way.

Using CM we will be able to keep versioned changes that we make in our infrastructure and applications to automatically transfer this changes between environments quickly and safely.

To do this work, there are a variety of tools available which facilitate the task of managing the lifecycle of the infrastructure, both physical and virtual (eg,  [TheForeman](www.theforeman.org)), and tools for automating software and services installation and configuration (eg, [Puppet](puppetlabs.com)).

![alt text](https://github.com/beeva/beeva-best-practices/blob/master/static/horizontal-beeva-logo.png "BEEVA")

## Index

* Hiera Encryption settings
    * Introduction and purpose
    * Creating Puppetmaster keys and Hiera configuration
    * Eyaml files process encryption
        * Passwords
        * Files
        * Application properties
* Deployment of static files
    * Installation and purpose
* Example Hiera hierarchy


* [Foreman Stack creation](#foreman-stack-creation)
* [Extra definitions](#extra-definitions)
* [Hostgroups (runlist)](#hostgroups-runlist)
* [Hosts (runlist)](#hosts-runlist)
* [Templates](#templates)
* [Init Script](#init-script)
* [Puppet Module Documentation](#puppet-module-documentation)

---
## Hiera Encryption Settings

Eyaml library provides us an encryption method for hiera settings.

### Introduction and purpose



### Creating Puppetmaster keys and Hiera configuration



### Eyaml files process encryption



#### Passwords



#### Files



#### Application properties



## Deployment of static files



### Installation and purpose



## Example Hiera hierarchy


---
## Foreman Stack Creation
---
At this point, an environment deployed with *r10k* and all the *hiera* configurations associated with it is presumed to be on the puppetmaster. The next logiacal step is to provide a quick creation of the new infrastructure stacks.

Although there are several ways to do it, such as manual deployment with the Foreman GUI or the official [Hammer](https://github.com/theforeman/hammer-cli) tool, the steps reproduced here use [YAFCT](https://github.com/ITV/YAFCT), due to the complete stack creation options and because it is programmed in Python instead of Ruby. 

Feel free to use another tool from the [Foreman-related tools](http://projects.theforeman.org/projects/foreman/wiki/List_of_Plugins) in the list of supported plugins.

### Extra definitions

{'fraction_non_alphanumeric': 0.08239219712525668, 'fraction_numerical': 0.001026694045174538, 'mean_word_length': 4.647826086956521, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 6, 'lorem ipsum': 0, 'www.': 1, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6875868', 'n_tokens_mistral': 1044, 'n_tokens_neox': 984, 'n_words': 440}