All Projects β†’ HewlettPackard β†’ Oneview Ansible

HewlettPackard / Oneview Ansible

Licence: apache-2.0
Ansible Modules and Sample Playbooks for HPE OneView

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Oneview Ansible

Python Hponeview
DEPRECATED - no longer actively maintained. New repository: https://github.com/HewlettPackard/oneview-python
Stars: ✭ 87 (-9.37%)
Mutual labels:  bare-metal, infrastructure-as-code, devops
Tads Boilerplate
Terraform + Ansible + Docker Swarm boilerplate = DevOps on πŸ”₯πŸ”₯πŸ”₯ | Infrastructure as Code
Stars: ✭ 424 (+341.67%)
Mutual labels:  ansible, infrastructure-as-code, devops
Pytest Testinfra
With Testinfra you can write unit tests in Python to test actual state of your servers configured by management tools like Salt, Ansible, Puppet, Chef and so on.
Stars: ✭ 1,987 (+1969.79%)
Mutual labels:  ansible, infrastructure-as-code, devops
Terraboard
🌍 πŸ“‹ A web dashboard to inspect Terraform States
Stars: ✭ 1,192 (+1141.67%)
Mutual labels:  infrastructure-as-code, devops
Ansible Playbook
Ansible playbook to deploy distributed technologies
Stars: ✭ 61 (-36.46%)
Mutual labels:  ansible, devops
Catapult
πŸ’₯ Catapult is a DevOps website management platform for development teams.
Stars: ✭ 64 (-33.33%)
Mutual labels:  infrastructure-as-code, devops
Lambda The Terraform Way
AWS Lambda using Terraform., an Introductory Cookbook
Stars: ✭ 1,056 (+1000%)
Mutual labels:  infrastructure-as-code, devops
Kubernetes The Ansible Way
Bootstrap Kubernetes the Ansible way on Everything (here: Vagrant). Inspired by Kelsey HightowerΒ΄s kubernetes-the-hard-way, but refactored to Infrastructure-as-Code.
Stars: ✭ 82 (-14.58%)
Mutual labels:  ansible, infrastructure-as-code
Portable Ansible
Ansible without requirements to be installed (for pull-mode)
Stars: ✭ 75 (-21.87%)
Mutual labels:  ansible, devops
Jjg Ansible Windows
[DEPRECATED] Windows shell provisioning script to bootstrap Ansible from within a Vagrant VM.
Stars: ✭ 82 (-14.58%)
Mutual labels:  ansible, devops
Copilot Cli
The AWS Copilot CLI is a tool for developers to build, release and operate production ready containerized applications on Amazon ECS and AWS Fargate.
Stars: ✭ 1,285 (+1238.54%)
Mutual labels:  infrastructure-as-code, devops
Ansible Interactive Tutorial
Interactive Ansible tutorials with dead simple setup via Docker
Stars: ✭ 1,309 (+1263.54%)
Mutual labels:  ansible, devops
Ansible Windows Docker Springboot
Example project showing how to provision, deploy, run & orchestrate Spring Boot apps with Docker Windows Containers on Docker Windows native using Packer, Powershell, Vagrant & Ansible
Stars: ✭ 58 (-39.58%)
Mutual labels:  ansible, devops
Tau
Tau is a thin wrapper on top of terraform to manage multiple deployments, dependencies and secrets.
Stars: ✭ 53 (-44.79%)
Mutual labels:  infrastructure-as-code, devops
Cintodeutilidadesdocker
My Docker templates repository 🐳 ☁️ 🐳
Stars: ✭ 74 (-22.92%)
Mutual labels:  infrastructure-as-code, devops
Devops Exercises
Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP, DNS, Elastic, Network, Virtualization. DevOps Interview Questions
Stars: ✭ 20,905 (+21676.04%)
Mutual labels:  ansible, devops
Azure
Azure-related repository
Stars: ✭ 78 (-18.75%)
Mutual labels:  ansible, devops
K3s Gitlab
k3s + Gitlab install notes
Stars: ✭ 89 (-7.29%)
Mutual labels:  bare-metal, devops
Kitchen Ansiblepush
test-kitchen plugin to use ansible in push mode
Stars: ✭ 38 (-60.42%)
Mutual labels:  ansible, infrastructure-as-code
Docker Swarm
🐳🐳🐳 This repository is part of a blog series on Docker Swarm example using VirtualBox, OVH Openstack, Azure and Amazon Web Services AWS
Stars: ✭ 43 (-55.21%)
Mutual labels:  infrastructure-as-code, devops

HPE OneView SDK for Ansible

Build Status

OV Version 6.00 5.60 5.50 5.40
SDK Version/Tag v6.0.0 v5.10.0 v5.9.0 v5.8.0
Build Status Build status Build status Build status Build status

Introduction

