Validate EXAMPLES as YAML

This commit is contained in:
Matt Martz 2017-02-07 15:39:24 -06:00 committed by Toshio Kuratomi
parent 499d3a1b53
commit 7c00346714
112 changed files with 441 additions and 381 deletions

View file

@ -105,14 +105,14 @@ EXAMPLES = '''
# It is assumed that their matching environment variables are set.
# Basic creation example:
ec2_vpc:
- ec2_vpc:
state: present
cidr_block: 172.23.0.0/16
resource_tags: { "Environment":"Development" }
region: us-west-2
# Full creation example with subnets and optional availability zones.
# The absence or presence of subnets deletes or creates them respectively.
ec2_vpc:
- ec2_vpc:
state: present
cidr_block: 172.22.0.0/16
resource_tags: { "Environment":"Development" }
@ -143,12 +143,12 @@ EXAMPLES = '''
register: vpc
# Removal of a VPC by id
ec2_vpc:
- ec2_vpc:
state: absent
vpc_id: vpc-aaaaaaa
region: us-west-2
If you have added elements not managed by this module, e.g. instances, NATs, etc then
the delete will fail until those dependencies are removed.
# If you have added elements not managed by this module, e.g. instances, NATs, etc then
# the delete will fail until those dependencies are removed.
'''

View file

@ -73,7 +73,7 @@ EXAMPLES = '''
# Facts are published in ansible_facts['cloudformation'][<stack_name>]
- debug:
msg: '{{ ansible_facts['cloudformation']['my-cloudformation-stack'] }}'
msg: "{{ ansible_facts['cloudformation']['my-cloudformation-stack'] }}"
# Get all stack information about a stack
- cloudformation_facts:

View file

@ -145,10 +145,10 @@ EXAMPLES = '''
# Facts are published in ansible_facts['cloudfront'][<distribution_name>]
- debug:
msg: '{{ ansible_facts['cloudfront']['my-cloudfront-distribution-id'] }}'
msg: "{{ ansible_facts['cloudfront']['my-cloudfront-distribution-id'] }}"
- debug:
msg: '{{ ansible_facts['cloudfront']['www.my-website.com'] }}'
msg: "{{ ansible_facts['cloudfront']['www.my-website.com'] }}"
# Get all information about an invalidation for a distribution.
- cloudfront_facts:

View file

@ -83,7 +83,8 @@ extends_documentation_fragment: aws
EXAMPLES = """
- name: enable cloudtrail
local_action: cloudtrail
local_action:
module: cloudtrail
state: enabled
name: main
s3_bucket_name: ourbucket
@ -91,7 +92,8 @@ EXAMPLES = """
region: us-east-1
- name: enable cloudtrail with different configuration
local_action: cloudtrail
local_action:
module: cloudtrail
state: enabled
name: main
s3_bucket_name: ourbucket2
@ -99,7 +101,8 @@ EXAMPLES = """
region: us-east-1
- name: remove cloudtrail
local_action: cloudtrail
local_action:
module: cloudtrail
state: disabled
name: main
region: us-east-1

View file

@ -182,15 +182,15 @@ EXAMPLES = '''
# Rolling ASG Updates
Below is an example of how to assign a new launch config to an ASG and terminate old instances.
All instances in "myasg" that do not have the launch configuration named "my_new_lc" will be terminated in
a rolling fashion with instances using the current launch configuration, "my_new_lc".
This could also be considered a rolling deploy of a pre-baked AMI.
If this is a newly created group, the instances will not be replaced since all instances
will have the current launch configuration.
# Below is an example of how to assign a new launch config to an ASG and terminate old instances.
#
# All instances in "myasg" that do not have the launch configuration named "my_new_lc" will be terminated in
# a rolling fashion with instances using the current launch configuration, "my_new_lc".
#
# This could also be considered a rolling deploy of a pre-baked AMI.
#
# If this is a newly created group, the instances will not be replaced since all instances
# will have the current launch configuration.
- name: create launch config
ec2_lc:
@ -213,8 +213,8 @@ will have the current launch configuration.
desired_capacity: 5
region: us-east-1
To only replace a couple of instances instead of all of them, supply a list
to "replace_instances":
# To only replace a couple of instances instead of all of them, supply a list
# to "replace_instances":
- ec2_asg:
name: myasg

View file

@ -175,7 +175,7 @@ EXAMPLES = '''
# Modify the interface to enable the delete_on_terminaton flag
- ec2_eni:
eni_id: {{ "eni.interface.id" }}
eni_id: "{{ eni.interface.id }}"
delete_on_termination: true
'''

View file

@ -90,7 +90,7 @@ EXAMPLES = '''
hostPort: 80
- name: busybox
command:
- "/bin/sh -c \"while true; do echo '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p>' > top; /bin/date > date ; echo '</div></body></html>' > bottom; cat top date bottom > /usr/local/apache2/htdocs/index.html ; sleep 1; done\""
- /bin/sh -c "while true; do echo '<html><head><title>Amazon ECS Sample App</title></head><body><div><h1>Amazon ECS Sample App</h1><h2>Congratulations!</h2><p>Your application is now running on a container in Amazon ECS.</p>' > top; /bin/date > date ; echo '</div></body></html>' > bottom; cat top date bottom > /usr/local/apache2/htdocs/index.html ; sleep 1; done"
cpu: 10
entryPoint:
- sh

View file

@ -54,7 +54,7 @@ extends_documentation_fragment:
EXAMPLES = '''
# Add or change a subnet group
- elasticache_subnet_group
- elasticache_subnet_group:
state: present
name: norwegian-blue
description: My Fancy Ex Parrot Subnet Group

View file

@ -276,7 +276,7 @@ EXAMPLES = '''
wait: yes
# Reboot an instance and wait for it to become available again
- rds
- rds:
command: reboot
instance_name: database
wait: yes

View file

@ -67,7 +67,7 @@ EXAMPLES = '''
- 'subnet-bbbbb'
# Remove subnet group
redshift_subnet_group: >
- redshift_subnet_group:
state: absent
group_name: redshift-subnet
'''

View file

@ -163,7 +163,7 @@ EXAMPLES = '''
- name: Add new instance to host group
add_host:
hostname: '{{ item['ips'][0].public_ip }}'
hostname: "{{ item['ips'][0].public_ip }}"
groupname: azure_vms
with_items: "{{ azure.deployment.instances }}"

