commit | e4d982b6e83362516c3c1966a3ce1f827f928f37 | [log] [tgz] |
---|---|---|
author | d <pono@apache.org> | Wed Nov 02 14:26:26 2016 -0600 |
committer | d <pono@apache.org> | Wed Nov 02 14:26:26 2016 -0600 |
tree | de275a166c0685a04a790112d59cf57d5fad86d9 | |
parent | f6d0f8c55356597572186e83baf9d448b566cd78 [diff] |
add 1604 support and switch transport to kitchen-sync
Test Kitchen + Puppet
Provisioning an Apache Software Foundation VM requires a lot of moving parts -- things with names like apt
, gem
, hiera
, kitchen
, puppet
, and r10k
. To make things easier, the Apache infrastructure team provides a base definition on top of which you install and configure ‘modules’. Modules can be pretty much anything, examples being ldap
and tomcat
.
There are two sets of modules that you can draw from: 3rd party modules and [ASF])https://github.com/apache/infrastructure-puppet/tree/deployment/modules) modules.
As an alternative to a full configuration (which would involve DNS setup, etc), the recommended process is to copy the relevant configuration file from the infrastructure-puppet repository to the default-ubuntu1464
, make changes to that subset of the configuration, and only copying, committing, and pushing the results when done.
git clone https://github.com/apache/infrastructure-puppet-kitchen git clone https://github.com/apache/infrastructure-puppet
gem install bundler cd <path to infrastructure-puppet repo> bundle install
cd <path to infra puppet repo> ./bin/pull # this will pull in all the 3rd party modules at the specified versions we use in production
cd <path to puppet-kitchen repo> cd puppet/modules export ipr=<path to infra-puppet repo> for i in $(ls $ipr/3rdParty); do ln -s $ipr/3rdParty/$i ./; done for i in $(ls $ipr/modules); do ln -s $ipr/modules/$i ./; done
kitchen create default kitchen exec default -c 'sudo gem install deep_merge' kitchen converge default
Start by copying a machine configuration from the data/nodes repository to puppet/data/node/default-ubuntu1464.yaml
, editing it as needed, and then running:
kitchen converge default
This will bring up a vm, run puppet apply. From there, you can continue modifying the definition and/or writing new puppet module(s) (in puppet/modules/$module
) and testing by rerunning the above command.
You can directly ssh
into your virtual machine using the following command:
kitchen login default
If you have started a service like Apache httpd on this machine, you can access it at the following IP address: 192.168.33.2
.
Modules are organized into two types: “third party” and “ASF custom”.
Third party modules are listed in infrastructure-puppet/Puppetfile, and updated using the bin/pull
command described above. Information on locating a module can be found at puppet labs documentation.
Custom modules are stored in infrastructure-puppet/modules/. Again, documentation on how to write a module can be found in the puppet labs documentation.
When done, you can take down and remove the VM with the following command:
kitchen destroy default
Most the the test-kitchen option work with puppet, however make sure to see the kitchen-puppet documentation (even though the explanations aren't nearly as detailed as it needs to be).
Most information has been taken from here