HPE OneView makes it simple to deploy and manage today’s complex hybrid cloud infrastructure. HPE OneView can help you transform your data center to software-defined, and it supports HPE’s broad portfolio of servers, storage, and networking solutions, ensuring the simple and automated management of your hybrid infrastructure. Software-defined intelligence enables a template-driven approach for deploying, provisioning, updating, and integrating compute, storage, and networking infrastructure.

The HPE OneView Ansible library provides modules to manage HPE OneView using Ansible playbooks using HPE OneView REST APIs. You can find the latest supported HPE OneView Ansible SDK here

Each OneView resource operation is exposed through an Ansible module. Specific modules are provided to gather facts about the resource. The detailed documentation for each module is available at: HPE OneView Ansible Modules Documentation

What's New

HPE OneView Ansible library extends support of the SDK to OneView REST API version 2600 (OneView v6.00) and ImageStreamer REST API version 2010 (I3S v6.00)

Please refer to notes for more information on the changes , features supported and issues fixed in this version

Getting Started

Installation and Configuration

HPE OneView SDK for Ansible can be installed from Source and Docker container installation methods.

Requirements

To run the Ansible modules provided in this project, we need the below :

Ansible <= 2.9
Python >= 3.4.2
HPE OneView Python SDK

Installation

Perform a full installation from Source

Clone the repository

$ git clone https://github.com/HewlettPackard/oneview-ansible.git
$ cd oneview-ansible

Install dependency packages using PIP

$ pip install -r requirements.txt

Configure the ANSIBLE_LIBRARY environmental variable

Set the environment variables ANSIBLE_LIBRARY and ANSIBLE_MODULE_UTILS, specifying the library full path from the cloned project:

$ export ANSIBLE_LIBRARY=/path/to/oneview-ansible/library
$ export ANSIBLE_MODULE_UTILS=/path/to/oneview-ansible/library/module_utils/

From Docker Image / Container

The containerized version of the oneview-ansible modules is available in the Docker Store. The Docker Store image tag consist of two sections: <sdk_version-OV_version>

Download and store a local copy of hpe-oneview-sdk-for-ansible and use it as a Docker image.

$ docker pull hewlettpackardenterprise/hpe-oneview-sdk-for-ansible:v6.0.0-OV6.0

Run docker command which in turn will create a sh session where SDK user can create files, issue commands and execute playbooks

$ docker run -it hewlettpackardenterprise/hpe-oneview-sdk-for-ansible:v6.0.0-OV6.0 /bin/sh

There is also a how-to guide with instructions on how to use the container without creating a sh session.

OneView Client Configuration

Using a JSON Configuration File

To use the Ansible OneView modules, connection properties for accessing the OneView appliance can be set in a JSON file. This file is used to define the settings, which will be used on the OneView appliance connection, like hostname, username, and password. Here's an example:

{
  "ip": "172.25.105.12",
  "credentials": {
    "userName": "Administrator",
    "authLoginDomain": "",
    "password": "secret123"
  },
  "api_version": 2600
}

The api_version specifies the version of the REST API to be invoked. When api_version is not specified, it will take provided appliance API version as api_version.

If your environment requires a proxy, define the proxy properties in the JSON file using the following syntax:

  "proxy": "<proxy_host>:<proxy_port>"

πŸ”’ Tip: Check the file permissions since the password is stored in clear-text.

The configuration file path must be provided for all of the playbooks config arguments. For example:

- name: Gather facts about the FCoE Network with name 'FCoE Network Test'
  oneview_fcoe_network_facts:
    config: "/path/to/config.json"
    name: "FCoE Network Test"

Environment Variables

Configuration can also be defined through environment variables:

# Required
export ONEVIEWSDK_IP='172.25.105.12'
export ONEVIEWSDK_USERNAME='Administrator'
export ONEVIEWSDK_PASSWORD='secret123'

# Optional
export ONEVIEWSDK_API_VERSION='2600'
export ONEVIEWSDK_AUTH_LOGIN_DOMAIN='authdomain'
export ONEVIEWSDK_PROXY='<proxy_host>:<proxy_port>'

πŸ”’ Tip: Make sure no unauthorised person has access to the environment variables, since the password is stored in clear-text.

In this case, you shouldn't provide the config argument. For example:

- name: Gather facts about the FCoE Network with name 'FCoE Network Test'
  oneview_fcoe_network_facts:
    name: "FCoE Network Test"

Once you have defined the environment variables, you can run the plays.

Parameters in the playbook

The third way to pass in your HPE OneView credentials to your tasks is through explicit specification on the task. This option allows the parameters hostname, username, password, api_version and image_streamer_hostname to be passed directly inside your task.