View file

@ -91,7 +91,7 @@ EXAMPLES = '''
# Ensure account configuration
- local_action:
module: cs_configuration:
module: cs_configuration
name: allow.public.user.templates
value: false
account: acme inc

View file

@ -84,7 +84,7 @@ EXAMPLES = '''
# register your existing local public key:
- cs_sshkeypair:
name: linus@example.com
public_key: '{{ lookup('file', '~/.ssh/id_rsa.pub') }}'
public_key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"
delegate_to: localhost
'''

View file

@ -236,6 +236,7 @@ EXAMPLES = '''
credentials_file: "/path/to/your-key.json"
project_id: "your-project-name"
---
# Example Playbook
- name: Compute Engine Instance Examples
hosts: localhost

View file

@ -286,7 +286,7 @@ EXAMPLES = '''
- proxmox:
vmid: 100
api_user: root@pam
api_passwordL 1q2w3e
api_password: 1q2w3e
api_host: node1
force: yes
state: stopped

View file

@ -217,8 +217,7 @@ vm:
EXAMPLES = '''
# basic get info from VM
action: rhevm
args:
- rhevm:
name: "demo"
user: "{{ rhev.admin.name }}"
password: "{{ rhev.admin.pass }}"
@ -226,8 +225,7 @@ EXAMPLES = '''
state: "info"
# basic create example from image
action: rhevm
args:
- rhevm:
name: "demo"
user: "{{ rhev.admin.name }}"
password: "{{ rhev.admin.pass }}"
@ -237,8 +235,7 @@ EXAMPLES = '''
cluster: "centos"
# power management
action: rhevm
args:
- rhevm:
name: "uptime_server"
user: "{{ rhev.admin.name }}"
password: "{{ rhev.admin.pass }}"
@ -246,11 +243,10 @@ EXAMPLES = '''
cluster: "RH"
state: "down"
image: "centos7_x64"
cluster: "centos
cluster: "centos"
# multi disk, multi nic create example
action: rhevm
args:
- rhevm:
name: "server007"
user: "{{ rhev.admin.name }}"
password: "{{ rhev.admin.pass }}"
@ -290,8 +286,7 @@ EXAMPLES = '''
- "hd"
# add a CD to the disk cd_drive
action: rhevm
args:
- rhevm:
name: 'server007'
user: "{{ rhev.admin.name }}"
password: "{{ rhev.admin.pass }}"
@ -299,8 +294,7 @@ EXAMPLES = '''
cd_drive: 'rhev-tools-setup.iso'
# new host deployment + host network configuration
action: rhevm
args:
- rhevm:
name: "ovirt_node007"
password: "{{ rhevm.admin.pass }}"
type: "host"

View file

@ -75,17 +75,18 @@ EXAMPLES = '''
state: running
# /usr/bin/ansible invocations
ansible host -m virt -a "name=alpha command=status"
ansible host -m virt -a "name=alpha command=get_xml"
ansible host -m virt -a "name=alpha command=create uri=lxc:///"
# ansible host -m virt -a "name=alpha command=status"
# ansible host -m virt -a "name=alpha command=get_xml"
# ansible host -m virt -a "name=alpha command=create uri=lxc:///"
---
# a playbook example of defining and launching an LXC guest
tasks:
- name: define vm
virt:
name: foo
command: define
xml: '{{ lookup('template', 'container-template.xml.j2') }}'
xml: "{{ lookup('template', 'container-template.xml.j2') }}"
uri: 'lxc:///'
- name: start vm
virt:

View file

@ -37,7 +37,8 @@ EXAMPLES = '''
xenserver:
- name: Print running VMs
debug: msg="{{ item }}"
debug:
msg: "{{ item }}"
with_items: "{{ xs_vms.keys() }}"
when: xs_vms[item]['power_state'] == "Running"

View file

@ -58,7 +58,7 @@ EXAMPLES = '''
var: openstack_domains
# Gather facts about a previously created domain with filter
- os_keystone_domain_facts
- os_keystone_domain_facts:
cloud: awesomecloud
name: demodomain
filters:

View file

@ -63,16 +63,15 @@ EXAMPLES = '''
var: openstack_projects
# Gather facts about a previously created project in a specific domain
- os_project_facts
- os_project_facts:
cloud: awesomecloud
name: demoproject
domain: admindomain
- debug:
var: openstack_projects
# Gather facts about a previously created project in a specific domain
with filter
- os_project_facts
# Gather facts about a previously created project in a specific domain with filter
- os_project_facts:
cloud: awesomecloud
name: demoproject
domain: admindomain

View file

@ -86,12 +86,12 @@ EXAMPLES = '''
bmc_flavor: m1.medium
bmc_image: CentOS
key_name: default
private_net: {{ private_net_param }}
private_net: "{{ private_net_param }}"
node_count: 2
name: undercloud
image: CentOS
my_flavor: m1.large
external_net: {{ external_net_param }}
external_net: "{{ external_net_param }}"
'''
RETURN = '''

View file

@ -63,16 +63,15 @@ EXAMPLES = '''
var: openstack_users
# Gather facts about a previously created user in a specific domain
- os_user_facts
- os_user_facts:
cloud: awesomecloud
name: demouser
domain: admindomain
- debug:
var: openstack_users
# Gather facts about a previously created user in a specific domain
with filter
- os_user_facts
# Gather facts about a previously created user in a specific domain with filter
- os_user_facts:
cloud: awesomecloud
name: demouser
domain: admindomain

View file

@ -102,7 +102,7 @@ tasks:
# oVirt user's password, and include that yaml file with variable:
- include_vars: ovirt_password.yml
- name: Obtain SSO token with using username/password credentials:
- name: Obtain SSO token with using username/password credentials
ovirt_auth:
url: https://ovirt.example.com/ovirt-engine/api
username: admin@internal

View file

@ -73,14 +73,14 @@ EXAMPLES = '''
- ovirt_snapshots:
vm_name: rhel7
description: MySnapshot
register: snapshot
register: snapshot
# Create snapshot and save memory:
- ovirt_snapshots:
vm_name: rhel7
description: SnapWithMem
use_memory: true
register: snapshot
register: snapshot
# Restore snapshot:
- ovirt_snapshots:

