Forge Home

ucsm_dockerdc

Deployment module for Cisco UCSM with Docker Datacenter.

8,681 downloads

7,480 latest version

4.3 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Support the Puppet Community by contributing to this module

You are welcome to contribute to this module by suggesting new features, currency updates, or fixes. Every contribution is valuable to help ensure that the module remains compatible with the latest Puppet versions and continues to meet community needs. Complete the following steps:

  1. Review the module’s contribution guidelines and any licenses. Ensure that your planned contribution aligns with the author’s standards and any legal requirements.
  2. Fork the repository on GitHub, make changes on a branch of your fork, and submit a pull request. The pull request must clearly document your proposed change.

For questions about updating the module, contact the module’s author.

Version information

  • 0.2.5 (latest)
  • 0.2.4
  • 0.2.3
  • 0.2.2
  • 0.1.0
released Aug 11th 2017
This version is compatible with:
  • Puppet Enterprise 2015.3.x
  • Puppet 4.x

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'ciscoucs-ucsm_dockerdc', '0.2.5'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add ciscoucs-ucsm_dockerdc
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install ciscoucs-ucsm_dockerdc --version 0.2.5

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.

Download

Documentation

ciscoucs/ucsm_dockerdc — version 0.2.5 Aug 11th 2017

ucsm_dockerdc

Deployment module for Cisco UCS Manager with Docker Datacenter

Table of Contents

  1. Description
  2. Installation - The basics of getting started with ucsm_dockerdc
  3. Usage - Configuration options and additional functionality
  4. Development - Guide for contributing to the module
  5. Todos - Additional work to complete

Description

ucsm and ucsm_dockerdc Puppet modules can be used with physical UCSM domains on with the UCS Platform Emulator. Please see https://communities.cisco.com/docs/DOC-74434 for additional information on the Puppet modules for UCS Manager and a hands on lab guide that can be used in the Cisco demo Cloud (dcloud.cisco.com).

Installation

  1. Clone the ucsm puppet module into your puppet modules directory. The modules directory location may vary depending on how puppet is installed.

    cd /etc/puppetlabs/code/environments/production/modules
    git clone https://github.com/CiscoUcs/puppet-ucsm ucsm
    
  2. Clone the ucsm Docker DC puppet module into your puppet modules directory. The modules directory location may vary depending on how puppet is installed.

    cd /etc/puppetlabs/code/environments/production/modules
    git clone https://github.com/CiscoUcs/puppet-ucsm_dockerdc.git ucsm_dockerdc
    

What ucsm_dockerdc affects

  • Dependencies that ucsm_dockerdc requires.

ucsm_dockerdc depends on the ucsm puppet module.

The ucsm puppet module depends on the UCS Manager Python SDK. If the UCSM Python SDK is not installed, please see https://github.com/CiscoUcs/ucsmsdk for installation instructions.

Setup Requirements

Puppet Master Installation and Configuration

A VM running CentOS 7 was chosen to serve as puppet master. On this VM, Puppet Enterprise was installed.

Steps to install Puppet Enterprise on vm/node are as follows.

  1. Go to Puppet Enterprise Product Page. Sign up and download Puppet Enterprise installer package for your VM/node.

  2. After download is complete, run the installer inside the package and follow through the prompts asked during installation.

  3. If install is successful, check the status of all pe-puppet services are "active" before proceeding further. Use the following command to check the status of pe-puppet services.

    systemctl status pe-puppet*
    
  4. Set firewall rules to allow the following ports.

    sudo su
    ufw status
    ufw enable
    ufw allow 22
    ufw allow 8140
    ufw allow 4433
    ufw allow 8143
    ufw allow 8140
    ufw allow 8081
    ufw allow 4433
    ufw status
    

Usage

Manifests for ucsm_dockerdc are strucuted to include a site manifest “site.pp”, a roles file “roles.pp”, and a profiles file “profile.pp”. The roles.pp manifests defines the Cisco UCS Service Profile Templates used in this design, and profile.pp is used to configure UCSM pools and policies used by the Service Profile Templates.

The ucsm_dockerdc setup employs a puppet master and agent/API proxy architecture. Cisco UCS Manager does not run a puppet agent, so an existing puppet agent under puppet management is designated as an API proxy to communicate with UCS Manager.

API proxy node setup through Hiera

  1. Create a hiera file with same name as the certificate signed by the API proxy node. The hiera file must be placed in the hiera lookup path (e.g., /etc/puppetlabs/code/environments/production/hieradata/nodes/.yaml).

  2. Add the node definition of the API proxy node "/etc/puppetlabs/code/environments/production/manifests/site.pp".

Case 1: Suppose the API certname is "razor". Add the following lines in site.pp file.

```
    ...
       node "razor"{
         include ucsm_dockerdc::profile::ucsm_config
       }
    ...
```

Details of the hieradata which goes in "/etc/puppetlabs/code/environments/production/hieradata/nodes/.yaml" is documented in the CVD Design Document.

Note that "puppet apply", when combined with scheduling and an automated system for pushing manifests, can be used to implement a serverless puppet site. Example puppet apply commandlines for serverless puppet management:

  • puppet apply -e "include ucsm_dockerdc::bios_policy"

Node definitions and external node classifiers (Puppet Enterprise Console) can co-exist. Puppet merges their data as follows:

Variables from an ENC are set at top scope and can thus be overridden by variables in a node definition. Classes from an ENC are declared at node scope, which means they will be affected by any variables set in the node definition. Although ENCs and node definitions can work together, we recommend that most users pick one or the other.

Development

Todos

  • Support vNIC template modifications (e.g., adding/removing vlans)