This module installs the latest version of my dotfiles to a Linux machine (Puppet agent). By default the repository will be cloned via HTTPS into the directory /usr/local/share/dotfiles.
To install the dotfiles package with default values:
include dotfiles
Install via ssh key:
class { 'dotfiles':
dotfiles_repository_url => '[email protected]:eirikur-ari/dotfiles.git',
use_ssh_key => true,
}
Example using all available custom options:
class { 'dotfiles':
github_ssh_key => 'example_rsa_key',
ssh_known_hosts_file_path => 'example/ssh_known_hosts',
ssh_config_dir => 'example/.ssh',
dotfiles_install_path => 'example/dotfiles',
dotfiles_repository_url => '[email protected]:example/dotfiles.git',
dotfiles_install_script => 'example.sh',
use_ssh_key => true
}
Puppet version: 4.10 or later
Ruby version: 2.5.7
It is considered a good practice to keep the product Gem dependencies separated from the local Gems. One of the options is to create a new Gem collection (GemSet) using tool such as RVM. See the following command for an example:
rvm use 2.5.7@dotfiles --create
The following command will install all the product Gem dependencies listed in the Gemfile.
bundle install
There is a second option and that is using the make tool. Execute the following to create a new Gem collection and install the Gem dependencies:
make prep
The following command will install the dependant Puppet Modules as well as create a symlink to the module under development, execute the unit tests and report on the test coverage.
In order to execute the tests, run the following command:
rake test
By default the repository will be cloned via HTTPS into the directory /usr/local/share/dotfiles. Note: After the tests have been executed the command will remove the Puppet Modules from spec/fixtures/modules
As an alternative that will install the dependencies and execute the unit tests by using the make tool. Execute the following:
make test
The project provides Beaker setup to run acceptance tests via Docker. Tests are automatically executed by Travis CI for the following OS:
- Ubuntu
- CentOs
- Fedora
The following command will execute acceptance test using the default beaker configuration:
make acceptance
The Vagrant configuration provides a multi-machine setup. By default a version of CentOS is started when vagrant up is executed, the configuration makes sure that no other machine is started along with the primary machine (CentOS).
In case the dependent Puppet modules are not available in the directory spec/fixtures/modules we need to run the following:
rake spec_prep
In order to start any Vagrant box other than the primary (CentOS) it is required to add the name of the box configuration as an addition to the vagrant up command. See the following example:
vagrant up ubuntu
The current machine offering is the following:
- centos
- fedora
- archlinux
- ubuntu
There is a alternative option available that will prepare the required Puppet Module setup and launch the default vagrant box using the make tool. See the following:
make smoke
The following command will apply the Puppet Module and refresh the shell.
puppet apply --modulepath=/vagrant/spec/fixtures/modules /vagrant/tests/init.pp && exec $SHELL -l
Note: If installed using default configuration, it is required to be use the root user to apply the Puppet Module