View file

@ -137,12 +137,12 @@ EXAMPLES = '''
- name: Creates a new vApp in a VCA instance
vca_vapp:
vapp_name: tower
state=present
template_name='Ubuntu Server 12.04 LTS (amd64 20150127)'
vdc_name=VDC1
instance_id=<your instance id here>
username=<your username here>
password=<your password here>
state: present
template_name: 'Ubuntu Server 12.04 LTS (amd64 20150127)'
vdc_name: VDC1
instance_id: '<your instance id here>'
username: '<your username here>'
password: '<your password here>'
'''

View file

@ -64,14 +64,16 @@ extends_documentation_fragment: vmware.documentation
EXAMPLES = '''
# Example vmware_cluster command from Ansible Playbooks
- name: Create Cluster
local_action: >
vmware_cluster
hostname="{{ ansible_ssh_host }}" username=root password=vmware
datacenter_name="datacenter"
cluster_name="cluster"
enable_ha=True
enable_drs=True
enable_vsan=True
local_action:
module: vmware_cluster
hostname: "{{ ansible_ssh_host }}"
username: root
password: vmware
datacenter_name: "datacenter"
cluster_name: "cluster"
enable_ha: True
enable_drs: True
enable_vsan: True
'''
try:

View file

@ -65,10 +65,13 @@ extends_documentation_fragment: vmware.documentation
EXAMPLES = '''
# Example vmware_datacenter command from Ansible Playbooks
- name: Create Datacenter
local_action: >
vmware_datacenter
hostname="{{ ansible_ssh_host }}" username=root password=vmware
datacenter_name="datacenter" state=present
local_action:
module: vmware_datacenter
hostname: "{{ ansible_ssh_host }}"
username: root
password: vmware
datacenter_name: "datacenter"
state: present
'''
try:

View file

@ -68,7 +68,7 @@ extends_documentation_fragment: vmware.documentation
'''
EXAMPLES = '''
Example from Ansible playbook
# Example from Ansible playbook
- name: Add ESXi Host to VCSA
local_action:

View file

@ -64,7 +64,7 @@ extends_documentation_fragment: vmware.documentation
'''
EXAMPLES = '''
Example from Ansible playbook
# Example from Ansible playbook
- name: Migrate Management vmk
local_action:

View file

@ -60,7 +60,7 @@ extends_documentation_fragment: vmware.documentation
'''
EXAMPLES = '''
Example from Ansible playbook
# Example from Ansible playbook
- name: Add Management Network VM Portgroup
local_action:

View file

@ -45,10 +45,12 @@ extends_documentation_fragment: vmware.documentation
EXAMPLES = '''
# Example vmware_target_canonical_facts command from Ansible Playbooks
- name: Get Canonical name
local_action: >
vmware_target_canonical_facts
hostname="{{ ansible_ssh_host }}" username=root password=vmware
target_id=7
local_action:
module: vmware_target_canonical_facts
hostname: "{{ ansible_ssh_host }}"
username: root
password: vmware
target_id: 7
'''
try:

View file

@ -51,7 +51,7 @@ extends_documentation_fragment: vmware.documentation
'''
EXAMPLES = '''
Example from Ansible playbook
# Example from Ansible playbook
- name: Perform vMotion of VM
local_action:

View file

@ -65,7 +65,7 @@ extends_documentation_fragment: vmware.documentation
'''
EXAMPLES = '''
Example from Ansible playbook
# Example from Ansible playbook
- name: Add a VMware vSwitch
local_action:

View file

@ -153,6 +153,7 @@ requirements:
EXAMPLES = '''
---
# Create a new VM on an ESX server
# Returns changed = False when the VM already exists
# Returns changed = True and a adds ansible_facts from the new VM
@ -258,7 +259,7 @@ EXAMPLES = '''
guest: newvm001
vmware_guest_facts: yes
---
# Typical output of a vsphere_facts run on a guest
# If vmware tools is not installed, ipadresses with return None
@ -277,22 +278,22 @@ EXAMPLES = '''
hw_processor_count: 2
hw_product_uuid: "ef50bac8-2845-40ff-81d9-675315501dac"
hw_power_status will be one of the following values:
- POWERED ON
- POWERED OFF
- SUSPENDED
- POWERING ON
- POWERING OFF
- SUSPENDING
- RESETTING
- BLOCKED ON MSG
- REVERTING TO SNAPSHOT
- UNKNOWN
as seen in the VMPowerState-Class of PySphere: http://git.io/vlwOq
# hw_power_status will be one of the following values:
# - POWERED ON
# - POWERED OFF
# - SUSPENDED
# - POWERING ON
# - POWERING OFF
# - SUSPENDING
# - RESETTING
# - BLOCKED ON MSG
# - REVERTING TO SNAPSHOT
# - UNKNOWN
# as seen in the VMPowerState-Class of PySphere: http://git.io/vlwOq
---
# Remove a vm from vSphere
# The VM must be powered_off or you need to use force to force a shutdown
- vsphere_guest:
vcenter_hostname: vcenter.mydomain.local
username: myuser

View file

@ -76,5 +76,5 @@ EXAMPLES = '''
executable: /bin/bash
- name: safely use templated variables. Always use quote filter to avoid injection issues.
raw: {{package_mgr|quote}} {{pkg_flags|quote}} install {{python_simplejson|quote}}
raw: "{{package_mgr|quote}} {{pkg_flags|quote}} install {{python_simplejson|quote}}"
'''

View file

@ -183,7 +183,7 @@ EXAMPLES = """
state: present
# Example privileges string format
mydb.*:INSERT,UPDATE/anotherdb.*:SELECT/yetanotherdb.*:ALL
# mydb.*:INSERT,UPDATE/anotherdb.*:SELECT/yetanotherdb.*:ALL
# Example using login_unix_socket to connect to server
- mysql_user:
@ -200,10 +200,9 @@ mydb.*:INSERT,UPDATE/anotherdb.*:SELECT/yetanotherdb.*:ALL
sql_log_bin: no
# Example .my.cnf file for setting the root password
[client]
user=root
password=n<_665{vS43y
# [client]
# user=root
# password=n<_665{vS43y
"""
import getpass

View file

@ -189,7 +189,7 @@ EXAMPLES = '''
state: absent
# Example privileges string format
INSERT,UPDATE/table:SELECT/anothertable:ALL
# INSERT,UPDATE/table:SELECT/anothertable:ALL
# Remove an existing user's password
- postgresql_user:

View file

@ -244,7 +244,7 @@ EXAMPLES = '''
links: yes
# Synchronization of two paths both on the control machine
- synchronize
- synchronize:
src: some/relative/path
dest: /some/absolute/path
delegate_to: localhost
@ -282,9 +282,9 @@ EXAMPLES = '''
rsync_path: "su -c rsync"
# Example .rsync-filter file in the source directory
- var # exclude any path whose last part is 'var'
- /var # exclude any path starting with 'var' starting at the source directory
+ /var/conf # include /var/conf even though it was previously excluded
# - var # exclude any path whose last part is 'var'
# - /var # exclude any path starting with 'var' starting at the source directory
# + /var/conf # include /var/conf even though it was previously excluded
# Synchronize passing in extra rsync options
- synchronize:

View file

@ -88,7 +88,7 @@ EXAMPLES = '''
version: '1.3'
token: '{{ bigpanda_token }}'
state: started
...
- bigpanda:
component: myapp
version: '1.3'
@ -104,7 +104,7 @@ EXAMPLES = '''
state: started
delegate_to: localhost
register: deployment
...
- bigpanda:
component: '{{ deployment.component }}'
version: '{{ deployment.version }}'

View file

@ -122,7 +122,7 @@ datadog_monitor:
type: "metric alert"
name: "Test monitor"
state: "present"
query: "datadog.agent.up".over("host:host1").last(2).count_by_status()"
query: "datadog.agent.up.over('host:host1').last(2).count_by_status()"
message: "Host [[host.name]] with IP [[host.ip]] is failing to report to datadog."
api_key: "9775a026f1ca7d1c6c5af9d94d9595a4"
app_key: "87ce4a24b5553d2e482ea8a8500e71b8ad4554ff"

View file

@ -230,7 +230,7 @@ EXAMPLES = '''
tasks:
- name: Create a host group
# All tasks except for target=collector should use delegate_to: localhost
logicmonitor
logicmonitor:
target: hostgroup
action: add
fullpath: /servers/development

View file

@ -102,6 +102,7 @@ options:
EXAMPLES = """
# Note: examples below use the following provider dict to handle
# transport and authentication to the node.
---
vars:
cli:
host: "{{ inventory_hostname }}"
@ -111,6 +112,7 @@ vars:
authorize: yes
auth_pass: cisco
---
- asa_acl:
lines:
- access-list ACL-ANSIBLE extended permit tcp any any eq 82

View file

@ -84,6 +84,7 @@ options:
EXAMPLES = """
# Note: examples below use the following provider dict to handle
# transport and authentication to the node.
---
vars:
cli:
host: "{{ inventory_hostname }}"
@ -93,7 +94,7 @@ vars:
auth_pass: cisco
transport: cli
---
- asa_command:
commands:
- show version

View file

@ -172,6 +172,7 @@ options:
EXAMPLES = """
# Note: examples below use the following provider dict to handle
# transport and authentication to the node.
---
vars:
cli:
host: "{{ inventory_hostname }}"
@ -181,6 +182,7 @@ vars:
auth_pass: cisco
transport: cli
---
- asa_config:
lines:
- network-object host 10.80.30.18

View file

@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
# Ansible module to manage Big Monitoring Fabric service chains
# (c) 2016, Ted Elhourani <ted@bigswitch.com>
# (c) 2016, Ted Elhourani <ted@bigswitch.com>,
#
# This file is part of Ansible
#

View file

@ -84,6 +84,7 @@ options:
EXAMPLES = """
# Note: examples below use the following provider dict to handle
# transport and authentication to the node.
---
vars:
cli:
host: "{{ inventory_hostname }}"
@ -91,6 +92,7 @@ vars:
password: admin
transport: cli
---
- name: run display version on remote devices
ce_command:
commands: display version

View file

@ -186,6 +186,7 @@ EXAMPLES = '''
# In vars file
# ============
---
cl_bonds:
bond0:
alias_name: uplink to isp

View file

@ -140,6 +140,7 @@ EXAMPLES = '''
# In vars file
# ============
---
cl_bridge:
br0:
alias_name: 'vlan aware bridge'

View file

@ -146,7 +146,7 @@ EXAMPLES = '''
# define cl_interfaces once in tasks
# then write interfaces in variables file
# with just the options you want.
- name: Create interfaces
- name: Create interfaces
cl_interface:
name: '{{ item.key }}'
ipv4: '{{ item.value.ipv4 | default(omit) }}'
@ -170,6 +170,7 @@ EXAMPLES = '''
# In vars file
# ============
---
cl_interfaces:
swp1:
alias_name: uplink to isp

View file

@ -49,7 +49,7 @@ options:
'''
EXAMPLES = '''
Example playbook entries using the cl_interface_policy module.
# Example playbook entries using the cl_interface_policy module.
- name: shows types of interface ranges supported
cl_interface_policy:

View file

@ -89,10 +89,7 @@ EXAMPLES = '''
state: reloaded
# Force all switches to accept a new license. Typically not needed
ansible -m cl_license -a "src='http://10.1.1.1/new_lic' force=yes" -u root all
----
# ansible -m cl_license -a "src='http://10.1.1.1/new_lic' force=yes" -u root all
'''
RETURN = '''

View file

