#compdef ansible # ------------------------------------------------------------------------------ # Copyright (c) 2011 Github zsh-users - http://github.com/zsh-users # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the name of the zsh-users nor the # names of its contributors may be used to endorse or promote products # derived from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE # DISCLAIMED. IN NO EVENT SHALL ZSH-USERS BE LIABLE FOR ANY # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # ------------------------------------------------------------------------------ # Description # ----------- # # Completion script for ansible v2.0.0.2 (http://ansible.org) # # ------------------------------------------------------------------------------ # Authors # ------- # # * Romain Bossart (https://github.com/bosr) # * Adam Stevko (https://github.com/xen0l) # # ------------------------------------------------------------------------------ # # Needs either ANSIBLE_HOSTS or /etc/ansible/hosts on linux # (or /usr/local/etc/ansible/hosts on OSX) # # Note 1: the following gist (https://gist.github.com/15ed54a438a36d67fd99.git) # has some files to help improve the hostfile shell parsing # # Note 2: I tried to use `_arguments --`, but the output of `ansible --help` # is not parsed entirely correctly, and anyway no modules or host would available. # # ansible zsh completion # __host_file_location () { # find the location of the host file: # 1. check $ANSIBLE_HOSTS # 2. else check /etc/ansible/hosts or /usr/local/etc/... # (depending on platform) # [[ "$OSTYPE" == darwin* ]] && FALLBACK="/usr/local/etc/ansible/hosts" [[ "$OSTYPE" == linux* ]] && FALLBACK="/etc/ansible/hosts" HOST_FILE=${ANSIBLE_HOSTS:=${FALLBACK}} [[ -f ${HOST_FILE} ]] || HOST_FILE="$PWD/ansible/inventory/hosts" [[ -f ${HOST_FILE} ]] || HOST_FILE=/dev/null echo ${HOST_FILE} } __ll_group_list () { # parses the ini hostfile for groups only: [...] HOST_FILE=$(__host_file_location) local -a group_list group_list=$(command \ cat ${HOST_FILE} \ | awk '$1 ~ /^\[.*\]$/ && !/=/ && !/:vars/ \ { gsub(/[\[\]]/, "", $1); gsub(/:children/, "", $1) ; print $1 }' \ | uniq ) echo ${group_list} } __host_list () { # parses the ini hostfile for hosts only # but then has to remove all group occurrences HOST_FILE=$(__host_file_location) # this will also contain groups if they are referenced in other groups local -a mixed_host_list mixed_host_list=$(command \ cat ${HOST_FILE} \ | awk 'NF && $1 !~ /^[[:space:]]*#|[\[:=]/ { print $1 }' \ | sort | uniq) # compute set difference h1 - h2 local -a h1 h2 host_list h1=${mixed_host_list} h2=$(__ll_group_list) host_list=($(command \ sort <(echo $h1) <(echo $h2) <(echo $h2) \ | uniq -u \ | paste -s -d ' ' - ) ) _wanted application expl 'hosts' compadd ${host_list} # method that delegates to ansible (slow) # _wanted application expl 'hosts' compadd $(command ansible \ # all --list-hosts\ # 2>/dev/null) } __group_list () { gl=($(command echo $(__ll_group_list) | paste -s -d ' ' - )) # 'a\nb\nc' -> (a b c) _wanted application2 expl 'groups' compadd $gl } _modules=( 'a10_server:Manage A10 Networks AX/SoftAX/Thunder/vThunder devices' 'a10_service_group:Manage A10 Networks devices’ service groups' 'a10_virtual_server:Manage A10 Networks devices’ virtual servers' 'accelerate:Enable accelerated mode on remote node' 'acl:Sets and retrieves file ACL information.' 'add_host:add a host (and alternatively a group) to the ansible-playbook in-memory inventory' 'airbrake_deployment:Notify airbrake about app deployments' 'alternatives:Manages alternative programs for common commands' 'apache2_module:enables/disables a module of the Apache2 webserver' 'apk:Manages apk packages' 'apt:Manages apt-packages' 'apt_key:Add or remove an apt key' 'apt_repository:Add and remove APT repositories' 'apt_rpm:apt_rpm package manager' 'assemble:Assembles a configuration file from fragments' 'assert:Fail with custom message' 'async_status:Obtain status of asynchronous task' 'at:Schedule the execution of a command or script file via the at command.' 'authorized_key:Adds or removes an SSH authorized key' 'azure:create or terminate a virtual machine in azure' 'bigip_facts:Collect facts from F5 BIG-IP devices' 'bigip_gtm_wide_ip:Manages F5 BIG-IP GTM wide ip' 'bigip_monitor_http:Manages F5 BIG-IP LTM http monitors' 'bigip_monitor_tcp:Manages F5 BIG-IP LTM tcp monitors' 'bigip_node:Manages F5 BIG-IP LTM nodes' 'bigip_pool:Manages F5 BIG-IP LTM pools' 'bigip_pool_member:Manages F5 BIG-IP LTM pool members' 'bigip_virtual_server:Manages F5 BIG-IP LTM virtual servers' 'bigpanda:Notify BigPanda about deployments' 'blockinfile:Insert/update/remove a text block surrounded by marker lines.' 'boundary_meter:Manage boundary meters' 'bower:Manage bower packages with bower' 'bundler:Manage Ruby Gem dependencies with Bundler' 'bzr:Deploy software (or files) from bzr branches' 'campfire:Send a message to Campfire' 'capabilities:Manage Linux capabilities' 'circonus_annotation:create an annotation in circonus' 'cl_bond:Configures a bond port on Cumulus Linux' 'cl_bridge:Configures a bridge port on Cumulus Linux' 'cl_img_install:Install a different Cumulus Linux version.' 'cl_interface:Configures a front panel port, loopback or management port on Cumulus Linux.' 'cl_interface_policy:Configure interface enforcement policy on Cumulus Linux' 'cl_license:Install Cumulus Linux license' 'cl_ports:Configure Cumulus Switch port attributes (ports.conf)' 'clc_aa_policy:Create or Delete Anti Affinity Policies at CenturyLink Cloud.' 'clc_alert_policy:Create or Delete Alert Policies at CenturyLink Cloud.' 'clc_blueprint_package:deploys a blue print package on a set of servers in CenturyLink Cloud.' 'clc_firewall_policy:Create/delete/update firewall policies' 'clc_group:Create/delete Server Groups at Centurylink Cloud' 'clc_loadbalancer:Create, Delete shared loadbalancers in CenturyLink Cloud.' 'clc_modify_server:modify servers in CenturyLink Cloud.' 'clc_publicip:Add and Delete public ips on servers in CenturyLink Cloud.' 'clc_server:Create, Delete, Start and Stop servers in CenturyLink Cloud.' 'clc_server_snapshot:Create, Delete and Restore server snapshots in CenturyLink Cloud.' 'cloudflare_dns:manage Cloudflare DNS records' 'cloudformation:Create or delete an AWS CloudFormation stack' 'cloudtrail:manage CloudTrail creation and deletion' 'command:Executes a command on a remote node' 'composer:Dependency Manager for PHP' 'consul:Add, modify & delete services within a consul cluster.' 'consul_acl:manipulate consul acl keys and rules' 'consul_kv:Manipulate entries in the key/value store of a consul cluster.' 'consul_session:manipulate consul sessions' 'copy:Copies files to remote locations.' 'cpanm:Manages Perl library dependencies.' 'cron:Manage cron.d and crontab entries.' 'cronvar:Manage variables in crontabs' 'crypttab:Encrypted Linux block devices' 'cs_account:Manages accounts on Apache CloudStack based clouds.' 'cs_affinitygroup:Manages affinity groups on Apache CloudStack based clouds.' 'cs_cluster:Manages host clusters on Apache CloudStack based clouds.' 'cs_configuration:Manages configuration on Apache CloudStack based clouds.' 'cs_domain:Manages domains on Apache CloudStack based clouds.' 'cs_facts:Gather facts on instances of Apache CloudStack based clouds.' 'cs_firewall:Manages firewall rules on Apache CloudStack based clouds.' 'cs_instance:Manages instances and virtual machines on Apache CloudStack based clouds.' 'cs_instance_facts:Gathering facts from the API of instances from Apache CloudStack based clouds.' 'cs_instancegroup:Manages instance groups on Apache CloudStack based clouds.' 'cs_ip_address:Manages public IP address associations on Apache CloudStack based clouds.' 'cs_iso:Manages ISO images on Apache CloudStack based clouds.' 'cs_loadbalancer_rule:Manages load balancer rules on Apache CloudStack based clouds.' 'cs_loadbalancer_rule_member:Manages load balancer rule members on Apache CloudStack based clouds.' 'cs_network:Manages networks on Apache CloudStack based clouds.' 'cs_pod:Manages pods on Apache CloudStack based clouds.' 'cs_portforward:Manages port forwarding rules on Apache CloudStack based clouds.' 'cs_project:Manages projects on Apache CloudStack based clouds.' 'cs_resourcelimit:Manages resource limits on Apache CloudStack based clouds.' 'cs_securitygroup:Manages security groups on Apache CloudStack based clouds.' 'cs_securitygroup_rule:Manages security group rules on Apache CloudStack based clouds.' 'cs_sshkeypair:Manages SSH keys on Apache CloudStack based clouds.' 'cs_staticnat:Manages static NATs on Apache CloudStack based clouds.' 'cs_template:Manages templates on Apache CloudStack based clouds.' 'cs_user:Manages users on Apache CloudStack based clouds.' 'cs_vmsnapshot:Manages VM snapshots on Apache CloudStack based clouds.' 'cs_volume:Manages volumes on Apache CloudStack based clouds.' 'cs_zone:Manages zones on Apache CloudStack based clouds.' 'cs_zone_facts:Gathering facts of zones from Apache CloudStack based clouds.' 'datadog_event:Posts events to DataDog service' 'datadog_monitor:Manages Datadog monitors' 'debconf:Configure a .deb package' 'debug:Print statements during execution' 'deploy_helper:Manages some of the steps common in deploying projects.' 'digital_ocean:Create/delete a droplet/SSH_key in DigitalOcean' 'digital_ocean_domain:Create/delete a DNS record in DigitalOcean' 'digital_ocean_sshkey:Create/delete an SSH key in DigitalOcean' 'django_manage:Manages a Django application.' 'dnf:Manages packages with the *dnf* package manager' 'dnsimple:Interface with dnsimple.com (a DNS hosting service).' 'dnsmadeeasy:Interface with dnsmadeeasy.com (a DNS hosting service).' 'docker:manage docker containers' 'docker_image:manage docker images' 'docker_login:Manage Docker registry logins' 'dpkg_selections:Dpkg package selection selections' 'dynamodb_table:Create, update or delete AWS Dynamo DB tables.' 'easy_install:Installs Python libraries' 'ec2:create, terminate, start or stop an instance in ec2' 'ec2_ami:create or destroy an image in ec2' 'ec2_ami_copy:copies AMI between AWS regions, return new image id' 'ec2_ami_find:Searches for AMIs to obtain the AMI ID and other information' 'ec2_ami_search(D):Retrieve AWS AMI information for a given operating system.' 'ec2_asg:Create or delete AWS Autoscaling Groups' 'ec2_eip:associate an EC2 elastic IP with an instance.' 'ec2_elb:De-registers or registers instances from EC2 ELBs' 'ec2_elb_facts:Gather facts about EC2 Elastic Load Balancers in AWS' 'ec2_elb_lb:Creates or destroys Amazon ELB.' 'ec2_eni:Create and optionally attach an Elastic Network Interface (ENI) to an instance' 'ec2_eni_facts:Gather facts about ec2 ENI interfaces in AWS' 'ec2_facts:Gathers facts about remote hosts within ec2 (aws)' 'ec2_group:maintain an ec2 VPC security group.' 'ec2_key:maintain an ec2 key pair.' 'ec2_lc:Create or delete AWS Autoscaling Launch Configurations' 'ec2_metric_alarm:Create/update or delete AWS Cloudwatch ‘metric alarms’' 'ec2_remote_facts:Gather facts about ec2 instances in AWS' 'ec2_scaling_policy:Create or delete AWS scaling policies for Autoscaling groups' 'ec2_snapshot:creates a snapshot from an existing volume' 'ec2_tag:create and remove tag(s) to ec2 resources.' 'ec2_vol:create and attach a volume, return volume id and device map' 'ec2_vol_facts:Gather facts about ec2 volumes in AWS' 'ec2_vpc:configure AWS virtual private clouds' 'ec2_vpc_dhcp_options:Manages DHCP Options, and can ensure the DHCP options for the given VPC match what’s requested' 'ec2_vpc_igw:Manage an AWS VPC Internet gateway' 'ec2_vpc_net:Configure AWS virtual private clouds' 'ec2_vpc_net_facts:Gather facts about ec2 VPCs in AWS' 'ec2_vpc_route_table:Manage route tables for AWS virtual private clouds' 'ec2_vpc_route_table_facts:Gather facts about ec2 VPC route tables in AWS' 'ec2_vpc_subnet:Manage subnets in AWS virtual private clouds' 'ec2_vpc_subnet_facts:Gather facts about ec2 VPC subnets in AWS' 'ec2_win_password:gets the default administrator password for ec2 windows instances' 'ecs_cluster:create or terminate ecs clusters' 'ecs_service:create, terminate, start or stop a service in ecs' 'ecs_service_facts:list or describe services in ecs' 'ecs_task:run, start or stop a task in ecs' 'ecs_taskdefinition:register a task definition in ecs' 'ejabberd_user:Manages users for ejabberd servers' 'elasticache:Manage cache clusters in Amazon Elasticache.' 'elasticache_subnet_group:manage Elasticache subnet groups' 'elasticsearch_plugin:Manage Elasticsearch plugins' 'eos_command:Run arbitrary command on EOS device' 'eos_config:Manage Arista EOS configuration sections' 'eos_eapi:Manage and configure EAPI. Requires EOS v4.12 or greater.' 'eos_template:Manage Arista EOS device configurations' 'expect:Executes a command and responds to prompts' 'facter:Runs the discovery program *facter* on the remote system' 'fail:Fail with custom message' 'fetch:Fetches a file from remote nodes' 'file:Sets attributes of files' 'filesystem:Makes file system on block device' 'find:return a list of files based on specific criteria' 'fireball(D):Enable fireball mode on remote node' 'firewalld:Manage arbitrary ports/services with firewalld' 'flowdock:Send a message to a flowdock' 'gc_storage:This module manages objects/buckets in Google Cloud Storage.' 'gce:create or terminate GCE instances' 'gce_img:utilize GCE image resources' 'gce_lb:create/destroy GCE load-balancer resources' 'gce_net:create/destroy GCE networks and firewall rules' 'gce_pd:utilize GCE persistent disk resources' 'gce_tag:add or remove tag(s) to/from GCE instance' 'gem:Manage Ruby gems' 'get_url:Downloads files from HTTP, HTTPS, or FTP to node' 'getent:a wrapper to the unix getent utility' 'git:Deploy software (or files) from git checkouts' 'github_hooks:Manages github service hooks.' 'glance_image(D):Add/Delete images from glance' 'gluster_volume:Manage GlusterFS volumes' 'group:Add or remove groups' 'group_by:Create Ansible groups based on facts' 'grove:Sends a notification to a grove.io channel' 'hall:Send notification to Hall' 'haproxy:Enable, disable, and set weights for HAProxy backend servers using socket commands.' 'hg:Manages Mercurial (hg) repositories.' 'hipchat:Send a message to hipchat.' 'homebrew:Package manager for Homebrew' 'homebrew_cask:Install/uninstall homebrew casks.' 'homebrew_tap:Tap a Homebrew repository.' 'hostname:Manage hostname' 'htpasswd:manage user files for basic authentication' 'iam:Manage IAM users, groups, roles and keys' 'iam_cert:Manage server certificates for use on ELBs and CloudFront' 'iam_policy:Manage IAM policies for users, groups, and roles' 'include_vars:Load variables from files, dynamically within a task.' 'ini_file:Tweak settings in INI files' 'ios_command:Run arbitrary commands on ios devices.' 'ios_config:Manage Cisco IOS configuration sections' 'ios_template:Manage Cisco IOS device configurations over SSH' 'iosxr_command:Run arbitrary commands on ios devices.' 'iosxr_config:Manage Cisco IOS XR configuration sections' 'iosxr_template:Manage Cisco IOS device configurations over SSH' 'ipify_facts:Retrieve the public IP of your internet gateway.' 'iptables:Modify the systems iptables' 'irc:Send a message to an IRC channel' 'jabber:Send a message to jabber user or chat room' 'jboss:deploy applications to JBoss' 'jira:create and modify issues in a JIRA instance' 'junos_command:Execute arbitrary commands on Juniper JUNOS devices' 'junos_config:Manage Juniper JUNOS configuration sections' 'junos_template:Manage Juniper JUNOS device configurations' 'kernel_blacklist:Blacklist kernel modules' 'keystone_user(D):Manage OpenStack Identity (keystone) users, tenants and roles' 'known_hosts:Add or remove a host from the ``known_hosts`` file' 'layman:Manage Gentoo overlays' 'librato_annotation:create an annotation in librato' 'lineinfile:Ensure a particular line is in a file, or replace an existing line using a back-referenced regular expression.' 'linode:create / delete / stop / restart an instance in Linode Public Cloud' 'lldp:get details reported by lldp' 'locale_gen:Creates or removes locales.' 'logentries:Module for tracking logs via logentries.com' 'lvg:Configure LVM volume groups' 'lvol:Configure LVM logical volumes' 'lxc_container:Manage LXC Containers' 'macports:Package manager for MacPorts' 'mail:Send an email' 'maven_artifact:Downloads an Artifact from a Maven Repository' 'modprobe:Add or remove kernel modules' 'mongodb_user:Adds or removes a user from a MongoDB database.' 'monit:Manage the state of a program monitored via Monit' 'mount:Control active and configured mount points' 'mqtt:Publish a message on an MQTT topic for the IoT' 'mysql_db:Add or remove MySQL databases from a remote host.' 'mysql_replication:Manage MySQL replication' 'mysql_user:Adds or removes a user from a MySQL database.' 'mysql_variables:Manage MySQL global variables' 'nagios:Perform common tasks in Nagios related to downtime and notifications.' 'netscaler:Manages Citrix NetScaler entities' 'newrelic_deployment:Notify newrelic about app deployments' 'nexmo:Send a SMS via nexmo' 'nmcli:Manage Networking' 'nova_compute(D):Create/Delete VMs from OpenStack' 'nova_keypair(D):Add/Delete key pair from nova' 'npm:Manage node.js packages with npm' 'nxos_command:Run arbitrary command on Cisco NXOS devices' 'nxos_config:Manage Cisco NXOS configuration sections' 'nxos_nxapi:Manage NXAPI configuration on an NXOS device.' 'nxos_template:Manage Cisco NXOS device configurations' 'ohai:Returns inventory data from *Ohai*' 'open_iscsi:Manage iscsi targets with open-iscsi' 'openbsd_pkg:Manage packages on OpenBSD.' 'openvswitch_bridge:Manage Open vSwitch bridges' 'openvswitch_db:Configure open vswitch database.' 'openvswitch_port:Manage Open vSwitch ports' 'opkg:Package manager for OpenWrt' 'ops_command:Run arbitrary commands on OpenSwitch devices.' 'ops_config:Manage OpenSwitch configuration using CLI' 'ops_template:Push configuration to OpenSwitch' 'os_auth:Retrieve an auth token' 'os_client_config:Get OpenStack Client config' 'os_flavor_facts:Retrieve facts about one or more flavors' 'os_floating_ip:Add/Remove floating IP from an instance' 'os_group:Manage OpenStack Identity Groups' 'os_image:Add/Delete images from OpenStack Cloud' 'os_image_facts:Retrieve facts about an image within OpenStack.' 'os_ironic:Create/Delete Bare Metal Resources from OpenStack' 'os_ironic_node:Activate/Deactivate Bare Metal Resources from OpenStack' 'os_keypair:Add/Delete a keypair from OpenStack' 'os_keystone_domain:Manage OpenStack Identity Domains' 'os_keystone_role:Manage OpenStack Identity Roles' 'os_network:Creates/removes networks from OpenStack' 'os_networks_facts:Retrieve facts about one or more OpenStack networks.' 'os_nova_flavor:Manage OpenStack compute flavors' 'os_object:Create or Delete objects and containers from OpenStack' 'os_port:Add/Update/Delete ports from an OpenStack cloud.' 'os_project:Manage OpenStack Projects' 'os_router:Create or delete routers from OpenStack' 'os_security_group:Add/Delete security groups from an OpenStack cloud.' 'os_security_group_rule:Add/Delete rule from an existing security group' 'os_server:Create/Delete Compute Instances from OpenStack' 'os_server_actions:Perform actions on Compute Instances from OpenStack' 'os_server_facts:Retrieve facts about one or more compute instances' 'os_server_volume:Attach/Detach Volumes from OpenStack VM’s' 'os_subnet:Add/Remove subnet to an OpenStack network' 'os_subnets_facts:Retrieve facts about one or more OpenStack subnets.' 'os_user:Manage OpenStack Identity Users' 'os_user_group:Associate OpenStack Identity users and groups' 'os_volume:Create/Delete Cinder Volumes' 'osx_defaults:osx_defaults allows users to read, write, and delete Mac OS X user defaults from Ansible' 'osx_say:Makes an OSX computer to speak.' 'ovirt:oVirt/RHEV platform management' 'package:Generic OS package manager' 'pacman:Manage packages with *pacman*' 'pagerduty:Create PagerDuty maintenance windows' 'pagerduty_alert:Trigger, acknowledge or resolve PagerDuty incidents' 'pam_limits:Modify Linux PAM limits' 'patch:Apply patch files using the GNU patch tool.' 'pause:Pause playbook execution' 'pear:Manage pear/pecl packages' 'ping:Try to connect to host, verify a usable python and return ``pong`` on success.' 'pingdom:Pause/unpause Pingdom alerts' 'pip:Manages Python library dependencies.' 'pkg5:Manages packages with the Solaris 11 Image Packaging System' 'pkg5_publisher:Manages Solaris 11 Image Packaging System publishers' 'pkgin:Package manager for SmartOS, NetBSD, et al.' 'pkgng:Package manager for FreeBSD >= 9.0' 'pkgutil:Manage CSW-Packages on Solaris' 'portage:Package manager for Gentoo' 'portinstall:Installing packages from FreeBSD’s ports system' 'postgresql_db:Add or remove PostgreSQL databases from a remote host.' 'postgresql_ext:Add or remove PostgreSQL extensions from a database.' 'postgresql_lang:Adds, removes or changes procedural languages with a PostgreSQL database.' 'postgresql_privs:Grant or revoke privileges on PostgreSQL database objects.' 'postgresql_user:Adds or removes a users (roles) from a PostgreSQL database.' 'profitbricks:Create, destroy, start, stop, and reboot a ProfitBricks virtual machine.' 'profitbricks_datacenter:Create or destroy a ProfitBricks Virtual Datacenter.' 'profitbricks_nic:Create or Remove a NIC.' 'profitbricks_volume:Create or destroy a volume.' 'profitbricks_volume_attachments:Attach or detach a volume.' 'proxmox:management of instances in Proxmox VE cluster' 'proxmox_template:management of OS templates in Proxmox VE cluster' 'puppet:Runs puppet' 'pushbullet:Sends notifications to Pushbullet' 'pushover:Send notifications via https' 'quantum_floating_ip(D):Add/Remove floating IP from an instance' 'quantum_floating_ip_associate(D):Associate or disassociate a particular floating IP with an instance' 'quantum_network(D):Creates/Removes networks from OpenStack' 'quantum_router(D):Create or Remove router from openstack' 'quantum_router_gateway(D):set/unset a gateway interface for the router with the specified external network' 'quantum_router_interface(D):Attach/Dettach a subnet’s interface to a router' 'quantum_subnet(D):Add/remove subnet from a network' 'rabbitmq_binding:This module manages rabbitMQ bindings' 'rabbitmq_exchange:This module manages rabbitMQ exchanges' 'rabbitmq_parameter:Adds or removes parameters to RabbitMQ' 'rabbitmq_plugin:Adds or removes plugins to RabbitMQ' 'rabbitmq_policy:Manage the state of policies in RabbitMQ.' 'rabbitmq_queue:This module manages rabbitMQ queues' 'rabbitmq_user:Adds or removes users to RabbitMQ' 'rabbitmq_vhost:Manage the state of a virtual host in RabbitMQ' 'raw:Executes a low-down and dirty SSH command' 'rax:create / delete an instance in Rackspace Public Cloud' 'rax_cbs:Manipulate Rackspace Cloud Block Storage Volumes' 'rax_cbs_attachments:Manipulate Rackspace Cloud Block Storage Volume Attachments' 'rax_cdb:create/delete or resize a Rackspace Cloud Databases instance' 'rax_cdb_database:create / delete a database in the Cloud Databases' 'rax_cdb_user:create / delete a Rackspace Cloud Database' 'rax_clb:create / delete a load balancer in Rackspace Public Cloud' 'rax_clb_nodes:add, modify and remove nodes from a Rackspace Cloud Load Balancer' 'rax_clb_ssl:Manage SSL termination for a Rackspace Cloud Load Balancer.' 'rax_dns:Manage domains on Rackspace Cloud DNS' 'rax_dns_record:Manage DNS records on Rackspace Cloud DNS' 'rax_facts:Gather facts for Rackspace Cloud Servers' 'rax_files:Manipulate Rackspace Cloud Files Containers' 'rax_files_objects:Upload, download, and delete objects in Rackspace Cloud Files' 'rax_identity:Load Rackspace Cloud Identity' 'rax_keypair:Create a keypair for use with Rackspace Cloud Servers' 'rax_meta:Manipulate metadata for Rackspace Cloud Servers' 'rax_mon_alarm:Create or delete a Rackspace Cloud Monitoring alarm.' 'rax_mon_check:Create or delete a Rackspace Cloud Monitoring check for an existing entity.' 'rax_mon_entity:Create or delete a Rackspace Cloud Monitoring entity' 'rax_mon_notification:Create or delete a Rackspace Cloud Monitoring notification.' 'rax_mon_notification_plan:Create or delete a Rackspace Cloud Monitoring notification plan.' 'rax_network:create / delete an isolated network in Rackspace Public Cloud' 'rax_queue:create / delete a queue in Rackspace Public Cloud' 'rax_scaling_group:Manipulate Rackspace Cloud Autoscale Groups' 'rax_scaling_policy:Manipulate Rackspace Cloud Autoscale Scaling Policy' 'rds:create, delete, or modify an Amazon rds instance' 'rds_param_group:manage RDS parameter groups' 'rds_subnet_group:manage RDS database subnet groups' 'redhat_subscription:Manage Red Hat Network registration and subscriptions using the ``subscription-manager`` command' 'redis:Various redis commands, slave and flush' 'replace:Replace all instances of a particular string in a file using a back-referenced regular expression.' 'rhn_channel:Adds or removes Red Hat software channels' 'rhn_register:Manage Red Hat Network registration using the ``rhnreg_ks`` command' 'riak:This module handles some common Riak operations' 'rollbar_deployment:Notify Rollbar about app deployments' 'route53:add or delete entries in Amazons Route53 DNS service' 'route53_facts:Retrieves route53 details using AWS methods' 'route53_health_check:add or delete health-checks in Amazons Route53 DNS service' 'route53_zone:add or delete Route53 zones' 'rpm_key:Adds or removes a gpg key from the rpm db' 's3:manage objects in S3.' 's3_bucket:Manage s3 buckets in AWS' 's3_lifecycle:Manage s3 bucket lifecycle rules in AWS' 's3_logging:Manage logging facility of an s3 bucket in AWS' 'script:Runs a local script on a remote node after transferring it' 'seboolean:Toggles SELinux booleans.' 'selinux:Change policy and state of SELinux' 'selinux_permissive:Change permissive domain in SELinux policy' 'sendgrid:Sends an email with the SendGrid API' 'sensu_check:Manage Sensu checks' 'seport:Manages SELinux network port type definitions' 'service:Manage services.' 'set_fact:Set host facts from a task' 'setup:Gathers facts about remote hosts' 'shell:Execute commands in nodes.' 'slack:Send Slack notifications' 'slackpkg:Package manager for Slackware >= 12.2' 'slurp:Slurps a file from remote nodes' 'snmp_facts:Retrieve facts for a device using SNMP.' 'sns:Send Amazon Simple Notification Service (SNS) messages' 'sns_topic:Manages AWS SNS topics and subscriptions' 'solaris_zone:Manage Solaris zones' 'sqs_queue:Creates or deletes AWS SQS queues.' 'stackdriver:Send code deploy and annotation events to stackdriver' 'stat:retrieve file or file system status' 'sts_assume_role:Assume a role using AWS Security Token Service and obtain temporary credentials' 'subversion:Deploys a subversion repository.' 'supervisorctl:Manage the state of a program or group of programs running via supervisord' 'svc:Manage daemontools services.' 'svr4pkg:Manage Solaris SVR4 packages' 'swdepot:Manage packages with swdepot package manager (HP-UX)' 'synchronize:Uses rsync to make synchronizing file paths in your playbooks quick and easy.' 'sysctl:Manage entries in sysctl.conf.' 'taiga_issue:Creates/deletes an issue in a Taiga Project Management Platform' 'template:Templates a file out to a remote server.' 'twilio:Sends a text message to a mobile phone through Twilio.' 'typetalk:Send a message to typetalk' 'ufw:Manage firewall with UFW' 'unarchive:Unpacks an archive after (optionally) copying it from the local machine.' 'uptimerobot:Pause and start Uptime Robot monitoring' 'uri:Interacts with webservices' 'urpmi:Urpmi manager' 'user:Manage user accounts' 'vca_fw:add remove firewall rules in a gateway in a vca' 'vca_nat:add remove nat rules in a gateway in a vca' 'vca_vapp:Manages vCloud Air vApp instances.' 'vertica_configuration:Updates Vertica configuration parameters.' 'vertica_facts:Gathers Vertica database facts.' 'vertica_role:Adds or removes Vertica database roles and assigns roles to them.' 'vertica_schema:Adds or removes Vertica database schema and roles.' 'vertica_user:Adds or removes Vertica database users and assigns roles.' 'virt:Manages virtual machines supported by libvirt' 'virt_net:Manage libvirt network configuration' 'virt_pool:Manage libvirt storage pools' 'vmware_cluster:Create VMware vSphere Cluster' 'vmware_datacenter:Manage VMware vSphere Datacenters' 'vmware_dns_config:Manage VMware ESXi DNS Configuration' 'vmware_dvs_host:Add or remove a host from distributed virtual switch' 'vmware_dvs_portgroup:Create or remove a Distributed vSwitch portgroup' 'vmware_dvswitch:Create or remove a distributed vSwitch' 'vmware_host:Add/remove ESXi host to/from vCenter' 'vmware_migrate_vmk:Migrate a VMK interface from VSS to VDS' 'vmware_portgroup:Create a VMware portgroup' 'vmware_target_canonical_facts:Return canonical (NAA) from an ESXi host' 'vmware_vm_facts:Return basic facts pertaining to a vSphere virtual machine guest' 'vmware_vm_shell:Execute a process in VM' 'vmware_vm_vss_dvs_migrate:Migrates a virtual machine from a standard vswitch to distributed' 'vmware_vmkernel:Create a VMware VMkernel Interface' 'vmware_vmkernel_ip_config:Configure the VMkernel IP Address' 'vmware_vsan_cluster:Configure VSAN clustering on an ESXi host' 'vmware_vswitch:Add a VMware Standard Switch to an ESXi host' 'vsphere_copy:Copy a file to a vCenter datastore' 'vsphere_guest:Create/delete/manage a guest VM through VMware vSphere.' 'wait_for:Waits for a condition before continuing.' 'webfaction_app:Add or remove applications on a Webfaction host' 'webfaction_db:Add or remove a database on Webfaction' 'webfaction_domain:Add or remove domains and subdomains on Webfaction' 'webfaction_mailbox:Add or remove mailboxes on Webfaction' 'webfaction_site:Add or remove a website on a Webfaction host' 'win_acl:Set file/directory permissions for a system user or group.' 'win_chocolatey:Installs packages using chocolatey' 'win_copy:Copies files to remote locations on windows hosts.' 'win_dotnet_ngen:Runs ngen to recompile DLLs after .NET updates' 'win_environment:Modifies environment variables on windows hosts.' 'win_feature:Installs and uninstalls Windows Features' 'win_file:Creates, touches or removes files or directories.' 'win_file_version:Get DLL or EXE file build version' 'win_firewall_rule:Windows firewall automation' 'win_get_url:Fetches a file from a given URL' 'win_group:Add and remove local groups' 'win_iis_virtualdirectory:Configures a virtual directory in IIS.' 'win_iis_webapplication:Configures a IIS Web application.' 'win_iis_webapppool:Configures a IIS Web Application Pool.' 'win_iis_webbinding:Configures a IIS Web site.' 'win_iis_website:Configures a IIS Web site.' 'win_lineinfile:Ensure a particular line is in a file, or replace an existing line using a back-referenced regular expression.' 'win_msi:Installs and uninstalls Windows MSI files' 'win_nssm:NSSM ' 'win_package:Installs/Uninstalls a installable package, either from local file system or url' 'win_ping:A windows version of the classic ping module.' 'win_regedit:Add, Edit, or Remove Registry Keys and Values' 'win_regmerge:Merges the contents of a registry file into the windows registry' 'win_scheduled_task:Manage scheduled tasks' 'win_service:Manages Windows services' 'win_share:Manage Windows shares' 'win_stat:returns information about a Windows file' 'win_template:Templates a file out to a remote server.' 'win_timezone:Sets Windows machine timezone' 'win_unzip:Unzips compressed files and archives on the Windows node' 'win_updates:Download and install Windows updates' 'win_uri:Interacts with webservices.' 'win_user:Manages local Windows user accounts' 'win_webpicmd:Installs packages using Web Platform Installer command-line' 'xattr:set/retrieve extended attributes' 'xenserver_facts:get facts reported on xenserver' 'yum:Manages packages with the *yum* package manager' 'yum_repository:Add and remove YUM repositories' 'zabbix_group:Zabbix host groups creates/deletes' 'zabbix_host:Zabbix host creates/updates/deletes' 'zabbix_hostmacro:Zabbix host macro creates/updates/deletes' 'zabbix_maintenance:Create Zabbix maintenance windows' 'zabbix_screen:Zabbix screen creates/updates/deletes' 'zfs:Manage zfs' 'znode:Create, delete, retrieve, and update znodes using ZooKeeper.' 'zypper:Manage packages on SUSE and openSUSE' 'zypper_repository:Add and remove Zypper repositories' ) _ansible () { local curcontext="$curcontext" state line typeset -A opt_args _arguments -C -W \ '1:pattern:->pattern'\ "(-a --args)"{-a,--args}"[ARGS module arguments]:arguments:(ARG)"\ '--ask-become-pass[ask for privilege escalation password]'\ "(-k --ask-pass)"{-k,--ask-pass}"[ask for connection password]"\ '--ask-su-pass[ask for su password (deprecated, use become)]'\ "(-K --ask-sudo-pass)"{-K,--ask-sudo-pass}"[ask for sudo password (deprecated, use become)]"\ '--ask-vault-pass[ask for vault password]'\ "(-B --background)"{-B,--background}"[DURATION run asynchronously for DURATION (s)]:duration:(DURATION)"\ "(-b --become)"{-b,--become}"[run operations with become (nopasswd implied)]"\ '--become-method[privilege escalation method to use (default=sudo)]:method:(sudo su pbrun pfexec runas doas)'\ '--become-user[run operations as this user (default=root)]:user:(USER)'\ "(-C --check)"{-C,--check}"[don't make any changes]"\ "(-c --connection)"{-c,--connection}"[CONNECTION connection type to use (default=smart)]:connection type:(smart ssh local chroot)"\ "(-D --diff)"{-D,--diff}"[show differences when changing (small) files and templates]"\ "(-e --extra-vars)"{-e,--extra-vars}"[set additional variables as key=value or YAML/JSON]"\ "(-f --forks)"{-f,--forks}"[FORKS number of parallel processes to use (default=5)]:forks:(5)"\ "(-h --help)"{-h,--help}"[help message]"\ "(-i --inventory-file)"{-i,--inventory-file}"[INVENTORY specify inventory host file]:inventory file:_files"\ "(-l --limit)"{-l,--limit}"[SUBSET further limit selected hosts to an additional pattern]:subset pattern:->pattern"\ '--list-hosts[outputs a list of matching hosts. Does not execute anything else]'\ "(-m --module-name)"{-m,--module-name}"[MODULE_NAME module name (default=command)]:module name:->module"\ "(-M --module-path)"{-M,--module-path}"[MODULE_PATH specify path to module library (default=None)]:module path:_files -/"\ '--new-vault-password-file[new vault password file for rekey]:new vault password file:_files'\ "(-o --one-line)"{-o,--one-line}"[condense output]"\ '--output[output file name for encrypt or decrypt; use - for stdout]:output file:_files'\ "(-P --poll)"{-P,--poll}"[POLL_INTERVAL set the poll interval (s) if using -B (default=15)]:poll interval:(15)"\ '--private-key[PRIVATE_KEY_FILE use this file to authenticate the connection]:private key file:_files'\ '--scp-extra-args[specify extra arguments to pass to scp only]'\ '--sftp-extra-args[specify extra arguments to pass to sftp only]'\ '--ssh-common-args[specify common arguments to pass to sftp/scp/ssh]'\ '--ssh-extra-args[specify extra arguments to pass to ssh only]'\ "(-S --su)"{-S,--su}"[run operations with su (deprecated, use become)]"\ "(-R --su-user)"{-R,--su-user}"[SU_USER run operations with su as this user (default=root) (deprecated, use become)]:su user:(root)"\ "(-s --sudo)"{-s,--sudo}"[run operations with sudo (nopasswd) (deprecated, use become)]"\ "(-U --sudo-user)"{-U,--sudo-user}"[SUDO_USER desired sudo user (default=root) (deprecated, use become)]:su user:(root)"\ '--syntax-check[perform a syntax check on the playbook, but do not execute it]'\ "(-T --timeout)"{-T,--timeout}"[TIMEOUT override the SSH timeout (s) (default=10)]:ssh timeout:(10)"\ "(-t --tree)"{-t,--tree}"[OUTPUT_DIRECTORY log output to this directory]:output directory:_files -/"\ "(-u --user)"{-u,--user}"[REMOTE_USER connect as this user (default=${USER})]:connect as user:(${USER})"\ "--vault-password-file[VAULT_PASSWORD_FILE vault password file]:vault password file:_files"\ "(-v --verbose)"{-v,--verbose}"[verbose mode (-vvv for more, -vvvv to enable connection debugging)]"\ "--version[show program's version number and exit]"\ case $state in pattern) _arguments '*:feature:__host_list' _arguments '*:feature:__group_list' ;; module) _describe -t commands "modules" _modules ;; esac } _ansible "$@" # Local Variables: # mode: Shell-Script # sh-indentation: 2 # indent-tabs-mode: nil # sh-basic-offset: 2 # End: # vim: ft=zsh sw=2 ts=2 et