Skip to content

Commit

Permalink
Merge branch 'release/1.0.0'
Browse files Browse the repository at this point in the history
Conflicts:
	CONTRIBUTING.md
  • Loading branch information
jyang09 committed Aug 28, 2015
2 parents 8e2cb6a + 3e4a945 commit 7de35ff
Show file tree
Hide file tree
Showing 49 changed files with 749 additions and 543 deletions.
17 changes: 15 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,26 @@
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).

## [Unreleased]
## [1.0.0] - 2015-08-28
### Added
- New facts `cisco_node_utils` and `cisco_nxapi` report the installed version of these gems.
- Providers requiring the `cisco_node_utils` feature will generate a warning message if an obsolete gem version is installed.
- Added README-maintainers.md

### Fixed
- Metadata URLs now point to new public GitHub repository.
- Moved misc READMEs into /docs
- NXAPI providers are marked as defaultfor 'nexus' operating system.
- Fixed beaker test for package and interface ospf
- Fixed sample install.pp

## [0.9.1] - 2015-08-13
### Added
- Added CONTRIBUTING.md
- Added README-creating-types-providers.md and associated templates.
- Added SUPPORT.md
- Added Beaker test cases for cisco_command_config, file, package, and service providers.
- Added VRF attribute to cisco_interface provider.