@ -87,20 +87,20 @@ tasks:
- name: run show version on remote devices
dellos6_command:
commands: show version
provider "{{ cli }}"
provider: "{{ cli }}"
- name: run show version and check to see if output contains Dell
dellos6_command:
commands: show version
wait_for: result[0] contains Dell
provider "{{ cli }}"
provider: "{{ cli }}"
- name: run multiple commands on remote nodes
dellos6_command:
commands:
- show version
- show interfaces
provider "{{ cli }}"
provider: "{{ cli }}"
- name: run multiple commands and evaluate the output
dellos6_command:
@ -110,7 +110,7 @@ tasks:
wait_for:
- result[0] contains Dell
- result[1] contains Access
provider "{{ cli }}"
provider: "{{ cli }}"
"""
RETURN = """

View file

@ -136,7 +136,7 @@ EXAMPLES = '''
delegate_to: localhost
# create a my.com CNAME record to example.com
- dnsimple
- dnsimple:
domain: my.com
record: ''
type: CNAME

View file

@ -199,7 +199,7 @@ EXAMPLES = '''
state: "present"
name: "my-pool"
partition: "Common"
host: "{{ ansible_default_ipv4["address"] }}"
host: "{{ ansible_default_ipv4['address'] }}"
port: 80
- name: Remove pool member from pool
@ -210,7 +210,7 @@ EXAMPLES = '''
state: "absent"
name: "my-pool"
partition: "Common"
host: "{{ ansible_default_ipv4["address"] }}"
host: "{{ ansible_default_ipv4['address'] }}"
port: 80
- name: Delete pool

View file

@ -132,7 +132,7 @@ EXAMPLES = '''
state: "present"
pool: "my-pool"
partition: "Common"
host: "{{ ansible_default_ipv4["address"] }}"
host: "{{ ansible_default_ipv4['address'] }}"
port: 80
description: "web server"
connection_limit: 100
@ -148,7 +148,7 @@ EXAMPLES = '''
state: "present"
pool: "my-pool"
partition: "Common"
host: "{{ ansible_default_ipv4["address"] }}"
host: "{{ ansible_default_ipv4['address'] }}"
port: 80
ratio: 1
description: "nginx server"
@ -162,7 +162,7 @@ EXAMPLES = '''
state: "absent"
pool: "my-pool"
partition: "Common"
host: "{{ ansible_default_ipv4["address"] }}"
host: "{{ ansible_default_ipv4['address'] }}"
port: 80
delegate_to: localhost
@ -190,7 +190,7 @@ EXAMPLES = '''
monitor_state: "disabled"
pool: "my-pool"
partition: "Common"
host: "{{ ansible_default_ipv4["address"] }}"
host: "{{ ansible_default_ipv4['address'] }}"
port: 80
delegate_to: localhost
'''

View file

@ -49,6 +49,7 @@ options:
EXAMPLES = """
# Note: examples below use the following provider dict to handle
# transport and authentication to the node.
---
vars:
cli:
host: "{{ inventory_hostname }}"
@ -56,6 +57,7 @@ vars:
password: cisco
transport: cli
---
# Collect all facts from the device
- ios_facts:
gather_subset: all

View file

@ -99,10 +99,12 @@ EXAMPLES = """
comment: update system config
- name: replace config hierarchy
junos_template:
src: config.j2
action: replace
- name: overwrite the config
junos_template:
src: config.j2
action: overwrite
"""

View file

@ -110,12 +110,14 @@ notes:
EXAMPLES = """
# Note: examples below use the following provider dict to handle
# transport and authentication to the node.
---
vars:
netconf:
host: "{{ inventory_hostname }}"
username: ansible
password: Ansible
---
- name: run a set of commands
junos_command:
commands: ['show version', 'show ip route']

View file

@ -146,12 +146,14 @@ notes:
EXAMPLES = """
# Note: examples below use the following provider dict to handle
# transport and authentication to the node.
---
vars:
netconf:
host: "{{ inventory_hostname }}"
username: ansible
password: Ansible
---
- name: load configure file into device
junos_config:
src: srx.cfg

View file

@ -58,6 +58,7 @@ options:
EXAMPLES = """
# Note: examples below use the following provider dict to handle
# transport and authentication to the node.
---
vars:
cli:
host: "{{ inventory_hostname }}"
@ -65,6 +66,7 @@ vars:
password: Ansible
transport: cli
---
- name: enable netconf service on port 830
junos_netconf:
listens_on: 830

View file

