As per a previous post, I’ve been working quite a lot with both HPE OneView (powers HPE Synergy through it’s Composer) and thought i’d put a post together that summarises automating deployments through Chef. There is already tons of information (some of it somewhat sporadic) around the internet for using the HPE OneView Chef driver:
- Build a Chef Environment and install HPE OneView Provisioning driver -> Here
- Overview into the code architecture -> Here
- Technical white paper -> Here
To simplify the process of using Chef with HPE OneView i’ve put together a couple of Dockerfiles that will build some Docker images that simplify the process so much that to have the requirements to use chef/OneView provisioning driver only takes a few commands. Also the side effect of containing Chef and the provisioning driver means that it becomes incredibly simple to have a group of configurations and recipes that will interact with both Synergy Composers and HPE OneView instances that manage DL and BL servers.
The below image depicts how have multiple configurations would work:
Essentially, using the
-v /local/path:/container/path allows us to have three folders each containing their own
knife.rb (Configuration for each OneView/Container) and a
recipe.rb that is applicable for that particular set of infrastructure. The mapping described above will always map a path on the host machine to /root/chef inside the container, allowing simple provisioning through Chef. It also makes it become incredibly simple to manage a number of sets of infrastructure from a single location.
Also be aware that a Chef Server isn’t required, but in order to be able to clear up (
:destroy) machines created through Chef in a docker container WITHOUT a Chef server then ensure that Chef is recording what is deployed locally.
Example for your recipe.rb :
with_chef_local_server :chef_repo_path => '/root/chef/',
:client_name => Chef::Config[:node_name]
Dockerfile is located here
For the more adventurous, it is also possible to have all of this code run from a Docker container on a Raspberry Pi (the same usage applies). To create a Docker container that will run on a Raspberry Pi the Docker file is located here