- name: Create a Fibre Channel Network
  oneview_fc_network:
    hostname: 172.16.101.48
    username: administrator
    password: my_password
    api_version: 2600
    state: present
    data:
      name: "{{ network_name }}"
      fabricType: 'FabricAttach'
      linkStabilityTime: '30'
      autoLoginRedistribution: true
  no_log: true
  delegate_to: localhost

Setting no_log: true is highly recommended in this case, as the credentials are otherwise returned in the log after task completion.

Storing credentials using Ansible Vault

Ansible Vault feature may be leveraged for storing the credential of the user in encrypted format.

  1. Create a oneview_config.yml file.

  2. Run below commands to encrypt your username and password for oneview.

    ansible-vault encrypt_string 'secret123' --name ONEVIEWSDK_PASSWORD
    

    Note: This password will be used to run the playbook.

  3. Paste the encrypted password along with the configuration in oneview_config.yml file.

    # Required
    ip: 172.168.1.1
    api_version:2600
    username: Administrator
    password: !vault |
      $ANSIBLE_VAULT;1.1;AES256
      37646435306637633461376438653439323666383934353234333934616363313164636637376536
      3239356538653537643734626265366662623863323661350a613834313562303635343931356139
      35343863313563363830356638343339373138316539613636336532333065366133386662333833
      6663363236663031340a636562646634323136353737373539326434626137353837333530376665
      3835
    
  4. Update the oneview_config.yml as vars_file in playbook for example:

- vars_file:
   oneview_config.yml
- name: Create a Fibre Channel Network
  oneview_fc_network:
    hostname: "{{ ip }}"
    username: "{{ username }}"
    password: "{{ password }}"
    api_version: "{{ api_version }}"
    state: present
    data:
      name: "{{ network_name }}"
      fabricType: 'FabricAttach'
      linkStabilityTime: '30'
      autoLoginRedistribution: true
  no_log: true
  delegate_to: localhost

We can encrypt the oneview_config.yml file also, but if you encrypt the file then you shall not encrypt the password inside the encrypted file.

πŸ”’ Tip: Make sure no unauthorised person has access to the encrypted variables/files, since the password can be decrypted with the password.

  1. Run the playbook with --ask-vault-pass option to get the password prompt to run the playbook.
ansible-playbook example.yml --ask-vault-pass

Note: Most of the examples provided in this repository uses OneView Credentials in plain text.

Setting OneView API Version

The Ansible modules for HPE OneView support the API endpoints for HPE OneView 4.00, 4.10, 4.20, 5.00, 5.20, 5.30, 5.40, 5.50, 5.60, 6.00
The current default HPE OneView version will pick the OneView appliance version.

To use a different API, you must set the API version together with your credentials, either using the JSON configuration:

"api_version": 2600

OR using the Environment variable:

export ONEVIEWSDK_API_VERSION='2600'

If this property is not specified, it will fall back to the default value.

HPE Synergy Image Streamer

Modules to manage HPE Synergy Image Streamer appliances are also included in this project. To use these modules, you must set the Image Streamer IP on the OneViewClient configuration, either using the JSON configuration:

"image_streamer_ip": "100.100.100.100"

OR using the Environment variable:

export ONEVIEWSDK_IMAGE_STREAMER_IP='100.100.100.100'

Examples

Sample playbooks and instructions on how to run the modules can be found in the examples directory. You can find sample playbooks in the examples folder. Just look for the playbooks with the image_streamer_ prefix.

Example of a playbook using Ansible OneView modules

- hosts: all
  tasks:

    - name: Ensure that the Fibre Channel Network is present with fabricType 'DirectAttach'
      oneview_fc_network:
        config: "/path/to/config.json"
        state: present
        data:
          name: 'New FC Network'
          fabricType: 'DirectAttach'

    - name: Ensure that Fibre Channel Network is absent
      oneview_fc_network:
        config: "/path/to/config.json"
        state: absent
        data:
          name: 'New FC Network'

    - name: Gather facts about the FCoE Network with name 'Test FCoE Network Facts'
      oneview_fcoe_network_facts:
        config: "/path/to/config.json"
        name: "Test FCoE Network Facts"

End-to-end examples

Getting Help

Are you running into a road block? Have an issue with unexpected bahriov? Feel free to open a new issue on the issue tracker

For more information on how to open a new issue refer to How can I get help & support

License

This project is licensed under the Apache license. Please see LICENSE for more information.

Contributing and feature requests

We welcome your contributions to the Ansible Modules for HPE OneView. See CONTRIBUTING.md for more details.

Additional Resources

HPE OneView Documentation

HPE OneView Release Notes

HPE OneView Support Matrix

HPE OneView Installation Guide

HPE OneView User Guide

HPE OneView Online Help

HPE OneView REST API Reference

HPE OneView Firmware Management White Paper

HPE OneView Deployment and Management White Paper

HPE OneView Community

HPE OneView Community Forums

Learn more about HPE OneView at hpe.com/info/oneview

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].