@ -394,8 +394,6 @@ EXAMPLES='''
- '{{ nmcli_ethernet }}'
## playbook-del.yml example
---
- hosts: openstack-stage
remote_user: root
tasks:

View file

@ -259,8 +259,8 @@ options:
choices: ['present','absent']
'''
EXAMPLES = '''
configure RR client
- nxos_bgp_neighbor_af:
- name: configure RR client
nxos_bgp_neighbor_af:
asn: 65535
neighbor: '3.3.3.3'
afi: ipv4

View file

@ -91,6 +91,7 @@ options:
EXAMPLES = """
# Note: examples below use the following provider dict to handle
# transport and authentication to the node.
---
vars:
cli:
host: "{{ inventory_hostname }}"
@ -98,6 +99,7 @@ vars:
password: admin
transport: cli
---
- name: run show version on remote devices
nxos_command:
commands: show version

View file

@ -164,6 +164,7 @@ options:
EXAMPLES = """
# Note: examples below use the following provider dict to handle
# transport and authentication to the node.
---
vars:
cli:
host: "{{ inventory_hostname }}"
@ -171,6 +172,7 @@ vars:
password: admin
transport: cli
---
- name: configure top level configuration and save it
nxos_config:
lines: hostname {{ inventory_hostname }}

View file

@ -53,6 +53,7 @@ options:
EXAMPLES = """
# Note: examples below use the following provider dict to handle
# transport and authentication to the node.
---
vars:
cli:
host: "{{ inventory_hostname }}"
@ -60,6 +61,7 @@ vars:
password: admin
transport: cli
---
- nxos_facts:
gather_subset: all

View file

@ -89,48 +89,49 @@ options:
'''
EXAMPLES = '''
- name Ensure an interface is a Layer 3 port and that it has the proper description
- name: Ensure an interface is a Layer 3 port and that it has the proper description
nxos_interface:
interface: Ethernet1/1
description: 'Configured by Ansible'
mode: layer3
host: 68.170.147.165
- name Admin down an interface
- name: Admin down an interface
nxos_interface:
interface: Ethernet2/1
host: 68.170.147.165
admin_state: down
- name Remove all loopback interfaces
- name: Remove all loopback interfaces
nxos_interface:
interface: loopback
state: absent
host: 68.170.147.165
- name Remove all logical interfaces
- name: Remove all logical interfaces
nxos_interface:
interface_type: "{{ item }} "
state: absent
host: "{{ inventory_hostname }}"
with_items:
- loopback
- portchannel
- svi
- nve
- name Admin up all ethernet interfaces
- name: Admin up all ethernet interfaces
nxos_interface:
interface: ethernet
host: 68.170.147.165
admin_state: up
- name Admin down ALL interfaces (physical and logical)
- name: Admin down ALL interfaces (physical and logical)
nxos_interface:
interface: all
host: 68.170.147.165
admin_state: down
'''
RETURN = '''
proposed:
description: k/v pairs of parameters passed into module

View file

@ -85,6 +85,7 @@ options:
EXAMPLES = """
# Note: examples below use the following provider dict to handle
# transport and authentication to the node.
---
vars:
cli:
host: "{{ inventory_hostname }}"
@ -92,6 +93,7 @@ vars:
password: netop
transport: cli
---
- ops_command:
commands:
- show version

View file

@ -139,12 +139,14 @@ options:
EXAMPLES = """
# Note: examples below use the following provider dict to handle
# transport and authentication to the node.
---
vars:
cli:
host: "{{ inventory_hostname }}"
username: netop
password: netop
---
- name: configure hostname over cli
ops_config:
lines:

View file

@ -73,6 +73,7 @@ options:
EXAMPLES = """
# Note: examples below use the following provider dict to handle
# transport and authentication to the node.
---
vars:
cli:
host: "{{ inventory_hostname }}"
@ -85,6 +86,7 @@ vars:
password: netop
transport: rest
---
- ops_facts:
gather_subset: all
provider: "{{ rest }}"

View file

@ -85,6 +85,7 @@ options:
EXAMPLES = """
# Note: examples below use the following provider dict to handle
# transport and authentication to the node.
---
vars:
cli:
host: "{{ inventory_hostname }}"
@ -92,6 +93,7 @@ vars:
password: admin
transport: cli
---
tasks:
- name: run show version on remote devices
sros_command:

View file

@ -160,6 +160,7 @@ options:
EXAMPLES = """
# Note: examples below use the following provider dict to handle
# transport and authentication to the node.
---
vars:
cli:
host: "{{ inventory_hostname }}"
@ -167,6 +168,7 @@ vars:
password: admin
transport: cli
---
- name: enable rollback location
sros_config:
lines: configure system rollback rollback-location "cf3:/ansible"

View file

@ -79,6 +79,7 @@ options:
EXAMPLES = """
# Note: examples below use the following provider dict to handle
# transport and authentication to the node.
---
vars:
cli:
host: "{{ inventory_hostname }}"
@ -86,6 +87,7 @@ vars:
password: admin
transport: cli
---
- name: configure rollback location
sros_rollback:
rollback_location: "cb3:/ansible"

View file

@ -84,7 +84,7 @@ EXAMPLES = '''
msg: Ansible task finished
# send a message, specifying the host and port
- jabber
- jabber:
user: mybot@example.net
host: talk.example.net
port: 5223

View file

@ -124,7 +124,7 @@ EXAMPLES = '''
delegate_to: localhost
# send an email to more than one recipient that the build failed
- sendgrid
- sendgrid:
username: "{{ sendgrid_username }}"
password: "{{ sendgrid_password }}"
from_address: "build@mycompany.com"

View file

@ -162,7 +162,7 @@ EXAMPLES = """
title: System load
fields:
- title: System A
value: load average: 0,74, 0,66, 0,63"
value: "load average: 0,74, 0,66, 0,63"
short: True
- title: System B
value: 'load average: 5,16, 4,64, 2,43'

View file

@ -54,8 +54,8 @@ options:
EXAMPLES = """
send a message to chat in playbook
- telegram:
- name: send a message to chat in playbook
telegram:
token: 'bot9999999:XXXXXXXXXXXXXXXXXXXXXXX'
chat_id: 000000
msg: Ansible task finished

View file

@ -81,44 +81,44 @@ options:
'''
EXAMPLES = '''
description: Install "coffee-script" node.js package.
- npm:
- name: Install "coffee-script" node.js package.
npm:
name: coffee-script
path: /app/location
description: Install "coffee-script" node.js package on version 1.6.1.
- npm:
- name: Install "coffee-script" node.js package on version 1.6.1.
npm:
name: coffee-script
version: '1.6.1'
path: /app/location
description: Install "coffee-script" node.js package globally.
- npm:
- name: Install "coffee-script" node.js package globally.
npm:
name: coffee-script
global: yes
description: Remove the globally package "coffee-script".
- npm:
- name: Remove the globally package "coffee-script".
npm:
name: coffee-script
global: yes
state: absent
description: Install "coffee-script" node.js package from custom registry.
- npm:
- name: Install "coffee-script" node.js package from custom registry.
npm:
name: coffee-script
registry: 'http://registry.mysite.com'
description: Install packages based on package.json.
- npm:
- name: Install packages based on package.json.
npm:
path: /app/location
description: Update packages based on package.json to their latest version.
- npm:
- name: Update packages based on package.json to their latest version.
npm:
path: /app/location
state: latest
description: Install packages based on package.json using the npm installed with nvm v0.10.1.
- npm:
- name: Install packages based on package.json using the npm installed with nvm v0.10.1.
npm:
path: /app/location
executable: /opt/nvm/v0.10.1/bin/npm
state: present

View file

@ -128,8 +128,8 @@ EXAMPLES = '''
# Playbook: make sure spells with/without required dependencies (if any) are installed
- sorcery:
name: {{ item.spell }}
depends: {{ item.depends | default(None) }}
name: "{{ item.spell }}"
depends: "{{ item.depends | default(None) }}"
state: present
with_items:
- { spell: 'vifm', depends: '+file,-gtk+2' }

