Shortens Scenario Guides, incorporates vmware guide (#54554)

* Shortens Scenario Guides, incorporates vmware guide

* adds links from network scenario guides to other network docs
This commit is contained in:
Alicia Cozine 2019-04-04 11:58:30 -05:00 committed by GitHub
parent bda541fa0d
commit a4d0bc2c43
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
30 changed files with 227 additions and 178 deletions

View file

@ -47,16 +47,12 @@ Ansible releases a new major release of Ansible approximately three to four time
.. toctree:: .. toctree::
:glob: :glob:
:maxdepth: 2 :maxdepth: 1
:caption: Scenario Guides :caption: Common Ansible Scenarios
scenario_guides/guide_* scenario_guides/cloud_guides
scenario_guides/network_guides
.. toctree:: scenario_guides/virt_guides
:maxdepth: 2
:caption: Ansible for VMWare
vmware/index
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 2

View file

@ -0,0 +1,21 @@
.. _cloud_guides:
*******************
Public Cloud Guides
*******************
The guides in this section cover using Ansible with a range of public cloud platforms. They explore particular use cases in greater depth and provide a more "top-down" explanation of some basic features.
.. toctree::
:maxdepth: 1
guide_alicloud
guide_aws
guide_cloudstack
guide_gce
guide_azure
guide_online
guide_packet
guide_rax
guide_scaleway
guide_vultr

View file

@ -1,5 +1,5 @@
Getting Started with Docker Docker Guide
=========================== ============
Ansible offers the following modules for orchestrating Docker containers: Ansible offers the following modules for orchestrating Docker containers:
@ -327,7 +327,3 @@ For the default host and each host in the hosts list define the following attrib
description: The port containers use for SSH description: The port containers use for SSH
required: false required: false
default: 22 default: 22

View file

@ -1,5 +1,5 @@
Getting Started with Kubernetes and OpenShift Kubernetes and OpenShift Guide
============================================= ==============================
Modules for interacting with the Kubernetes (K8s) and OpenShift API are under development, and can be used in preview mode. To use them, review the requirements, and then follow the installation and use instructions. Modules for interacting with the Kubernetes (K8s) and OpenShift API are under development, and can be used in preview mode. To use them, review the requirements, and then follow the installation and use instructions.
@ -53,4 +53,3 @@ Filing issues
If you find a bug or have a suggestion regarding individual modules or the role, please file issues at `OpenShift Rest Client issues <https://github.com/openshift/openshift-restclient-python/issues>`_. If you find a bug or have a suggestion regarding individual modules or the role, please file issues at `OpenShift Rest Client issues <https://github.com/openshift/openshift-restclient-python/issues>`_.
There is also a utility module, k8s_common.py, that is part of the `Ansible <https://github.com/ansible/ansible>`_ repo. If you find a bug or have suggestions regarding it, please file issues at `Ansible issues <https://github.com/ansible/ansible/issues>`_. There is also a utility module, k8s_common.py, that is part of the `Ansible <https://github.com/ansible/ansible>`_ repo. If you find a bug or have suggestions regarding it, please file issues at `Ansible issues <https://github.com/ansible/ansible/issues>`_.

View file

@ -1,6 +1,6 @@
************************* ****************
Using Ansible with Online Online.net Guide
************************* ****************
Introduction Introduction
============ ============

View file

@ -1,8 +1,8 @@
.. _guide_scaleway: .. _guide_scaleway:
*************************** **************
Using Scaleway with Ansible Scaleway Guide
*************************** **************
.. _scaleway_introduction: .. _scaleway_introduction:

View file

@ -1,5 +1,5 @@
Using Vagrant and Ansible Vagrant Guide
========================= =============
.. _vagrant_intro: .. _vagrant_intro:
@ -151,4 +151,3 @@ The "Tips and Tricks" chapter of the `Ansible Provisioner documentation
The open issues for the Ansible provisioner in the Vagrant project The open issues for the Ansible provisioner in the Vagrant project
:ref:`working_with_playbooks` :ref:`working_with_playbooks`
An introduction to playbooks An introduction to playbooks

View file

@ -0,0 +1,30 @@
.. _vmware_ansible:
******************
VMware Guide
******************
Welcome to the Ansible for VMware Guide!
The purpose of this guide is to teach you everything you need to know about using Ansible with VMware.
To get started, please select one of the following topics.
.. toctree::
:maxdepth: 1
vmware_scenarios/vmware_intro
vmware_scenarios/vmware_concepts
vmware_scenarios/vmware_requirements
vmware_scenarios/vmware_inventory
vmware_scenarios/vmware_scenarios
vmware_scenarios/vmware_troubleshooting
vmware_scenarios/vmware_external_doc_links
vmware_scenarios/faq
.. comments look like this - start with two dots
.. getting_started content not ready
.. vmware_scenarios/vmware_getting_started
.. module index page not ready
.. vmware_scenarios/vmware_module_reference
.. always exclude the template file
.. vmware_scenarios/vmware_scenario_1

View file

@ -1,15 +1,42 @@
:orphan: :orphan:
*************** .. unified index page included for backwards compatibility
Scenario Guides
***************
The guides in this section explore particular use cases in greater depth and provide a more "top-down" explanation of some basic features. ******************
Scenario Guides
******************
The guides in this section cover integrating Ansible with a variety of
platforms, products, and technologies. They explore particular use cases in greater depth and provide a more "top-down" explanation of some basic features.
.. toctree:: .. toctree::
:glob:
:maxdepth: 1 :maxdepth: 1
:caption: Public Cloud Guides
guide_* guide_alicloud
guide_aws
guide_cloudstack
guide_gce
guide_azure
guide_online
guide_packet
guide_rax
guide_scaleway
guide_vultr
Pending topics may include: Jenkins, Linode/DigitalOcean, Continuous Deployment, and more. .. toctree::
:maxdepth: 1
:caption: Network Technology Guides
guide_aci
guide_meraki
guide_infoblox
.. toctree::
:maxdepth: 1
:caption: Virtualization & Containerization Guides
guide_docker
guide_kubernetes
guide_vagrant
guide_vmware

View file

@ -0,0 +1,16 @@
.. _network_guides:
*************************
Network Technology Guides
*************************
The guides in this section cover using Ansible with specific network technologies. They explore particular use cases in greater depth and provide a more "top-down" explanation of some basic features.
.. toctree::
:maxdepth: 1
guide_aci
guide_meraki
guide_infoblox
To learn more about Network Automation with Ansible, see :ref:`network_getting_started` and :ref:`network_advanced`.

View file

@ -0,0 +1,15 @@
.. _virtualization_guides:
******************************************
Virtualization and Containerization Guides
******************************************
The guides in this section cover integrating Ansible with popular tools for creating virtual machines and containers. They explore particular use cases in greater depth and provide a more "top-down" explanation of some basic features.
.. toctree::
:maxdepth: 1
guide_docker
guide_kubernetes
guide_vagrant
guide_vmware

View file

@ -4,9 +4,10 @@
Ansible for VMware Concepts Ansible for VMware Concepts
*************************** ***************************
These concepts are common to all uses of Ansible, including VMware automation. You need to understand them to use Ansible for VMware automation. This basic introduction provides the background you need to follow the examples in this guide. Some of these concepts are common to all uses of Ansible, including VMware automation; some are specific to VMware. You need to understand them to use Ansible for VMware automation. This introduction provides the background you need to follow the :ref:`scenarios<vmware_scenarios>` in this guide.
.. contents:: Topics .. contents::
:local:
Control Node Control Node
============ ============
@ -16,20 +17,18 @@ Any machine with Ansible installed. You can run commands and playbooks, invoking
Delegation Delegation
========== ==========
If you want to perform a VMware specific task on one host with reference to ESXi server or vCenter server, use the ``delegate_to`` keyword on a task. This delegation host will be any host where you have ``pyVmomi`` installed. Your control node and ``delegate_to`` host can be same or different. Delegation allows you to select the system that executes a given task. If you do not have ``pyVmomi`` installed on your control node, use the ``delegate_to`` keyword on VMware-specific tasks to execute them on any host where you have ``pyVmomi`` installed.
Modules Modules
======= =======
The units of code Ansible executes. Each module has a particular use, from creating virtual machines on vCenter to managing distributed virtual switches on vCenter environment. You can invoke a single module with a task, or invoke several different modules in a playbook. For an idea of how many modules Ansible includes, take a look at the :ref:`list of VMware modules<vmware_cloud_modules>`. The units of code Ansible executes. Each module has a particular use, from creating virtual machines on vCenter to managing distributed virtual switches in the vCenter environment. You can invoke a single module with a task, or invoke several different modules in a playbook. For an idea of how many modules Ansible includes, take a look at the :ref:`list of cloud modules<cloud_modules>`, which includes VMware modules.
Playbooks Playbooks
========= =========
Ordered lists of tasks, saved so you can run those tasks in that order repeatedly. Playbooks can include variables as well as tasks. Playbooks are written in YAML and are easy to read, write, share and understand. Ordered lists of tasks, saved so you can run those tasks in that order repeatedly. Playbooks can include variables as well as tasks. Playbooks are written in YAML and are easy to read, write, share and understand.
pyVmomi pyVmomi
======= =======

View file

@ -1,10 +1,8 @@
.. _vmware_external_doc_links: .. _vmware_external_doc_links:
****************************** *****************************
List of useful links to VMware Other useful VMware resources
****************************** *****************************
Following is the list of various external documentation and guides which can helpful in further readings.
* `PyVmomi Documentation <https://github.com/vmware/pyvmomi/tree/master/docs>`_ * `PyVmomi Documentation <https://github.com/vmware/pyvmomi/tree/master/docs>`_
* `VMware API and SDK Documentation <https://www.vmware.com/support/pubs/sdk_pubs.html>`_ * `VMware API and SDK Documentation <https://www.vmware.com/support/pubs/sdk_pubs.html>`_

View file

@ -1,3 +1,5 @@
:orphan:
.. _vmware_ansible_getting_started: .. _vmware_ansible_getting_started:
*************************************** ***************************************

View file

@ -1,3 +1,5 @@
:orphan:
.. _vmware_ansible_module_index: .. _vmware_ansible_module_index:
*************************** ***************************

View file

@ -4,28 +4,22 @@
VMware Prerequisites VMware Prerequisites
******************** ********************
.. contents:: Topics .. contents::
:local:
Installing SSL Certificates
===========================
Installing SSL Certificate All vCenter and ESXi servers require SSL encryption on all connections to enforce secure communication. You must enable SSL encryption for Ansible by installing the server's SSL certificates on your Ansible control node or delegate node.
==========================
All vCenter and ESXi servers require SSL encryption on all connections to enforce secure communication. If the SSL certificate of your vCenter or ESXi server is not correctly installed on your Ansible control node, you will see the following warning when using Ansible VMware modules:
If you see the following warning while using Ansible VMware modules [warning], you need to enable SSL encryption for Ansible by installing the server's SSL certificates on your Ansible control node or delegate node. ``Unable to connect to vCenter or ESXi API at xx.xx.xx.xx on TCP/443: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:777)``
``` To install the SSL certificate for your VMware server, and run your Ansible VMware modules in encrypted mode, please follow the instructions for the server you are running with VMware.
Unable to connect to vCenter or ESXi API at xx.xx.xx.xx on TCP/443: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:777)
```
then, this means you need to add/install SSL certificate of vCenter or ESXi server in your Ansible control node. Installing vCenter SSL certificates for Ansible
-----------------------------------------------
The following instructions allow you to run your Ansible VMware modules with encrypted mode (viz. ``validate_certs=True``).
Please follow the instructions depending upon your server to install SSL certificate.
vCenter
-------
* From any web browser, go to the base URL of the vCenter Server without port number like ``https://vcenter-domain.example.com`` * From any web browser, go to the base URL of the vCenter Server without port number like ``https://vcenter-domain.example.com``
@ -38,9 +32,8 @@ vCenter
* Install the certificate files are trusted certificates by the process that is appropriate for your operating system. * Install the certificate files are trusted certificates by the process that is appropriate for your operating system.
Installing ESXi SSL certificates for Ansible
ESXi --------------------------------------------
----
* Enable SSH Service on ESXi either by using Ansible VMware module `vmware_host_service_manager <https://github.com/ansible/ansible/blob/devel/lib/ansible/modules/cloud/vmware/vmware_host_config_manager.py>`_ or manually using vSphere Web interface. * Enable SSH Service on ESXi either by using Ansible VMware module `vmware_host_service_manager <https://github.com/ansible/ansible/blob/devel/lib/ansible/modules/cloud/vmware/vmware_host_config_manager.py>`_ or manually using vSphere Web interface.

View file

@ -1,4 +1,4 @@
.. _vmware_scenario_1: :orphan:
********************************** **********************************
Sample Scenario for Ansible VMware Sample Scenario for Ansible VMware

View file

@ -4,21 +4,13 @@
Ansible for VMware Scenarios Ansible for VMware Scenarios
**************************** ****************************
Welcome to the Ansible for VMWare Guide! These scenarios teach you how to accomplish common VMware tasks using Ansible. To get started, please select the task you want to accomplish.
The purpose of this guide is to teach you everything you need to know about using Ansible with VMWare.
To get started, please select one of the following topics.
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 1
scenario_clone_template scenario_clone_template
scenario_rename_vm scenario_rename_vm
scenario_remove_vm scenario_remove_vm
scenario_find_vm_folder scenario_find_vm_folder
scenario_vmware_http scenario_vmware_http
vmware_scenario_1

View file

@ -8,8 +8,8 @@ Troubleshooting Ansible for VMware
This section lists things that can go wrong and possible ways to fix them. This section lists things that can go wrong and possible ways to fix them.
Debugging Debugging Ansible for VMware
========= ============================
When debugging or creating a new issue, you will need information about your VMware infrastructure. You can get this information using When debugging or creating a new issue, you will need information about your VMware infrastructure. You can get this information using
`govc <https://github.com/vmware/govmomi/tree/master/govc>`_, For example: `govc <https://github.com/vmware/govmomi/tree/master/govc>`_, For example:
@ -22,8 +22,8 @@ When debugging or creating a new issue, you will need information about your VMw
$ export GOVC_URL=https://ESXI_OR_VCENTER_HOSTNAME:443 $ export GOVC_URL=https://ESXI_OR_VCENTER_HOSTNAME:443
$ govc find / $ govc find /
Known issues Known issues with Ansible for VMware
============ ====================================
Network settings with vmware_guest in Ubuntu 18.04 Network settings with vmware_guest in Ubuntu 18.04
@ -35,15 +35,15 @@ This issue is tracked via:
* https://github.com/vmware/open-vm-tools/issues/240 * https://github.com/vmware/open-vm-tools/issues/240
* https://github.com/ansible/ansible/issues/41133 * https://github.com/ansible/ansible/issues/41133
Potential Workaround Potential Workarounds
^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^
There are several workarounds for this issue. There are several workarounds for this issue.
1) Modifying the Ubuntu 18.04 images and installing ``ifupdown`` in them via ``sudo apt install ifupdown``. 1) Modify the Ubuntu 18.04 images and installing ``ifupdown`` in them via ``sudo apt install ifupdown``.
If so you need to remove ``netplan`` via ``sudo apt remove netplan.io`` and you need stop ``systemd-networkd`` via ``sudo systemctl disable systemctl-networkd``. If so you need to remove ``netplan`` via ``sudo apt remove netplan.io`` and you need stop ``systemd-networkd`` via ``sudo systemctl disable systemctl-networkd``.
2) You can generate the ``systemd-networkd`` files with a task in your vmware Ansible role: 2) Generate the ``systemd-networkd`` files with a task in your VMware Ansible role:
.. code-block:: yaml .. code-block:: yaml
@ -100,14 +100,3 @@ There are several workarounds for this issue.
delegate_to: localhost delegate_to: localhost
3) Wait for ``netplan`` support in ``open-vm-tools`` 3) Wait for ``netplan`` support in ``open-vm-tools``
Troubleshooting Item
====================
Description
Potential Workaround
--------------------
How to fix...

