Commit graph

182 commits

Author SHA1 Message Date
Toshio Kuratomi
a22909c226 Migrate basestring to a python3 compatible type (#17199) 2016-08-23 13:13:44 -07:00
Adrian Likins
57a911e098 Use sys.exit(msg) i/o print() and sys.exit() (#15465)
Any non-0 exits should be showing an error message
to stderr instead of to stdout.
2016-08-23 11:09:23 -04:00
jctanner
a0a2e1509e vmware_inventory script improvements (#17142)
* vmware_inventory script improvements
* switch instance finding method to use containerview based searches
* overhaul the serialization method for objects
* Cleanup the debug outputs
* Add a warning about performance
2016-08-19 10:40:22 -04:00
nitzmahone
4fbd17d949 py3 print fix 2016-08-18 14:37:52 -07:00
Josh Preston
2a2d866c0d add cloudforms inventory script (#17037)
* add cloudforms inventory script

based on the foreman inventory script, features:

* cached results (default 600 seconds)
* paginated host results (default 100 hosts)
* ssl verification (default True)
* arguments to flush cache and run in debug mode

* suggested rework

* removed second cache / dict with duplicate info
* added purge_actions configuration option to remove the actions from a host (defaults to False)
* added prefer_ip_address configuration option so give the option of using ip address instead of name (defaults to True)
* removed self variables — just use the arguments directly
* added --pretty command line option to pretty print results
* renamed _resolve_params to _resolve_host

* implement suggestions

* removed not used import
* added warnings to help debug connection issues
* renamed self.cache to self.hosts for clarity
* now will use the first ip address as ansible_ssh_host
* flipped default for prefer_ip_address config option to false - preserve name, and specify ansible_ssh_host as ip address
* added checks and warnings to configuration options, sane defaults for all except required:
** `url` - the first part of the cloudforms server url (https://cfme.example.com)
** `username`  - the cloudforms username to log in with
** `password` - the password for the cloudforms user specified
* removed redundant call to fetch host information (since we’re paging results, no need to split the calls)
* added warning for unexpected responses from CloudForms
* debug for returned sting now prints the string instead of forcing to JSON
* removed no longer needed methods to fetch host information
* using ‘key in list’ instead of ‘list.has_key(key)’
* correctly formatted groups and allowed nested groups
* now create groups for `location`, `type` and `vendor`, with appropriate sub-groups and children
* made to_safe honor config option to clean group names for ansible consumption

* remove prefer_ip_address configuration option

no longer needed since we will specify `ansible_ssh_host` as the returned ip address.

* removed dns_name

no longer needed, will preserve `host[name]` as name in Ansible.

* purge actions from hostvars

changed purge_actions to True

* flake8 suggestion for whitespace

* fix undefined r variable in warning output

use the correct ret variable

* Default purge_actions to True

We probably don’t need them, but it is configurable, so just default to remove them.

* Add configuration option to nest cloudforms tags

disabled by default, the nest_tags option will expand cloudforms tags into a nested group/subgroup structure.  Otherwise, it will use the whole tag name.

* added purging the actions

removed in previous clean up in error.

* fixed undefined variable

specified the correct variable for logging.
2016-08-18 14:37:31 -07:00
jctanner
14da357feb vmware inventory script enhancements (#17106)
* Allow the user to disable certificate verification
* Allow the user to find VMs only in specific clusters
2016-08-17 17:44:15 -04:00
Ryan Brown
c5cc6edb93 Merge pull request #16606 from ryansb/rds-cluster-inventory-aioue
Support RDS clusters in AWS dynamic inventory script
2016-08-15 15:08:55 -04:00
Ryan S. Brown
0783c172d7 Paginate DB cluster responses in AWS RDS dynamic inventory 2016-08-15 14:27:48 -04:00
Andrew Dolby
cbbc643317 add default location and env override (#16854) 2016-08-04 09:54:44 -07:00
Oskar Wyciślak
8e956675f7 Strip group names of whitespaces, so we can use space after comma in openstack's groups metadata field. (#16843) 2016-08-04 09:45:15 -07:00
Dick Davies
fc6b841b2f correct ini variable name (#16901)
cache_path is used to calculate cache_dir , the script doesn't actually read cache_dir from this file.

This makes the setting work (otherwise it always uses the default).
2016-08-01 17:34:06 -04:00
jctanner
072c4bed1d vmware_inventory.py excude more properties and fix debug printing on unicode (#16769)
* Fix broken indentation in vmware inventory
* Allow script to be a symlink without breaking ini path.
* Add some more properties to the bad_types list
* Encode unicode strings to ascii Fixes #16763
2016-07-20 09:46:50 -04:00
Wayne Witzel III
bb8d1168ac Added the ability to filter gce grouped_instances by region/zone (#14138) 2016-07-14 22:10:39 -04:00
Chris Houseknecht
7964a2fca3 Upgrade to azure 2.0.0rc5 and add locations parameter. 2016-07-09 01:42:39 -04:00
Ryan S. Brown
59e499f8f0 Respect profiles & credentials for boto3 inventory
Using boto3 directly wasn't properly using profiles set in the `ec2.ini`
file, this change uses the `module_utils` boto3_conn instead.
2016-07-06 10:57:31 -04:00
Tom Paine
418f91d0e2 Fail softly when boto3 is not installed
Updated as per @ryansb comments. The EC2 inventory script will now fail
with a useful message when boto3 is not installed and the user is trying
to read RDS cluster information.
2016-07-06 10:57:31 -04:00
Tom Paine
bb5a1f7440 Add RDS cluster info to EC2 dynamic inventory
Add db_clusters to the ec2 inventory. Show tags. Only show clusters
matching tags in the `.ini`. Set `include_rds_clusters = True` option to
enable RDS cluster inventory collection.

Example inventory output:

```
{
  "db_clusters": {
    "ryansb-cluster-test": {
      "AllocatedStorage": 1,
      "AvailabilityZones": [
        "us-west-2a",
        "us-west-2b",
        "us-west-2c"
      ],
      "BackupRetentionPeriod": 1,
      "DBClusterIdentifier": "ryansb-cluster-test",
      "DBClusterMembers": [
        {
          "DBClusterParameterGroupStatus": "in-sync",
          "DBInstanceIdentifier": "ryansb-test",
          "IsClusterWriter": true,
          "PromotionTier": 1
        },
        {
          "DBClusterParameterGroupStatus": "in-sync",
          "DBInstanceIdentifier": "ryansb-test-us-west-2b",
          "IsClusterWriter": false,
          "PromotionTier": 1
        }
      ],
      "DBClusterParameterGroup": "default.aurora5.6",
      "DBSubnetGroup": "default",
      "DatabaseName": "mydb",
      "DbClusterResourceId": "cluster-OB6H7JQURFKFD4BYNHG5HSRLBA",
      "Endpoint": "ryansb-cluster-test.cluster-c9ntgaejgqln.us-west-2.rds.amazonaws.com",
      "Engine": "aurora",
      "EngineVersion": "5.6.10a",
      "MasterUsername": "admin",
      "Port": 3306,
      "PreferredBackupWindow": "06:09-06:39",
      "PreferredMaintenanceWindow": "mon:11:22-mon:11:52",
      "ReadReplicaIdentifiers": [],
      "Status": "available",
      "StorageEncrypted": false,
      "VpcSecurityGroups": [
        {
          "Status": "active",
          "VpcSecurityGroupId": "sg-47eaea20"
        }
      ]
    }
  },
  "rds": [
    "ryansb_test_c9ntgaejgqln_us_west_2_rds_amazonaws_com",
    "ryansb_test_us_west_2b_c9ntgaejgqln_us_west_2_rds_amazonaws_com"
  ],
  "rds_aurora": [
    "ryansb_test_c9ntgaejgqln_us_west_2_rds_amazonaws_com",
    "ryansb_test_us_west_2b_c9ntgaejgqln_us_west_2_rds_amazonaws_com"
  ],
  "rds_parameter_group_default_aurora5_6": [
    "ryansb_test_c9ntgaejgqln_us_west_2_rds_amazonaws_com",
    "ryansb_test_us_west_2b_c9ntgaejgqln_us_west_2_rds_amazonaws_com"
  ],
  "ryansb-test": [
    "ryansb_test_c9ntgaejgqln_us_west_2_rds_amazonaws_com"
  ],
  "ryansb-test-us-west-2b": [
    "ryansb_test_us_west_2b_c9ntgaejgqln_us_west_2_rds_amazonaws_com"
  ],
  "type_db_r3_large": [
    "ryansb_test_c9ntgaejgqln_us_west_2_rds_amazonaws_com",
    "ryansb_test_us_west_2b_c9ntgaejgqln_us_west_2_rds_amazonaws_com"
  ],
  "us-west-2": [
    "ryansb_test_c9ntgaejgqln_us_west_2_rds_amazonaws_com",
    "ryansb_test_us_west_2b_c9ntgaejgqln_us_west_2_rds_amazonaws_com"
  ],
  "us-west-2a": [
    "ryansb_test_c9ntgaejgqln_us_west_2_rds_amazonaws_com"
  ],
  "us-west-2b": [
    "ryansb_test_us_west_2b_c9ntgaejgqln_us_west_2_rds_amazonaws_com"
  ],
  "vpc_id_vpc_3ca34459": [
    "ryansb_test_c9ntgaejgqln_us_west_2_rds_amazonaws_com",
    "ryansb_test_us_west_2b_c9ntgaejgqln_us_west_2_rds_amazonaws_com"
  ]
}
```
2016-07-06 10:57:31 -04:00
Shota
47f715fb37 Fix some typos (#16498) 2016-06-29 14:31:25 -04:00
Ryan Brown
467062f488 Merge pull request #16286 from kwoodson/gce_instance_states
Adding instance_states to gce inventory to align with other inventories.
2016-06-20 16:16:13 -04:00
Kenny Woodson
ebf1feb5bb Adding instance_states option to gce inventory 2016-06-17 10:11:23 -04:00
Adam Thomas
27d0fe8d49 The output of the digital ocean script was invalid for ID and droplet name groups. Hosts is now an array of strings rather than a string for these groups. (#16297) 2016-06-15 09:49:14 -04:00
bqbn
3498b840c9 Fixes #16095: Maximumly 199 filter values (#16184)
When making calls to AWS EC2 api with DescribeTags actiion and if the
number of filter values is greater than or equal to 200, it results in
400 bad request reply and the error message is:
"Error connecting to AWS backend.\n The maximum number of filter values specified on a single call is 200".

The change is so that we call get_all_tags with maximum 199 filter
values one at a time until all are consumed.
2016-06-13 11:19:42 -04:00
jctanner
aa5c8ed86c * Fix broken indentation in vmware inventory (#16177)
* Allow script to be a symlink without breaking ini path.
2016-06-07 18:10:57 -04:00
Monty Taylor
4eedad55d9 Merge pull request #14699 from jhesketh/devel
Set fail_on_cloud_config in openstack inventory
2016-06-07 11:21:51 +03:00
Chris Houseknecht
9c505e2fa9 Merge pull request #15965 from edevil/python_env
Update interpreter for azure inventory script
2016-06-05 20:02:32 -04:00
Florian Haas
0e6fc9de3a Add inventory script for LXC containers
Enables an LXC server's configuration as an inventory source for LXC
containers.

In LXC, containers can be defined with an "lxc.group" configuration
option that is normally used with lxc-autostart -g. Here, we are using
the same option to build Ansible inventory groups.

In addition to being grouped according to their lxc.group entry (or
entries, as LXC allows a single container to be in multiple groups),
we also add all containers (including those with no lxc.group entry)
to the "all" group.
2016-06-03 23:22:56 +03:00
Brian Coca
3121e352f7 fixed group assignment in DO inventory (#16102)
* fixed group assignment in DO inventory

* changed sets to lists as we are appending dicts

* deeper fix as original data structure was flawed
2016-06-03 15:13:13 -04:00
jctanner
018d3c3118 Add a new vmware inventory script backed by pyvmomi (#15967)
Add a new dynamic vmware inventory script backed by pyvmomi
2016-05-30 20:41:48 -04:00
Adrian Likins
675561e116 fix vault-keyring.py 'No [vault] section' error
vault-keyring.py was using an older version of
the ansible.constants.load_config_file() API.
The newer version returns a tuple, which caused
the config load to fail and a catch all exception
to blame it on a missing section.

Update to new API, and catch the ConfigParser error
specifically.

Fixes #15984
2016-05-24 18:47:56 -04:00
Adam Chainz
064ed63843 Fix ec2 inventory for potentially inconsistent data (#12642) 2016-05-24 11:00:59 -04:00
André Cruz
1fdb7613f1 Fix whitespace. 2016-05-23 10:45:37 +01:00
André Cruz
18831c72f9 Use the python executable specified by the environment. 2016-05-23 10:45:06 +01:00
Victor Costan
8d3da09eae contrib/inventory/ec2.py can read AWS credentials from ec2.ini (#15378) 2016-05-20 09:29:15 -04:00
Chris Mague
aaaab42456 update documentation (#15838) 2016-05-16 10:44:35 -04:00
James Cammarata
37737ca6c1 Merge pull request #15466 from alikins/pr_10555_cobbler_auth_rebase
add cobbler api authentication options
2016-05-11 15:17:37 -04:00
Matt Hite
fbfc24fb40 New inventory_ip_type option in gce inventory tool 2016-05-03 15:32:12 -07:00
Chris Houseknecht
21f2556662 Update and fix typos in docker inventory docstrings. (#15616) 2016-04-27 17:17:34 -04:00
Brian Coca
783dc2f0f6 errors now print to stderr 2016-04-25 11:43:54 -04:00
Francisco Ros
574163c949 Brook inventory (#15264)
* Initial work on Brook.io dynamic inventory

* Handle error cases in Brook.io dynamic inventory

* Remove defaults from brook.ini

* Update Brook.io dynamic inventory for libbrookv0.3

Use authentication api to obtain a valid JWT from an API Token.

* Remove defaults from brook.ini
2016-04-25 11:42:57 -04:00
Jorge Nerín
3a3e69f830 Fix substituting dots for underscores when using ips (#15578)
ec2.py was substituting the dots on ip addresses when not using hostnames like:
  "ec2": [
    "10_10_1_1", 

now it's:
  "ec2": [
    "10.10.1.1",
2016-04-25 10:22:00 -04:00
Matt Martz
5549292d69 Use exception as syntax in inventory, as it doesn't require py24 (#15554) 2016-04-22 16:34:35 -04:00
Brian Coca
6a983b0fc4 fixed misspelled var 2016-04-22 15:19:44 -04:00
Chris Houseknecht
221b1c9fd0 Refactored docker inventory. (#15485) 2016-04-22 15:19:12 -04:00
Chris Houseknecht
2b7f4395d6 Allow to work with latest Azure Python SDK (#15467)
* Allow to work with latest Azure Python SDK

* Fixed so that errors are sent to stderr
2016-04-21 23:18:45 -04:00
chouseknecht
af5e4abf66
Rename azure inventory script. Fix bug preventing AD user login via environment vars. 2016-04-21 14:34:08 -04:00
Jerry Zhao
9278591758 add cobbler api authentication options
add cobbler api authentication options: username and password, which
can be provided if authentication is enabled or cobbler api is behind
a proxy that needs authentication.
2016-04-18 17:29:03 -04:00
chouseknecht
a5bed1570e Adding new Azure inventory script. 2016-04-16 01:36:25 -04:00
David Shrewsbury
22467a0de8 Merge pull request #15232 from donovan/fix-openstack-config-file-name
add openstack.yml to CONFIG_FILES to be consistent with documentation
2016-04-12 22:29:45 -04:00
Joshua Hesketh
c3ffe0a838 Allow fail_on_errors in openstack inventory
Add support for a new option to the openstack inventory. This is so
should one cloud be unavailable you can still list hosts from any
other openstack clouds you have configured.

This is exposed as an option under the extra config part of ansible
in the openstack clouds.yaml.
2016-04-05 20:31:54 +10:00
David Chan
5b81853c04 Fix CACHE_DIR mode in contrib/inventory/spacewalk.py 2016-04-01 20:35:19 -04:00