View file

@ -145,7 +145,7 @@ EXAMPLES = '''
# Force refresh of a repository
- zypper_repository:
repo: 'http://my_internal_ci_repo/repo
repo: 'http://my_internal_ci_repo/repo'
name: my_ci_repo
state: present
runrefresh: yes

View file

@ -57,7 +57,8 @@ options:
'''
EXAMPLES = '''
Simple Example:
---
# Simple Example:
- name: "Create Product"
local_action:
@ -69,9 +70,8 @@ Simple Example:
params:
name: "Centos 7"
Abstraction Example:
katello.yml
# Abstraction Example:
# katello.yml
---
- name: "{{ name }}"
local_action:
@ -82,7 +82,7 @@ katello.yml
entity: "{{ entity }}"
params: "{{ params }}"
tasks.yml
# tasks.yml
---
- include: katello.yml
vars:

View file

@ -96,7 +96,7 @@ EXAMPLES = """
- name: Snapshot volume
netapp_e_snapshot_volume:
ssid: "{{ ssid }}"
api_url: "{{ netapp_api_url }}"/
api_url: "{{ netapp_api_url }}/"
api_username: "{{ netapp_api_username }}"
api_password: "{{ netapp_api_password }}"
state: present

View file

@ -78,13 +78,19 @@ options:
'''
EXAMPLES = '''
name: Gather facts about ZFS dataset rpool/export/home
zfs_facts: dataset=rpool/export/home
- name: Gather facts about ZFS dataset rpool/export/home
zfs_facts:
dataset: rpool/export/home
name: Report space usage on ZFS filesystems under data/home
zfs_facts: name=data/home recurse=yes type=filesystem
debug: msg='ZFS dataset {{ item.name }} consumes {{ item.used }} of disk space.'
with_items: '{{ ansible_zfs_datasets }}
- name: Report space usage on ZFS filesystems under data/home
zfs_facts:
name: data/home
recurse: yes
type: filesystem
- debug:
msg: 'ZFS dataset {{ item.name }} consumes {{ item.used }} of disk space.'
with_items: '{{ ansible_zfs_datasets }}'
'''
RETURN = '''

View file

@ -91,7 +91,7 @@ EXAMPLES = '''
state: opts_present
opts: discard
with_items: '{{ ansible_mounts }}'
when: '/dev/mapper/luks-' in {{ item.device }}
when: "'/dev/mapper/luks-' in {{ item.device }}"
'''
from ansible.module_utils.basic import *

View file

@ -136,7 +136,7 @@ EXAMPLES = """
control: required
module_path: pam_faillock.so
new_type: auth
new_control=sufficient
new_control: sufficient
new_module_path: pam_faillock.so
state: after

View file

@ -92,28 +92,28 @@ author:
EXAMPLES = """
# Display facts from all hosts and store them indexed by I(hostname) at C(/tmp/facts).
ansible all -m setup --tree /tmp/facts
# ansible all -m setup --tree /tmp/facts
# Display only facts regarding memory found by ansible on all hosts and output them.
ansible all -m setup -a 'filter=ansible_*_mb'
# ansible all -m setup -a 'filter=ansible_*_mb'
# Display only facts returned by facter.
ansible all -m setup -a 'filter=facter_*'
# ansible all -m setup -a 'filter=facter_*'
# Display only facts about certain interfaces.
ansible all -m setup -a 'filter=ansible_eth[0-2]'
# ansible all -m setup -a 'filter=ansible_eth[0-2]'
# Restrict additional gathered facts to network and virtual.
ansible all -m setup -a 'gather_subset=network,virtual'
# ansible all -m setup -a 'gather_subset=network,virtual'
# Do not call puppet facter or ohai even if present.
ansible all -m setup -a 'gather_subset=!facter,!ohai'
# ansible all -m setup -a 'gather_subset=!facter,!ohai'
# Only collect the minimum amount of facts:
ansible all -m setup -a 'gather_subset=!all'
# ansible all -m setup -a 'gather_subset=!all'
# Display facts from Windows hosts with custom facts stored in C(C:\\custom_facts).
ansible windows -m setup -a "fact_path='c:\\custom_facts'"
# ansible windows -m setup -a "fact_path='c:\\custom_facts'"
"""

View file

@ -130,42 +130,42 @@ EXAMPLES = '''
# General explanation, starting with an example folder structure for a project:
root:
releases:
- 20140415234508
- 20140415235146
- 20140416082818
shared:
- sessions
- uploads
current: -> releases/20140416082818
# root:
# releases:
# - 20140415234508
# - 20140415235146
# - 20140416082818
#
# shared:
# - sessions
# - uploads
#
# current: releases/20140416082818
The 'releases' folder holds all the available releases. A release is a complete build of the application being
deployed. This can be a clone of a repository for example, or a sync of a local folder on your filesystem.
Having timestamped folders is one way of having distinct releases, but you could choose your own strategy like
git tags or commit hashes.
During a deploy, a new folder should be created in the releases folder and any build steps required should be
performed. Once the new build is ready, the deploy procedure is 'finalized' by replacing the 'current' symlink
with a link to this build.
The 'shared' folder holds any resource that is shared between releases. Examples of this are web-server
session files, or files uploaded by users of your application. It's quite common to have symlinks from a release
folder pointing to a shared/subfolder, and creating these links would be automated as part of the build steps.
The 'current' symlink points to one of the releases. Probably the latest one, unless a deploy is in progress.
The web-server's root for the project will go through this symlink, so the 'downtime' when switching to a new
release is reduced to the time it takes to switch the link.
To distinguish between successful builds and unfinished ones, a file can be placed in the folder of the release
that is currently in progress. The existence of this file will mark it as unfinished, and allow an automated
procedure to remove it during cleanup.
# The 'releases' folder holds all the available releases. A release is a complete build of the application being
# deployed. This can be a clone of a repository for example, or a sync of a local folder on your filesystem.
# Having timestamped folders is one way of having distinct releases, but you could choose your own strategy like
# git tags or commit hashes.
#
# During a deploy, a new folder should be created in the releases folder and any build steps required should be
# performed. Once the new build is ready, the deploy procedure is 'finalized' by replacing the 'current' symlink
# with a link to this build.
#
# The 'shared' folder holds any resource that is shared between releases. Examples of this are web-server
# session files, or files uploaded by users of your application. It's quite common to have symlinks from a release
# folder pointing to a shared/subfolder, and creating these links would be automated as part of the build steps.
#
# The 'current' symlink points to one of the releases. Probably the latest one, unless a deploy is in progress.
# The web-server's root for the project will go through this symlink, so the 'downtime' when switching to a new
# release is reduced to the time it takes to switch the link.
#
# To distinguish between successful builds and unfinished ones, a file can be placed in the folder of the release
# that is currently in progress. The existence of this file will mark it as unfinished, and allow an automated
# procedure to remove it during cleanup.
# Typical usage:
# Typical usage
- name: Initialize the deploy root and gather facts
deploy_helper:
path: /path/to/root