View file

@ -1,12 +1,16 @@
Continuous Delivery and Rolling Upgrades **********************************************************
======================================== Playbook Example: Continuous Delivery and Rolling Upgrades
**********************************************************
.. contents::
:local:
.. _lamp_introduction: .. _lamp_introduction:
Introduction What is continuous delivery?
```````````` ============================
Continuous Delivery is the concept of frequently delivering updates to your software application. Continuous delivery (CD) means frequently delivering updates to your software application.
The idea is that by updating more often, you do not have to wait for a specific timed period, and your organization The idea is that by updating more often, you do not have to wait for a specific timed period, and your organization
gets better at the process of responding to change. gets better at the process of responding to change.
@ -31,8 +35,8 @@ example for that information. Instead, we're going to take a close look at every
.. _lamp_deployment: .. _lamp_deployment:
Site Deployment Site deployment
``````````````` ===============
Let's start with ``site.yml``. This is our site-wide deployment playbook. It can be used to initially deploy the site, as well Let's start with ``site.yml``. This is our site-wide deployment playbook. It can be used to initially deploy the site, as well
as push updates to all of the servers:: as push updates to all of the servers::
@ -89,8 +93,8 @@ sample web application and the Nagios hosts.
.. _lamp_roles: .. _lamp_roles:
Reusable Content: Roles Reusable content: roles
``````````````````````` =======================
By now you should have a bit of understanding about roles and how they work in Ansible. Roles are a way to organize By now you should have a bit of understanding about roles and how they work in Ansible. Roles are a way to organize
content: tasks, handlers, templates, and files, into reusable components. content: tasks, handlers, templates, and files, into reusable components.
@ -104,8 +108,8 @@ You can read more about roles in the :ref:`playbooks_reuse_roles` section.
.. _lamp_group_variables: .. _lamp_group_variables:
Configuration: Group Variables Configuration: group variables
`````````````````````````````` ==============================
Group variables are variables that are applied to groups of servers. They can be used in templates and in Group variables are variables that are applied to groups of servers. They can be used in templates and in
playbooks to customize behavior and to provide easily-changed settings and parameters. They are stored in playbooks to customize behavior and to provide easily-changed settings and parameters. They are stored in
@ -189,8 +193,8 @@ can read more about Ansible variables in general in the :ref:`playbooks_variable
.. _lamp_rolling_upgrade: .. _lamp_rolling_upgrade:
The Rolling Upgrade The rolling upgrade
``````````````````` ===================
Now you have a fully-deployed site with web servers, a load balancer, and monitoring. How do you update it? This is where Ansible's Now you have a fully-deployed site with web servers, a load balancer, and monitoring. How do you update it? This is where Ansible's
orchestration features come into play. While some applications use the term 'orchestration' to mean basic ordering or command-blasting, Ansible orchestration features come into play. While some applications use the term 'orchestration' to mean basic ordering or command-blasting, Ansible
@ -266,8 +270,8 @@ Again, if you were using a Netscaler or F5 or Elastic Load Balancer, you would j
.. _lamp_end_notes: .. _lamp_end_notes:
Managing Other Load Balancers Managing other load balancers
````````````````````````````` =============================
In this example, we use the simple HAProxy load balancer to front-end the web servers. It's easy to configure and easy to manage. As we have mentioned, Ansible has built-in support for a variety of other load balancers like Citrix NetScaler, F5 BigIP, Amazon Elastic Load Balancers, and more. See the :ref:`working_with_modules` documentation for more information. In this example, we use the simple HAProxy load balancer to front-end the web servers. It's easy to configure and easy to manage. As we have mentioned, Ansible has built-in support for a variety of other load balancers like Citrix NetScaler, F5 BigIP, Amazon Elastic Load Balancers, and more. See the :ref:`working_with_modules` documentation for more information.
@ -275,8 +279,8 @@ For other load balancers, you may need to send shell commands to them (like we d
.. _lamp_end_to_end: .. _lamp_end_to_end:
Continuous Delivery End-To-End Continuous delivery end-to-end
`````````````````````````````` ==============================
Now that you have an automated way to deploy updates to your application, how do you tie it all together? A lot of organizations use a continuous integration tool like `Jenkins <https://jenkins.io/>`_ or `Atlassian Bamboo <https://www.atlassian.com/software/bamboo>`_ to tie the development, test, release, and deploy steps together. You may also want to use a tool like `Gerrit <https://www.gerritcodereview.com/>`_ to add a code review step to commits to either the application code itself, or to your Ansible playbooks, or both. Now that you have an automated way to deploy updates to your application, how do you tie it all together? A lot of organizations use a continuous integration tool like `Jenkins <https://jenkins.io/>`_ or `Atlassian Bamboo <https://www.atlassian.com/software/bamboo>`_ to tie the development, test, release, and deploy steps together. You may also want to use a tool like `Gerrit <https://www.gerritcodereview.com/>`_ to add a code review step to commits to either the application code itself, or to your Ansible playbooks, or both.
@ -298,5 +302,3 @@ This should give you a good idea of how to structure a multi-tier application wi
An introduction to Ansible variables An introduction to Ansible variables
`Ansible.com: Continuous Delivery <https://www.ansible.com/use-cases/continuous-delivery>`_ `Ansible.com: Continuous Delivery <https://www.ansible.com/use-cases/continuous-delivery>`_
An introduction to Continuous Delivery with Ansible An introduction to Continuous Delivery with Ansible

View file

@ -30,5 +30,4 @@ You should look at `Example Playbooks <https://github.com/ansible/ansible-exampl
playbooks_special_topics playbooks_special_topics
playbooks_strategies playbooks_strategies
playbooks_best_practices playbooks_best_practices
guide_rolling_upgrade

View file

@ -1,26 +0,0 @@
.. _vmware_ansible:
******************
Ansible for VMware
******************
Welcome to the Ansible for VMware Guide! This is a set of placeholder docs to be filled in.
The purpose of this guide is to teach you everything you need to know about using Ansible with VMware.
To get started, please select one of the following topics.
.. toctree::
:maxdepth: 2
vmware_intro
vmware_concepts
vmware_requirements
vmware_getting_started
vmware_inventory
vmware_scenarios
vmware_module_reference
vmware_troubleshooting
vmware_external_doc_links
faq