### Fixed
- 'puppet resource cisco_vtp' now works properly.
Expand All @@ -26,5 +38,6 @@ This project adheres to [Semantic Versioning](http://semver.org/).
- Initial release of puppetlabs-ciscopuppet module, supporting Cisco NX-OS software release 7.0(3)I2(1) on Cisco Nexus switch platforms: N95xx, N93xx, N30xx and N31xx.
- Please note: 0.9.0 is an EFT pre-release for a limited audience with access to NX-OS 7.0(3)I2(1). Additional code changes may occur in 0.9.x prior to the final 1.0.0 release.

[unreleased]: https://github.com/cisco/cisco-network-puppet-module/compare/v0.9.1...develop
[unreleased]: https://github.com/cisco/cisco-network-puppet-module/compare/master...develop
[1.0.0]: https://github.com/cisco/cisco-network-puppet-module/compare/v0.9.1...v1.0.0
[0.9.1]: https://github.com/cisco/cisco-network-puppet-module/compare/v0.9.0...v0.9.1
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Cisco Network Elements support a rich set of features to make networks robust, e

* Fork the repository
* Pull a branch under the "develop" branch for your changes.
* Follow all guidelines documented in [README-creating-types-providers](#README-creating-types-providers.md)
* Follow all guidelines documented in [README-creating-types-providers](README-creating-types-providers.md)
* Make changes in your branch.
* Testing
* Add beaker test cases to validate your changes.
Expand Down
148 changes: 115 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,52 +1,98 @@
# ciscopuppet
----
### _EARLY FIELD TRIAL:_ This is a Puppet agent EFT for use with Cisco NX-OS release 7.0(3)I2(1). Please see the [Limitations](#limitations) section for more information.
----

#### Table of Contents

1. [Overview](#overview)
2. [Module Description](#module-description)
3. [Setup](#setup)
* [Setup requirements](#setup-requirements)
* [Beginning with ciscopuppet](#beginning-with-ciscopuppet)
4. [Usage](#usage)
5. [Reference - An under-the-hood peek at what the module is doing and how](#reference)
5. [Limitations - OS compatibility, etc.](#limitations)
6. [Development - Guide for contributing to the module](#development)
5. [Resource Reference](#resource-reference)
* [Resource Type Catalog (by Technology)](#resource-by-tech)
* [Resource Type Catalog (by Name)](#resource-by-name)
6. [Limitations - OS compatibility, etc.](#limitations)
7. [Development - Guide for contributing to the module](#development)

--
##### Additional References

* Agent Installation
* [README-agent-install.md](docs/README-agent-install.md) : Agent Installation and Configuration Guide
* [README-beaker-agent-install.md](docs/README-beaker-agent-install.md) : Automated Agent Installation and Configuration via the Beaker Tool
* User Guides
* [README-package-provider.md](docs/README-package-provider.md) : Cisco Nexus Package Management using the Package Provider
* Developer Guides
* [README-develop-types-providers.md](docs/README-develop-types-providers.md) : Developing new ciscopuppet Types and Providers
* [README-beaker-testcase-execution.md](docs/README-beaker-testcase-execution.md) : Executing Beaker Tests for ciscopuppet
* [README-beaker-testcase-writing.md](docs/README-beaker-testcase-writing.md) : Writing Beaker Tests for ciscopuppet

--

## Overview

This ciscopuppet module enables Puppet to config Cisco Nexus Switches that
support NXAPI through types and NXAPI based providers.
The ciscopuppet module allows a network administrator to manage Cisco Network Elements using Puppet. This module bundles a set of Puppet Types, providers, Beaker Tests, Sample Manifests and Installation Tools for effective network management. The resources and capabilities provided by this Puppet Module will grow with contributions from Cisco, Puppet Labs and the open source community.

The Cisco Network Elements and Operating Systems managed by this Puppet Module are continuously expanding. Please refer to the [Limitations](#limitations) section for details on currently supported hardware and software.
The Limitations section also provides details on compatible Puppet Agent and Puppet Master versions.

This GitHub repository contains the latest version of the ciscopuppet module source code. Supported versions of the ciscopuppet module are available at Puppet Forge. Please refer to [SUPPORT.md](SUPPORT.md) for additional details.

Contributions to this Puppet Module are welcome. Guidelines on contributions to the module are captured in [CONTRIBUTING.md](CONTRIBUTING.md)

## Module Description

This module enables users to manage Cisco Nexus switches using Puppet.
This module enables management of supported Cisco Network Elements using Puppet. This module enhances the Puppet DSL by introducing new Puppet Types and Providers capable of managing network elements.

This module uses Cisco NXAPI to manage various Cisco NX-OS functions on certain Cisco Nexus Switches models such as N9k series and N31xx series. These functions include,
but are not limited to, tacacs server and host, snmp server and users, and OSPF.
The set of supported network element platforms is continuously expanding. Please refer to the [Limitations](#limitations) section for a list of currently supported platforms.

## Setup

### Beginning with ciscopuppet
#### Puppet Master

The `ciscopuppet` module is installed on the Puppet Master server. Please see [Puppet Labs: Installing Modules](https://docs.puppetlabs.com/puppet/latest/reference/modules_installing.html) for general information on Puppet module installation.

#### Puppet Agent
The Puppet Agent requires installation and setup on each device. Agent setup can be performed as a manual process or it may be automated. For more information please see the [README-agent-install.md](docs/README-agent-install.md) document for detailed instructions on agent installation and configuration on Cisco Nexus devices.

##### Artifacts

As noted in the agent installation guide, these are the current RPM versions for use with ciscopuppet:
* `bash-shell`: Use [http://yum.puppetlabs.com/puppetlabs-release-pc1-nxos-5.noarch.rpm](http://yum.puppetlabs.com/puppetlabs-release-pc1-nxos-5.noarch.rpm)
* `guestshell`: Use [http://yum.puppetlabs.com/puppetlabs-release-pc1-el-7.noarch.rpm](http://yum.puppetlabs.com/puppetlabs-release-pc1-el-7.noarch.rpm)

##### Gems

The ciscopuppet module has dependencies on a few ruby gems. After installing the Puppet Agent software you will then need to install the following gems on the agent device:

* [`net_http_unix`](https://rubygems.org/gems/net_http_unix)
* [`cisco_nxapi`](https://rubygems.org/gems/cisco_nxapi)
* [`cisco_node_utils`](https://rubygems.org/gems/cisco_node_utils)

These gems have dependencies on each other so installing `cisco_node_utils` by itself will automatically install `net_http_unix` and `cisco_nxapi`.

Example:

~~~bash
[root@guestshell]# gem install cisco_node_utils

[root@guestshell]# gem list | egrep 'cisco|net_http'
cisco_node_utils (1.0.0)
cisco_nxapi (1.0.0)
net_http_unix (0.2.1)
~~~

##### Gem Persistence (bash-shell only)

Before the module can be run properly on the agent, enable pluginsync in the puppet.conf file on the agent.
Please note that in the Nexus `bash-shell` environment these gems are currently not persistent across system reload. This persistence issue can be mitigated by simply defining a manifest entry for installing the `cisco_node_utils` gem via the package provider.

You must also install the following gems on the agent: net_http_unix, cisco_nxapi,
and cisco_node_utils. Since these have dependencies on each other, when you
install cisco_node_utils, the other two gems will be automatically installed.
Gems installed under Puppet are not persistent across system reload on Nexus
switches. To avoid issues after reload, you should include the package
provider in the manifest to automate installing these gems, as shown in
the following example.
Example:

~~~Puppet
package { 'cisco_node_utils' :
provider => 'gem',
ensure => present,
}
~~~~
~~~
*This persistence issue does not affect the `guestshell` environment. Gems are persistent across reload in the `guestshell`.*

## Usage

Expand Down Expand Up @@ -86,9 +132,38 @@ cisco_interface_ospf {"Ethernet1/2 Sample":
}
~~~

## Reference
## Resource Reference

### <a name="resource-by-tech">Resource Type Catalog (by Technology)<a>

1. Miscellaneous Types
* [`cisco_command_config`](#type-cisco_command_config)

2. Interface Types
* [`cisco_interface`](#type-cisco_interface)
* [`cisco_interface_ospf`](#type-cisco_interface_ospf)

3. OSPF Types
* [`cisco_ospf`](#type-cisco_ospf)
* [`cisco_ospf_vrf`](#type-cisco_ospf_vrf)
* [`cisco_interface_ospf`](#type-cisco_interface_ospf)

### Public Types
4. SNMP Types
* [`cisco_snmp_community`](#type-cisco_snmp_community)
* [`cisco_snmp_group`](#type-cisco_snmp_group)
* [`cisco_snmp_server`](#type-cisco_snmp_server)
* [`cisco_snmp_user`](#type-cisco_snmp_user)

5. TACACS Types
* [`cisco_tacacs_server`](#type-cisco_tacacs_server)
* [`cisco_tacacs_server_host`](#type-cisco_tacacs_server_host)

6. VLAN Types
* [`cisco_vlan`](#type-cisco_vlan)
* [`cisco_vtp`](#type-cisco_vtp)

--
### <a name="resource-by-name">Resource Type Catalog (by Name)<a>

* [`cisco_command_config`](#type-cisco_command_config)
* [`cisco_interface`](#type-cisco_interface)
Expand All @@ -104,6 +179,11 @@ cisco_interface_ospf {"Ethernet1/2 Sample":
* [`cisco_vlan`](#type-cisco_vlan)
* [`cisco_vtp`](#type-cisco_vtp)

--
### Resource Type Details

The following resources are listed alphabetically.

### Type: cisco_command_config

Allows execution of configuration commands.
Expand Down Expand Up @@ -185,6 +265,9 @@ keyword 'default'.
Network mask length of the IP address on the interface. Valid values are
integer and keyword 'default'.

###### `vrf`
VRF member of the interface. Valid values are a string or the keyword 'default'.

##### SVI interface config attributes

###### `svi_autostate`
Expand Down Expand Up @@ -542,14 +625,13 @@ Password for the VTP domain. Valid values are a string or the keyword 'default'.

## Limitations

This module can only be supported from NX-OS software release 7.0(3)I2(1)
on Cisco Nexus switch N95xx, N93xx, N30xx and N31xx platforms. Please ensure
that the switch is running a supported version of NX-OS software.

On the supported platforms, it can work with both the native NX-OS
Puppet agent or with the CentOS Puppet agent installed into the Guestshell.
It does not (yet) address other Cisco operating systems such as IOS, IOS-XE,
or IOS XR.
Minimum Requirements:
* Cisco NX-OS Puppet implementation requires open source Puppet version 4.0 or Puppet Enterprise 2015.2
* Supported Platforms:
* Cisco Nexus 95xx, OS Version 7.0(3)I2(1), Environments: Bash-shell, Guestshell
* Cisco Nexus 93xx, OS Version 7.0(3)I2(1), Environments: Bash-shell, Guestshell
* Cisco Nexus 31xx, OS Version 7.0(3)I2(1), Environments: Bash-shell, Guestshell
* Cisco Nexus 30xx, OS Version 7.0(3)I2(1), Environments: Bash-shell, Guestshell

## Development

Expand Down
28 changes: 0 additions & 28 deletions REVIEW_NOTES

This file was deleted.

54 changes: 0 additions & 54 deletions REVIEW_NOTES2

This file was deleted.

Loading

0 comments on commit 7de35ff

Please sign in to comment.