View file

@ -61,7 +61,7 @@ notes:
- The ejabberd configuration file must include mod_admin_extra as a module.
'''
EXAMPLES = '''
Example playbook entries using the ejabberd_user module to manage users state.
# Example playbook entries using the ejabberd_user module to manage users state.
- name: create a user if it does not exists
ejabberd_user:

View file

@ -129,6 +129,7 @@ EXAMPLES = r'''
# Remove previously added rule for IIS_IUSRS
- name: Remove FullControl AccessRule for IIS_IUSRS
win_acl:
path: C:\inetpub\wwwroot\MySite
user: IIS_IUSRS
rights: FullControl
@ -139,6 +140,7 @@ EXAMPLES = r'''
# Deny Intern
- name: Deny Deny
win_acl:
path: C:\Administrator\Documents
user: Intern
rights: Read,Write,Modify,FullControl,Delete

View file

@ -149,7 +149,7 @@ EXAMPLES = r'''
# Find files in path based on regex pattern
- win_find:
paths: D:\temp
patterns: "out_\d{8}-\d{6}.log"
patterns: 'out_\d{8}-\d{6}.log'
# Find files older than 1 day
- win_find:

View file

@ -113,7 +113,7 @@ EXAMPLES = r'''
# Specify multiple non-zero return codes when successful
# In this case we can say that both 0 (SUCCESSFUL) and 3010 (REBOOT REQUIRED) codes are acceptable
- name: 'Microsoft .NET Framework 4.5.1'
- name: 'Microsoft .NET Framework 4.5.1'
win_package:
path: https://download.microsoft.com/download/1/6/7/167F0D79-9317-48AE-AEDB-17120579F8E2/NDP451-KB2858728-x86-x64-AllOS-ENU.exe
productid: '{7DEBE4EB-6B40-3766-BB35-5CBBC385DA37}'

View file

@ -75,11 +75,11 @@ EXAMPLES = r'''
- name: Ensure that system32 and Powershell are present on the global system path, and in the specified order
win_path:
elements:
- %SystemRoot%\system32
- %SystemRoot%\system32\WindowsPowerShell\v1.0
- '%SystemRoot%\system32'
- '%SystemRoot%\system32\WindowsPowerShell\v1.0'
- name: Ensure that C:\Program Files\MyJavaThing is not on the current user's CLASSPATH
win_path
win_path:
name: CLASSPATH
elements: C:\Program Files\MyJavaThing
scope: user

View file

@ -42,7 +42,7 @@ author: "Chris Church (@cchurch)"
EXAMPLES = r'''
# Test connectivity to a windows host
ansible winserver -m win_ping
# ansible winserver -m win_ping
# Example from an Ansible Playbook
- win_ping:

View file

@ -89,7 +89,6 @@ EXAMPLES = r'''
creates: C:\Users\Phil\OldLogs
# This playbook example unzips a .zip file and recursively decompresses the contained .gz files and removes all unneeded compressed files after completion.
---
- name: Unzip ApplicationLogs.zip and decompress all GZipped log files
hosts: all
gather_facts: false
@ -102,14 +101,14 @@ EXAMPLES = r'''
rm: true
# Install PSCX to use for extracting a gz file
- name: Grab PSCX msi
- name: Grab PSCX msi
win_get_url:
url: http://download-codeplex.sec.s-msft.com/Download/Release?ProjectName=pscx&DownloadId=923562&FileTime=130585918034470000&Build=20959
dest: C:\pscx.msi
- name: Install PSCX
- name: Install PSCX
win_msi:
path: C:\pscx.msi
- name: Unzip gz log
- name: Unzip gz log
win_unzip:
src: C:\Logs\application-error-logs.gz
dest: C:\ExtractedLogs\application-error-logs

View file

@ -71,12 +71,20 @@ class CaptureStd():
return self.stdout.getvalue(), self.stderr.getvalue()
def parse_yaml(value, lineno, module, name):
def parse_yaml(value, lineno, module, name, load_all=False):
traces = []
errors = []
data = None
if load_all:
loader = yaml.safe_load_all
else:
loader = yaml.safe_load
try:
data = yaml.safe_load(value)
data = loader(value)
if load_all:
data = list(data)
except yaml.MarkedYAMLError as e:
e.problem_mark.line += lineno - 1
e.problem_mark.name = '%s.%s' % (module, name)

View file

@ -471,6 +471,12 @@ class ModuleValidator(Validator):
if not bool(doc_info['EXAMPLES']['value']):
self.errors.append('No EXAMPLES provided')
else:
_, errors, traces = parse_yaml(doc_info['EXAMPLES']['value'],
doc_info['EXAMPLES']['lineno'],
self.name, 'EXAMPLES', load_all=True)
self.errors.extend(errors)
self.traces.extend(traces)
if not bool(doc_info['RETURN']['value']):
if self._is_new_module():