Recording Ansible
building ansible
with Ansible
& testing it with Ansible
Config Management Camp 2023
$ whoami
---
- name: David Moreau-Simard
hosts:
- dmsimard:matrix.org
- fosstodon.org/@rfc2549
vars:
location: Montreal, Canada (or rabbit holes)
profile: sysadmin, dev/ops, CI/CD, SRE
roles:
- Ansible user since version 1.8 or so (2014?)
- Previously in the Ansible community team @ Red Hat
- Part time open source contributor (between dev ops and dad ops)
About this presentation
- You can try this at home and even help improve it: it's open source π
- Not exhaustive: meant as a high level overview with references to explore
- Happy to chat about it, feel free to reach out !
Configuration management with Ansible
- name: Setup nginx
hosts: web01
become: true
handlers:
- name: Restart nginx
service:
name: nginx
state: restarted
tasks:
- name: Install nginx
package:
name: nginx
state: present
- name: Configure virtual host
template:
src: vhost.conf.j2
dest: /etc/nginx/conf.d/service.conf
notify:
- Restart nginx
- name: Ensure nginx is started
service:
name: nginx
state: started
enabled: true
ansible
IncludesΒ ansible-coreΒ and is a batteries-included package that provides a curated set of Ansible collections
https://pypi.org/project/ansible/
ansible-core
Contains the base engine and a small subset of modules and plugins
Provides the CLIs for: ansible, ansible-doc, ansible-inventory, ansible-playbook, ansible-galaxy, ansible-test
https://pypi.org/project/ansible-core/
Can we build ansible
with Ansible ?
What could go wrong ?
Β―\(γ)/Β―
Building a python source distribution package
Doing it manually
$ git clone https://github.com/ansible/ansible ~/src/ansible
$ cd ~/src/ansible; python3 setup.py sdist
$ ls dist/
ansible-core-2.15.0.dev0.tar.gz # <-- ansible-core !
Doing it with Ansible
- name: Clone the ansible repository
git:
repo: https://github.com/ansible/ansible
dest: "{{ '~/src/ansible' | expanduser }}"
- name: Build a distribution package
command: python3 setup.py sdist
args:
chdir: "{{ '~/src/ansible' | expanduser }}"
creates: "{{ '~/src/ansible' | expanduser }}/dist/ansible-core-2.15.0.dev0.tar.gz"
Building a python source distribution package
Doing it manually
$ git clone https://github.com/ansible/ansible
fatal: destination path 'ansible' already exists and is not an empty directory.
Doing it with Ansible
TASK [Clone the ansible repository] *****************************************************************************************************
ok: [localhost]
TASK [Build a distribution package] *****************************************************************************************************
ok: [localhost]
PLAY RECAP ******************************************************************************************************************************
localhost : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
What about the ansible
package ?
$ wget https://files.pythonhosted.org/packages/05/cd/d5c46caa5d8c6c11ebad76accd2cec355a10ba80c71780ecdf0bc6748a62/ansible-7.1.0.tar.gz
$ tar -xzf ansible-7.1.0.tar.gz
$ tree -L 1 ansible-7.1.0
ansible-7.1.0
βββ ansible_collections # included collections ("batteries included")
βββ ansible.egg-info
βββ build-ansible.sh # intended to rebuild the package
βββ CHANGELOG-v7.rst # aggregated changelog from every collection
βββ COPYING
βββ debian
βββ MANIFEST.in
βββ PKG-INFO
βββ porting_guide_7.rst # aggregated porting guide from every collection
βββ README.rst
βββ setup.cfg
βββ setup.py
3 directories, 9 files
Inside ansible_collections
$ tree -L 2 ansible-7.1.0/ansible_collections/
ansible-7.1.0/ansible_collections/
βββ amazon
βΒ Β βββ aws
βββ ansible
βΒ Β βββ netcommon
βΒ Β βββ posix
βΒ Β βββ utils
βΒ Β βββ windows
βββ ansible_community.py
βββ ansible_release.py
βββ arista
βΒ Β βββ eos
βββ awx
βΒ Β βββ awx
βββ azure
βΒ Β βββ azcollection
βββ check_point
βΒ Β βββ mgmt
βββ chocolatey
βΒ Β βββ chocolatey
βββ cisco
βΒ Β βββ aci
βΒ Β βββ asa
βΒ Β βββ dnac
βΒ Β βββ intersight
βΒ Β βββ ios
βΒ Β βββ iosxr
βΒ Β βββ ise
βΒ Β βββ meraki
βΒ Β βββ mso
βΒ Β βββ nso
βΒ Β βββ nxos
βΒ Β βββ ucs
βββ cloud
βΒ Β βββ common
βββ cloudscale_ch
βΒ Β βββ cloud
βββ community
βΒ Β βββ aws
βΒ Β βββ azure
βΒ Β βββ ciscosmb
βΒ Β βββ crypto
βΒ Β βββ digitalocean
βΒ Β βββ dns
βΒ Β βββ docker
βΒ Β βββ fortios
βΒ Β βββ general
βΒ Β βββ google
βΒ Β βββ grafana
βΒ Β βββ hashi_vault
βΒ Β βββ hrobot
βΒ Β βββ libvirt
βΒ Β βββ mongodb
βΒ Β βββ mysql
βΒ Β βββ network
βΒ Β βββ okd
βΒ Β βββ postgresql
βΒ Β βββ proxysql
βΒ Β βββ rabbitmq
βΒ Β βββ routeros
βΒ Β βββ sap
βΒ Β βββ sap_libs
βΒ Β βββ skydive
βΒ Β βββ sops
βΒ Β βββ vmware
βΒ Β βββ windows
βΒ Β βββ zabbix
βββ containers
βΒ Β βββ podman
βββ cyberark
βΒ Β βββ conjur
βΒ Β βββ pas
βββ dellemc
βΒ Β βββ enterprise_sonic
βΒ Β βββ openmanage
βΒ Β βββ os10
βΒ Β βββ os6
βΒ Β βββ os9
βββ f5networks
βΒ Β βββ f5_modules
βββ fortinet
βΒ Β βββ fortimanager
βΒ Β βββ fortios
βββ frr
βΒ Β βββ frr
βββ gluster
βΒ Β βββ gluster
βββ google
βΒ Β βββ cloud
βββ grafana
βΒ Β βββ grafana
βββ hetzner
βΒ Β βββ hcloud
βββ hpe
βΒ Β βββ nimble
βββ ibm
βΒ Β βββ qradar
βΒ Β βββ spectrum_virtualize
βββ infinidat
βΒ Β βββ infinibox
βββ infoblox
βΒ Β βββ nios_modules
βββ inspur
βΒ Β βββ ispim
βΒ Β βββ sm
βββ junipernetworks
βΒ Β βββ junos
βββ kubernetes
βΒ Β βββ core
βββ lowlydba
βΒ Β βββ sqlserver
βββ mellanox
βΒ Β βββ onyx
βββ netapp
βΒ Β βββ aws
βΒ Β βββ azure
βΒ Β βββ cloudmanager
βΒ Β βββ elementsw
βΒ Β βββ ontap
βΒ Β βββ storagegrid
βΒ Β βββ um_info
βββ netapp_eseries
βΒ Β βββ santricity
βββ netbox
βΒ Β βββ netbox
βββ ngine_io
βΒ Β βββ cloudstack
βΒ Β βββ exoscale
βΒ Β βββ vultr
βββ openstack
βΒ Β βββ cloud
βββ openvswitch
βΒ Β βββ openvswitch
βββ ovirt
βΒ Β βββ ovirt
βββ purestorage
βΒ Β βββ flasharray
βΒ Β βββ flashblade
βΒ Β βββ fusion
βββ sensu
βΒ Β βββ sensu_go
βββ splunk
βΒ Β βββ es
βββ theforeman
βΒ Β βββ foreman
βββ t_systems_mms
βΒ Β βββ icinga_director
βββ vmware
βΒ Β βββ vmware_rest
βββ vultr
βΒ Β βββ cloud
βββ vyos
βΒ Β βββ vyos
βββ wti
βββ remote
152 directories, 2 files
Inside a collection: community.general
$ tree -L 3 ansible-7.1.0/ansible_collections/community/general
ansible-7.1.0/ansible_collections/community/general/
βββ CHANGELOG.rst
βββ CHANGELOG.rst.license
βββ changelogs
βΒ Β βββ changelog.yaml
βΒ Β βββ changelog.yaml.license
βΒ Β βββ config.yaml
βΒ Β βββ fragments
βββ commit-rights.md
βββ CONTRIBUTING.md
βββ COPYING
βββ docs
βΒ Β βββ docsite
βΒ Β βββ extra-docs.yml
βΒ Β βββ helper
βΒ Β βββ links.yml
βΒ Β βββ rst
βββ FILES.json
βββ LICENSES
βΒ Β βββ BSD-2-Clause.txt
βΒ Β βββ GPL-3.0-or-later.txt
βΒ Β βββ MIT.txt
βΒ Β βββ PSF-2.0.txt
βββ MANIFEST.json
βββ meta
βΒ Β βββ runtime.yml
βββ plugins
βΒ Β βββ action
βΒ Β βΒ Β βββ iptables_state.py
βΒ Β βΒ Β βββ shutdown.py
βΒ Β βββ become
βΒ Β βΒ Β βββ doas.py
βΒ Β βΒ Β βββ dzdo.py
βΒ Β βΒ Β βββ ksu.py
βΒ Β βΒ Β βββ machinectl.py
βΒ Β βΒ Β βββ pbrun.py
βΒ Β βΒ Β βββ pfexec.py
βΒ Β βΒ Β βββ pmrun.py
βΒ Β βΒ Β βββ sesu.py
βΒ Β βΒ Β βββ sudosu.py
βΒ Β βββ cache
βΒ Β βΒ Β βββ memcached.py
βΒ Β βΒ Β βββ pickle.py
βΒ Β βΒ Β βββ redis.py
βΒ Β βΒ Β βββ yaml.py
βΒ Β βββ callback
βΒ Β βΒ Β βββ cgroup_memory_recap.py
βΒ Β βΒ Β βββ context_demo.py
βΒ Β βΒ Β βββ counter_enabled.py
βΒ Β βΒ Β βββ dense.py
βΒ Β βΒ Β βββ diy.py
βΒ Β βΒ Β βββ elastic.py
βΒ Β βΒ Β βββ hipchat.py
βΒ Β βΒ Β βββ jabber.py
βΒ Β βΒ Β βββ loganalytics.py
βΒ Β βΒ Β βββ logdna.py
βΒ Β βΒ Β βββ logentries.py
βΒ Β βΒ Β βββ log_plays.py
βΒ Β βΒ Β βββ logstash.py
βΒ Β βΒ Β βββ mail.py
βΒ Β βΒ Β βββ nrdp.py
βΒ Β βΒ Β βββ null.py
βΒ Β βΒ Β βββ opentelemetry.py
βΒ Β βΒ Β βββ say.py
βΒ Β βΒ Β βββ selective.py
βΒ Β βΒ Β βββ slack.py
βΒ Β βΒ Β βββ splunk.py
βΒ Β βΒ Β βββ sumologic.py
βΒ Β βΒ Β βββ syslog_json.py
βΒ Β βΒ Β βββ unixy.py
βΒ Β βΒ Β βββ yaml.py
βΒ Β βββ connection
βΒ Β βΒ Β βββ chroot.py
βΒ Β βΒ Β βββ funcd.py
βΒ Β βΒ Β βββ iocage.py
βΒ Β βΒ Β βββ jail.py
βΒ Β βΒ Β βββ lxc.py
βΒ Β βΒ Β βββ lxd.py
βΒ Β βΒ Β βββ qubes.py
βΒ Β βΒ Β βββ saltstack.py
βΒ Β βΒ Β βββ zone.py
βΒ Β βββ doc_fragments
βΒ Β βΒ Β βββ alicloud.py
βΒ Β βΒ Β βββ attributes.py
βΒ Β βΒ Β βββ auth_basic.py
βΒ Β βΒ Β βββ bitbucket.py
βΒ Β βΒ Β βββ dimensiondata.py
βΒ Β βΒ Β βββ dimensiondata_wait.py
βΒ Β βΒ Β βββ emc.py
βΒ Β βΒ Β βββ gitlab.py
βΒ Β βΒ Β βββ hpe3par.py
βΒ Β βΒ Β βββ hwc.py
βΒ Β βΒ Β βββ ibm_storage.py
βΒ Β βΒ Β βββ influxdb.py
βΒ Β βΒ Β βββ ipa.py
βΒ Β βΒ Β βββ keycloak.py
βΒ Β βΒ Β βββ ldap.py
βΒ Β βΒ Β βββ lxca_common.py
βΒ Β βΒ Β βββ manageiq.py
βΒ Β βΒ Β βββ nomad.py
βΒ Β βΒ Β βββ oneview.py
βΒ Β βΒ Β βββ online.py
βΒ Β βΒ Β βββ opennebula.py
βΒ Β βΒ Β βββ openswitch.py
βΒ Β βΒ Β βββ oracle_creatable_resource.py
βΒ Β βΒ Β βββ oracle_display_name_option.py
βΒ Β βΒ Β βββ oracle_name_option.py
βΒ Β βΒ Β βββ oracle.py
βΒ Β βΒ Β βββ oracle_tags.py
βΒ Β βΒ Β βββ oracle_wait_options.py
βΒ Β βΒ Β βββ pritunl.py
βΒ Β βΒ Β βββ proxmox.py
βΒ Β βΒ Β βββ purestorage.py
βΒ Β βΒ Β βββ rackspace.py
βΒ Β βΒ Β βββ redis.py
βΒ Β βΒ Β βββ rundeck.py
βΒ Β βΒ Β βββ scaleway.py
βΒ Β βΒ Β βββ scaleway_waitable_resource.py
βΒ Β βΒ Β βββ utm.py
βΒ Β βΒ Β βββ vexata.py
βΒ Β βΒ Β βββ xenserver.py
βΒ Β βββ filter
βΒ Β βΒ Β βββ counter.py
βΒ Β βΒ Β βββ crc32.py
βΒ Β βΒ Β βββ dict_kv.py
βΒ Β βΒ Β βββ dict.py
βΒ Β βΒ Β βββ from_csv.py
βΒ Β βΒ Β βββ groupby_as_dict.py
βΒ Β βΒ Β βββ hashids_decode.yml
βΒ Β βΒ Β βββ hashids_encode.yml
βΒ Β βΒ Β βββ hashids.py
βΒ Β βΒ Β βββ jc.py
βΒ Β βΒ Β βββ json_query.py
βΒ Β βΒ Β βββ lists_mergeby.py
βΒ Β βΒ Β βββ random_mac.py
βΒ Β βΒ Β βββ time.py
βΒ Β βΒ Β βββ to_days.yml
βΒ Β βΒ Β βββ to_hours.yml
βΒ Β βΒ Β βββ to_milliseconds.yml
βΒ Β βΒ Β βββ to_minutes.yml
βΒ Β βΒ Β βββ to_months.yml
βΒ Β βΒ Β βββ to_seconds.yml
βΒ Β βΒ Β βββ to_time_unit.yml
βΒ Β βΒ Β βββ to_weeks.yml
βΒ Β βΒ Β βββ to_years.yml
βΒ Β βΒ Β βββ unicode_normalize.py
βΒ Β βΒ Β βββ version_sort.py
βΒ Β βββ inventory
βΒ Β βΒ Β βββ cobbler.py
βΒ Β βΒ Β βββ gitlab_runners.py
βΒ Β βΒ Β βββ icinga2.py
βΒ Β βΒ Β βββ linode.py
βΒ Β βΒ Β βββ lxd.py
βΒ Β βΒ Β βββ nmap.py
βΒ Β βΒ Β βββ online.py
βΒ Β βΒ Β βββ opennebula.py
βΒ Β βΒ Β βββ proxmox.py
βΒ Β βΒ Β βββ scaleway.py
βΒ Β βΒ Β βββ stackpath_compute.py
βΒ Β βΒ Β βββ virtualbox.py
βΒ Β βΒ Β βββ xen_orchestra.py
βΒ Β βββ lookup
βΒ Β βΒ Β βββ bitwarden.py
βΒ Β βΒ Β βββ cartesian.py
βΒ Β βΒ Β βββ chef_databag.py
βΒ Β βΒ Β βββ collection_version.py
βΒ Β βΒ Β βββ consul_kv.py
βΒ Β βΒ Β βββ credstash.py
βΒ Β βΒ Β βββ cyberarkpassword.py
βΒ Β βΒ Β βββ dependent.py
βΒ Β βΒ Β βββ dig.py
βΒ Β βΒ Β βββ dnstxt.py
βΒ Β βΒ Β βββ dsv.py
βΒ Β βΒ Β βββ etcd3.py
βΒ Β βΒ Β βββ etcd.py
βΒ Β βΒ Β βββ filetree.py
βΒ Β βΒ Β βββ flattened.py
βΒ Β βΒ Β βββ hiera.py
βΒ Β βΒ Β βββ keyring.py
βΒ Β βΒ Β βββ lastpass.py
βΒ Β βΒ Β βββ lmdb_kv.py
βΒ Β βΒ Β βββ manifold.py
βΒ Β βΒ Β βββ onepassword.py
βΒ Β βΒ Β βββ onepassword_raw.py
βΒ Β βΒ Β βββ passwordstore.py
βΒ Β βΒ Β βββ random_pet.py
βΒ Β βΒ Β βββ random_string.py
βΒ Β βΒ Β βββ random_words.py
βΒ Β βΒ Β βββ redis.py
βΒ Β βΒ Β βββ revbitspss.py
βΒ Β βΒ Β βββ shelvefile.py
βΒ Β βΒ Β βββ tss.py
βΒ Β βββ modules
βΒ Β βΒ Β βββ aerospike_migrations.py
βΒ Β βΒ Β βββ airbrake_deployment.py
βΒ Β βΒ Β βββ aix_devices.py
βΒ Β βΒ Β βββ aix_filesystem.py
βΒ Β βΒ Β βββ aix_inittab.py
βΒ Β βΒ Β βββ aix_lvg.py
βΒ Β βΒ Β βββ aix_lvol.py
βΒ Β βΒ Β βββ alerta_customer.py
βΒ Β βΒ Β βββ ali_instance_info.py
βΒ Β βΒ Β βββ ali_instance.py
βΒ Β βΒ Β βββ alternatives.py
βΒ Β βΒ Β βββ ansible_galaxy_install.py
βΒ Β βΒ Β βββ apache2_mod_proxy.py
βΒ Β βΒ Β βββ apache2_module.py
βΒ Β βΒ Β βββ apk.py
βΒ Β βΒ Β βββ apt_repo.py
βΒ Β βΒ Β βββ apt_rpm.py
βΒ Β βΒ Β βββ archive.py
βΒ Β βΒ Β βββ atomic_container.py
βΒ Β βΒ Β βββ atomic_host.py
βΒ Β βΒ Β βββ atomic_image.py
βΒ Β βΒ Β βββ awall.py
βΒ Β βΒ Β βββ beadm.py
βΒ Β βΒ Β βββ bearychat.py
βΒ Β βΒ Β βββ bigpanda.py
βΒ Β βΒ Β βββ bitbucket_access_key.py
βΒ Β βΒ Β βββ bitbucket_pipeline_key_pair.py
βΒ Β βΒ Β βββ bitbucket_pipeline_known_host.py
βΒ Β βΒ Β βββ bitbucket_pipeline_variable.py
βΒ Β βΒ Β βββ bower.py
βΒ Β βΒ Β βββ bundler.py
βΒ Β βΒ Β βββ bzr.py
βΒ Β βΒ Β βββ campfire.py
βΒ Β βΒ Β βββ capabilities.py
βΒ Β βΒ Β βββ cargo.py
βΒ Β βΒ Β βββ catapult.py
βΒ Β βΒ Β βββ circonus_annotation.py
βΒ Β βΒ Β βββ cisco_webex.py
βΒ Β βΒ Β βββ clc_aa_policy.py
βΒ Β βΒ Β βββ clc_alert_policy.py
βΒ Β βΒ Β βββ clc_blueprint_package.py
βΒ Β βΒ Β βββ clc_firewall_policy.py
βΒ Β βΒ Β βββ clc_group.py
βΒ Β βΒ Β βββ clc_loadbalancer.py
βΒ Β βΒ Β βββ clc_modify_server.py
βΒ Β βΒ Β βββ clc_publicip.py
βΒ Β βΒ Β βββ clc_server.py
βΒ Β βΒ Β βββ clc_server_snapshot.py
βΒ Β βΒ Β βββ cloudflare_dns.py
βΒ Β βΒ Β βββ cloud_init_data_facts.py
βΒ Β βΒ Β βββ cobbler_sync.py
βΒ Β βΒ Β βββ cobbler_system.py
βΒ Β βΒ Β βββ composer.py
βΒ Β βΒ Β βββ consul_acl.py
βΒ Β βΒ Β βββ consul_kv.py
βΒ Β βΒ Β βββ consul.py
βΒ Β βΒ Β βββ consul_session.py
βΒ Β βΒ Β βββ copr.py
βΒ Β βΒ Β βββ cpanm.py
βΒ Β βΒ Β βββ cronvar.py
βΒ Β βΒ Β βββ crypttab.py
βΒ Β βΒ Β βββ datadog_downtime.py
βΒ Β βΒ Β βββ datadog_event.py
βΒ Β βΒ Β βββ datadog_monitor.py
βΒ Β βΒ Β βββ dconf.py
βΒ Β βΒ Β βββ deploy_helper.py
βΒ Β βΒ Β βββ dimensiondata_network.py
βΒ Β βΒ Β βββ dimensiondata_vlan.py
βΒ Β βΒ Β βββ discord.py
βΒ Β βΒ Β βββ django_manage.py
βΒ Β βΒ Β βββ dnf_versionlock.py
βΒ Β βΒ Β βββ dnsimple_info.py
βΒ Β βΒ Β βββ dnsimple.py
βΒ Β βΒ Β βββ dnsmadeeasy.py
βΒ Β βΒ Β βββ dpkg_divert.py
βΒ Β βΒ Β βββ easy_install.py
βΒ Β βΒ Β βββ ejabberd_user.py
βΒ Β βΒ Β βββ elasticsearch_plugin.py
βΒ Β βΒ Β βββ emc_vnx_sg_member.py
βΒ Β βΒ Β βββ etcd3.py
βΒ Β βΒ Β βββ facter.py
βΒ Β βΒ Β βββ filesize.py
βΒ Β βΒ Β βββ filesystem.py
βΒ Β βΒ Β βββ flatpak.py
βΒ Β βΒ Β βββ flatpak_remote.py
βΒ Β βΒ Β βββ flowdock.py
βΒ Β βΒ Β βββ gandi_livedns.py
βΒ Β βΒ Β βββ gconftool2_info.py
βΒ Β βΒ Β βββ gconftool2.py
βΒ Β βΒ Β βββ gem.py
βΒ Β βΒ Β βββ git_config.py
βΒ Β βΒ Β βββ github_deploy_key.py
βΒ Β βΒ Β βββ github_issue.py
βΒ Β βΒ Β βββ github_key.py
βΒ Β βΒ Β βββ github_release.py
βΒ Β βΒ Β βββ github_repo.py
βΒ Β βΒ Β βββ github_webhook_info.py
βΒ Β βΒ Β βββ github_webhook.py
βΒ Β βΒ Β βββ gitlab_branch.py
βΒ Β βΒ Β βββ gitlab_deploy_key.py
βΒ Β βΒ Β βββ gitlab_group_members.py
βΒ Β βΒ Β βββ gitlab_group.py
βΒ Β βΒ Β βββ gitlab_group_variable.py
βΒ Β βΒ Β βββ gitlab_hook.py
βΒ Β βΒ Β βββ gitlab_project_badge.py
βΒ Β βΒ Β βββ gitlab_project_members.py
βΒ Β βΒ Β βββ gitlab_project.py
βΒ Β βΒ Β βββ gitlab_project_variable.py
βΒ Β βΒ Β βββ gitlab_protected_branch.py
βΒ Β βΒ Β βββ gitlab_runner.py
βΒ Β βΒ Β βββ gitlab_user.py
βΒ Β βΒ Β βββ grove.py
βΒ Β βΒ Β βββ gunicorn.py
βΒ Β βΒ Β βββ hana_query.py
βΒ Β βΒ Β βββ haproxy.py
βΒ Β βΒ Β βββ heroku_collaborator.py
βΒ Β βΒ Β βββ hg.py
βΒ Β βΒ Β βββ hipchat.py
βΒ Β βΒ Β βββ homebrew_cask.py
βΒ Β βΒ Β βββ homebrew.py
βΒ Β βΒ Β βββ homebrew_tap.py
βΒ Β βΒ Β βββ homectl.py
βΒ Β βΒ Β βββ honeybadger_deployment.py
βΒ Β βΒ Β βββ hpilo_boot.py
βΒ Β βΒ Β βββ hpilo_info.py
βΒ Β βΒ Β βββ hponcfg.py
βΒ Β βΒ Β βββ htpasswd.py
βΒ Β βΒ Β βββ hwc_ecs_instance.py
βΒ Β βΒ Β βββ hwc_evs_disk.py
βΒ Β βΒ Β βββ hwc_network_vpc.py
βΒ Β βΒ Β βββ hwc_smn_topic.py
βΒ Β βΒ Β βββ hwc_vpc_eip.py
βΒ Β βΒ Β βββ hwc_vpc_peering_connect.py
βΒ Β βΒ Β βββ hwc_vpc_port.py
βΒ Β βΒ Β βββ hwc_vpc_private_ip.py
βΒ Β βΒ Β βββ hwc_vpc_route.py
βΒ Β βΒ Β βββ hwc_vpc_security_group.py
βΒ Β βΒ Β βββ hwc_vpc_security_group_rule.py
βΒ Β βΒ Β βββ hwc_vpc_subnet.py
βΒ Β βΒ Β βββ ibm_sa_domain.py
βΒ Β βΒ Β βββ ibm_sa_host_ports.py
βΒ Β βΒ Β βββ ibm_sa_host.py
βΒ Β βΒ Β βββ ibm_sa_pool.py
βΒ Β βΒ Β βββ ibm_sa_vol_map.py
βΒ Β βΒ Β βββ ibm_sa_vol.py
βΒ Β βΒ Β βββ icinga2_feature.py
βΒ Β βΒ Β βββ icinga2_host.py
βΒ Β βΒ Β βββ idrac_redfish_command.py
βΒ Β βΒ Β βββ idrac_redfish_config.py
βΒ Β βΒ Β βββ idrac_redfish_info.py
βΒ Β βΒ Β βββ ilo_redfish_config.py
βΒ Β βΒ Β βββ ilo_redfish_info.py
βΒ Β βΒ Β βββ imc_rest.py
βΒ Β βΒ Β βββ imgadm.py
βΒ Β βΒ Β βββ infinity.py
βΒ Β βΒ Β βββ influxdb_database.py
βΒ Β βΒ Β βββ influxdb_query.py
βΒ Β βΒ Β βββ influxdb_retention_policy.py
βΒ Β βΒ Β βββ influxdb_user.py
βΒ Β βΒ Β βββ influxdb_write.py
βΒ Β βΒ Β βββ ini_file.py
βΒ Β βΒ Β βββ installp.py
βΒ Β βΒ Β βββ interfaces_file.py
βΒ Β βΒ Β βββ ipa_config.py
βΒ Β βΒ Β βββ ipa_dnsrecord.py
βΒ Β βΒ Β βββ ipa_dnszone.py
βΒ Β βΒ Β βββ ipa_group.py
βΒ Β βΒ Β βββ ipa_hbacrule.py
βΒ Β βΒ Β βββ ipa_hostgroup.py
βΒ Β βΒ Β βββ ipa_host.py
βΒ Β βΒ Β βββ ipa_otpconfig.py
βΒ Β βΒ Β βββ ipa_otptoken.py
βΒ Β βΒ Β βββ ipa_pwpolicy.py
βΒ Β βΒ Β βββ ipa_role.py
βΒ Β βΒ Β βββ ipa_service.py
βΒ Β βΒ Β βββ ipa_subca.py
βΒ Β βΒ Β βββ ipa_sudocmdgroup.py
βΒ Β βΒ Β βββ ipa_sudocmd.py
βΒ Β βΒ Β βββ ipa_sudorule.py
βΒ Β βΒ Β βββ ipa_user.py
βΒ Β βΒ Β βββ ipa_vault.py
βΒ Β βΒ Β βββ ipify_facts.py
βΒ Β βΒ Β βββ ipinfoio_facts.py
βΒ Β βΒ Β βββ ipmi_boot.py
βΒ Β βΒ Β βββ ipmi_power.py
βΒ Β βΒ Β βββ ip_netns.py
βΒ Β βΒ Β βββ iptables_state.py
βΒ Β βΒ Β βββ ipwcli_dns.py
βΒ Β βΒ Β βββ irc.py
βΒ Β βΒ Β βββ iso_create.py
βΒ Β βΒ Β βββ iso_customize.py
βΒ Β βΒ Β βββ iso_extract.py
βΒ Β βΒ Β βββ jabber.py
βΒ Β βΒ Β βββ java_cert.py
βΒ Β βΒ Β βββ java_keystore.py
βΒ Β βΒ Β βββ jboss.py
βΒ Β βΒ Β βββ jenkins_build.py
βΒ Β βΒ Β βββ jenkins_job_info.py
βΒ Β βΒ Β βββ jenkins_job.py
βΒ Β βΒ Β βββ jenkins_plugin.py
βΒ Β βΒ Β βββ jenkins_script.py
βΒ Β βΒ Β βββ jira.py
βΒ Β βΒ Β βββ kernel_blacklist.py
βΒ Β βΒ Β βββ keycloak_authentication.py
βΒ Β βΒ Β βββ keycloak_client.py
βΒ Β βΒ Β βββ keycloak_client_rolemapping.py
βΒ Β βΒ Β βββ keycloak_clientscope.py
βΒ Β βΒ Β βββ keycloak_clientsecret_info.py
βΒ Β βΒ Β βββ keycloak_clientsecret_regenerate.py
βΒ Β βΒ Β βββ keycloak_clienttemplate.py
βΒ Β βΒ Β βββ keycloak_group.py
βΒ Β βΒ Β βββ keycloak_identity_provider.py
βΒ Β βΒ Β βββ keycloak_realm_info.py
βΒ Β βΒ Β βββ keycloak_realm.py
βΒ Β βΒ Β βββ keycloak_role.py
βΒ Β βΒ Β βββ keycloak_user_federation.py
βΒ Β βΒ Β βββ keycloak_user_rolemapping.py
βΒ Β βΒ Β βββ keyring_info.py
βΒ Β βΒ Β βββ keyring.py
βΒ Β βΒ Β βββ kibana_plugin.py
βΒ Β βΒ Β βββ launchd.py
βΒ Β βΒ Β βββ layman.py
βΒ Β βΒ Β βββ lbu.py
βΒ Β βΒ Β βββ ldap_attrs.py
βΒ Β βΒ Β βββ ldap_entry.py
βΒ Β βΒ Β βββ ldap_passwd.py
βΒ Β βΒ Β βββ ldap_search.py
βΒ Β βΒ Β βββ librato_annotation.py
βΒ Β βΒ Β βββ linode.py
βΒ Β βΒ Β βββ linode_v4.py
βΒ Β βΒ Β βββ listen_ports_facts.py
βΒ Β βΒ Β βββ lldp.py
βΒ Β βΒ Β βββ locale_gen.py
βΒ Β βΒ Β βββ logentries_msg.py
βΒ Β βΒ Β βββ logentries.py
βΒ Β βΒ Β βββ logstash_plugin.py
βΒ Β βΒ Β βββ lvg.py
βΒ Β βΒ Β βββ lvol.py
βΒ Β βΒ Β βββ lxca_cmms.py
βΒ Β βΒ Β βββ lxca_nodes.py
βΒ Β βΒ Β βββ lxc_container.py
βΒ Β βΒ Β βββ lxd_container.py
βΒ Β βΒ Β βββ lxd_profile.py
βΒ Β βΒ Β βββ lxd_project.py
βΒ Β βΒ Β βββ macports.py
βΒ Β βΒ Β βββ mail.py
βΒ Β βΒ Β βββ make.py
βΒ Β βΒ Β βββ manageiq_alert_profiles.py
βΒ Β βΒ Β βββ manageiq_alerts.py
βΒ Β βΒ Β βββ manageiq_group.py
βΒ Β βΒ Β βββ manageiq_policies_info.py
βΒ Β βΒ Β βββ manageiq_policies.py
βΒ Β βΒ Β βββ manageiq_provider.py
βΒ Β βΒ Β βββ manageiq_tags_info.py
βΒ Β βΒ Β βββ manageiq_tags.py
βΒ Β βΒ Β βββ manageiq_tenant.py
βΒ Β βΒ Β βββ manageiq_user.py
βΒ Β βΒ Β βββ mas.py
βΒ Β βΒ Β βββ matrix.py
βΒ Β βΒ Β βββ mattermost.py
βΒ Β βΒ Β βββ maven_artifact.py
βΒ Β βΒ Β βββ memset_dns_reload.py
βΒ Β βΒ Β βββ memset_memstore_info.py
βΒ Β βΒ Β βββ memset_server_info.py
βΒ Β βΒ Β βββ memset_zone_domain.py
βΒ Β βΒ Β βββ memset_zone.py
βΒ Β βΒ Β βββ memset_zone_record.py
βΒ Β βΒ Β βββ mksysb.py
βΒ Β βΒ Β βββ modprobe.py
βΒ Β βΒ Β βββ monit.py
βΒ Β βΒ Β βββ mqtt.py
βΒ Β βΒ Β βββ mssql_db.py
βΒ Β βΒ Β βββ mssql_script.py
βΒ Β βΒ Β βββ nagios.py
βΒ Β βΒ Β βββ netcup_dns.py
βΒ Β βΒ Β βββ newrelic_deployment.py
βΒ Β βΒ Β βββ nexmo.py
βΒ Β βΒ Β βββ nginx_status_info.py
βΒ Β βΒ Β βββ nictagadm.py
βΒ Β βΒ Β βββ nmcli.py
βΒ Β βΒ Β βββ nomad_job_info.py
βΒ Β βΒ Β βββ nomad_job.py
βΒ Β βΒ Β βββ nosh.py
βΒ Β βΒ Β βββ npm.py
βΒ Β βΒ Β βββ nsupdate.py
βΒ Β βΒ Β βββ oci_vcn.py
βΒ Β βΒ Β βββ odbc.py
βΒ Β βΒ Β βββ office_365_connector_card.py
βΒ Β βΒ Β βββ ohai.py
βΒ Β βΒ Β βββ omapi_host.py
βΒ Β βΒ Β βββ oneandone_firewall_policy.py
βΒ Β βΒ Β βββ oneandone_load_balancer.py
βΒ Β βΒ Β βββ oneandone_monitoring_policy.py
βΒ Β βΒ Β βββ oneandone_private_network.py
βΒ Β βΒ Β βββ oneandone_public_ip.py
βΒ Β βΒ Β βββ oneandone_server.py
βΒ Β βΒ Β βββ one_host.py
βΒ Β βΒ Β βββ one_image_info.py
βΒ Β βΒ Β βββ one_image.py
βΒ Β βΒ Β βββ onepassword_info.py
βΒ Β βΒ Β βββ one_service.py
βΒ Β βΒ Β βββ one_template.py
βΒ Β βΒ Β βββ oneview_datacenter_info.py
βΒ Β βΒ Β βββ oneview_enclosure_info.py
βΒ Β βΒ Β βββ oneview_ethernet_network_info.py
βΒ Β βΒ Β βββ oneview_ethernet_network.py
βΒ Β βΒ Β βββ oneview_fc_network_info.py
βΒ Β βΒ Β βββ oneview_fc_network.py
βΒ Β βΒ Β βββ oneview_fcoe_network_info.py
βΒ Β βΒ Β βββ oneview_fcoe_network.py
βΒ Β βΒ Β βββ oneview_logical_interconnect_group_info.py
βΒ Β βΒ Β βββ oneview_logical_interconnect_group.py
βΒ Β βΒ Β βββ oneview_network_set_info.py
βΒ Β βΒ Β βββ oneview_network_set.py
βΒ Β βΒ Β βββ oneview_san_manager_info.py
βΒ Β βΒ Β βββ oneview_san_manager.py
βΒ Β βΒ Β βββ one_vm.py
βΒ Β βΒ Β βββ online_server_info.py
βΒ Β βΒ Β βββ online_user_info.py
βΒ Β βΒ Β βββ openbsd_pkg.py
βΒ Β βΒ Β βββ opendj_backendprop.py
βΒ Β βΒ Β βββ open_iscsi.py
βΒ Β βΒ Β βββ openwrt_init.py
βΒ Β βΒ Β βββ opkg.py
βΒ Β βΒ Β βββ osx_defaults.py
βΒ Β βΒ Β βββ ovh_ip_failover.py
βΒ Β βΒ Β βββ ovh_ip_loadbalancing_backend.py
βΒ Β βΒ Β βββ ovh_monthly_billing.py
βΒ Β βΒ Β βββ pacemaker_cluster.py
βΒ Β βΒ Β βββ packet_device.py
βΒ Β βΒ Β βββ packet_ip_subnet.py
βΒ Β βΒ Β βββ packet_project.py
βΒ Β βΒ Β βββ packet_sshkey.py
βΒ Β βΒ Β βββ packet_volume_attachment.py
βΒ Β βΒ Β βββ packet_volume.py
βΒ Β βΒ Β βββ pacman_key.py
βΒ Β βΒ Β βββ pacman.py
βΒ Β βΒ Β βββ pagerduty_alert.py
βΒ Β βΒ Β βββ pagerduty_change.py
βΒ Β βΒ Β βββ pagerduty.py
βΒ Β βΒ Β βββ pagerduty_user.py
βΒ Β βΒ Β βββ pamd.py
βΒ Β βΒ Β βββ pam_limits.py
βΒ Β βΒ Β βββ parted.py
βΒ Β βΒ Β βββ pear.py
βΒ Β βΒ Β βββ pids.py
βΒ Β βΒ Β βββ pingdom.py
βΒ Β βΒ Β βββ pip_package_info.py
βΒ Β βΒ Β βββ pipx_info.py
βΒ Β βΒ Β βββ pipx.py
βΒ Β βΒ Β βββ pkg5_publisher.py
βΒ Β βΒ Β βββ pkg5.py
βΒ Β βΒ Β βββ pkgin.py
βΒ Β βΒ Β βββ pkgng.py
βΒ Β βΒ Β βββ pkgutil.py
βΒ Β βΒ Β βββ pmem.py
βΒ Β βΒ Β βββ portage.py
βΒ Β βΒ Β βββ portinstall.py
βΒ Β βΒ Β βββ pritunl_org_info.py
βΒ Β βΒ Β βββ pritunl_org.py
βΒ Β βΒ Β βββ pritunl_user_info.py
βΒ Β βΒ Β βββ pritunl_user.py
βΒ Β βΒ Β βββ profitbricks_datacenter.py
βΒ Β βΒ Β βββ profitbricks_nic.py
βΒ Β βΒ Β βββ profitbricks.py
βΒ Β βΒ Β βββ profitbricks_volume_attachments.py
βΒ Β βΒ Β βββ profitbricks_volume.py
βΒ Β βΒ Β βββ proxmox_disk.py
βΒ Β βΒ Β βββ proxmox_domain_info.py
βΒ Β βΒ Β βββ proxmox_group_info.py
βΒ Β βΒ Β βββ proxmox_kvm.py
βΒ Β βΒ Β βββ proxmox_nic.py
βΒ Β βΒ Β βββ proxmox.py
βΒ Β βΒ Β βββ proxmox_snap.py
βΒ Β βΒ Β βββ proxmox_storage_info.py
βΒ Β βΒ Β βββ proxmox_tasks_info.py
βΒ Β βΒ Β βββ proxmox_template.py
βΒ Β βΒ Β βββ proxmox_user_info.py
βΒ Β βΒ Β βββ pubnub_blocks.py
βΒ Β βΒ Β βββ pulp_repo.py
βΒ Β βΒ Β βββ puppet.py
βΒ Β βΒ Β βββ pushbullet.py
βΒ Β βΒ Β βββ pushover.py
βΒ Β βΒ Β βββ python_requirements_info.py
βΒ Β βΒ Β βββ rax_cbs_attachments.py
βΒ Β βΒ Β βββ rax_cbs.py
βΒ Β βΒ Β βββ rax_cdb_database.py
βΒ Β βΒ Β βββ rax_cdb.py
βΒ Β βΒ Β βββ rax_cdb_user.py
βΒ Β βΒ Β βββ rax_clb_nodes.py
βΒ Β βΒ Β βββ rax_clb.py
βΒ Β βΒ Β βββ rax_clb_ssl.py
βΒ Β βΒ Β βββ rax_dns.py
βΒ Β βΒ Β βββ rax_dns_record.py
βΒ Β βΒ Β βββ rax_facts.py
βΒ Β βΒ Β βββ rax_files_objects.py
βΒ Β βΒ Β βββ rax_files.py
βΒ Β βΒ Β βββ rax_identity.py
βΒ Β βΒ Β βββ rax_keypair.py
βΒ Β βΒ Β βββ rax_meta.py
βΒ Β βΒ Β βββ rax_mon_alarm.py
βΒ Β βΒ Β βββ rax_mon_check.py
βΒ Β βΒ Β βββ rax_mon_entity.py
βΒ Β βΒ Β βββ rax_mon_notification_plan.py
βΒ Β βΒ Β βββ rax_mon_notification.py
βΒ Β βΒ Β βββ rax_network.py
βΒ Β βΒ Β βββ rax.py
βΒ Β βΒ Β βββ rax_queue.py
βΒ Β βΒ Β βββ rax_scaling_group.py
βΒ Β βΒ Β βββ rax_scaling_policy.py
βΒ Β βΒ Β βββ read_csv.py
βΒ Β βΒ Β βββ redfish_command.py
βΒ Β βΒ Β βββ redfish_config.py
βΒ Β βΒ Β βββ redfish_info.py
βΒ Β βΒ Β βββ redhat_subscription.py
βΒ Β βΒ Β βββ redis_data_incr.py
βΒ Β βΒ Β βββ redis_data_info.py
βΒ Β βΒ Β βββ redis_data.py
βΒ Β βΒ Β βββ redis_info.py
βΒ Β βΒ Β βββ redis.py
βΒ Β βΒ Β βββ rhevm.py
βΒ Β βΒ Β βββ rhn_channel.py
βΒ Β βΒ Β βββ rhn_register.py
βΒ Β βΒ Β βββ rhsm_release.py
βΒ Β βΒ Β βββ rhsm_repository.py
βΒ Β βΒ Β βββ riak.py
βΒ Β βΒ Β βββ rocketchat.py
βΒ Β βΒ Β βββ rollbar_deployment.py
βΒ Β βΒ Β βββ rpm_ostree_pkg.py
βΒ Β βΒ Β βββ rundeck_acl_policy.py
βΒ Β βΒ Β βββ rundeck_job_executions_info.py
βΒ Β βΒ Β βββ rundeck_job_run.py
βΒ Β βΒ Β βββ rundeck_project.py
βΒ Β βΒ Β βββ runit.py
βΒ Β βΒ Β βββ sapcar_extract.py
βΒ Β βΒ Β βββ sap_task_list_execute.py
βΒ Β βΒ Β βββ say.py
βΒ Β βΒ Β βββ scaleway_compute_private_network.py
βΒ Β βΒ Β βββ scaleway_compute.py
βΒ Β βΒ Β βββ scaleway_container_info.py
βΒ Β βΒ Β βββ scaleway_container_namespace_info.py
βΒ Β βΒ Β βββ scaleway_container_namespace.py
βΒ Β βΒ Β βββ scaleway_container.py
βΒ Β βΒ Β βββ scaleway_container_registry_info.py
βΒ Β βΒ Β βββ scaleway_container_registry.py
βΒ Β βΒ Β βββ scaleway_database_backup.py
βΒ Β βΒ Β βββ scaleway_function_info.py
βΒ Β βΒ Β βββ scaleway_function_namespace_info.py
βΒ Β βΒ Β βββ scaleway_function_namespace.py
βΒ Β βΒ Β βββ scaleway_function.py
βΒ Β βΒ Β βββ scaleway_image_info.py
βΒ Β βΒ Β βββ scaleway_ip_info.py
βΒ Β βΒ Β βββ scaleway_ip.py
βΒ Β βΒ Β βββ scaleway_lb.py
βΒ Β βΒ Β βββ scaleway_organization_info.py
βΒ Β βΒ Β βββ scaleway_private_network.py
βΒ Β βΒ Β βββ scaleway_security_group_info.py
βΒ Β βΒ Β βββ scaleway_security_group.py
βΒ Β βΒ Β βββ scaleway_security_group_rule.py
βΒ Β βΒ Β βββ scaleway_server_info.py
βΒ Β βΒ Β βββ scaleway_snapshot_info.py
βΒ Β βΒ Β βββ scaleway_sshkey.py
βΒ Β βΒ Β βββ scaleway_user_data.py
βΒ Β βΒ Β βββ scaleway_volume_info.py
βΒ Β βΒ Β βββ scaleway_volume.py
βΒ Β βΒ Β βββ sefcontext.py
βΒ Β βΒ Β βββ selinux_permissive.py
βΒ Β βΒ Β βββ selogin.py
βΒ Β βΒ Β βββ sendgrid.py
βΒ Β βΒ Β βββ sensu_check.py
βΒ Β βΒ Β βββ sensu_client.py
βΒ Β βΒ Β βββ sensu_handler.py
βΒ Β βΒ Β βββ sensu_silence.py
βΒ Β βΒ Β βββ sensu_subscription.py
βΒ Β βΒ Β βββ seport.py
βΒ Β βΒ Β βββ serverless.py
βΒ Β βΒ Β βββ shutdown.py
βΒ Β βΒ Β βββ slackpkg.py
βΒ Β βΒ Β βββ slack.py
βΒ Β βΒ Β βββ sl_vm.py
βΒ Β βΒ Β βββ smartos_image_info.py
βΒ Β βΒ Β βββ snap_alias.py
βΒ Β βΒ Β βββ snap.py
βΒ Β βΒ Β βββ snmp_facts.py
βΒ Β βΒ Β βββ solaris_zone.py
βΒ Β βΒ Β βββ sorcery.py
βΒ Β βΒ Β βββ spectrum_device.py
βΒ Β βΒ Β βββ spectrum_model_attrs.py
βΒ Β βΒ Β βββ spotinst_aws_elastigroup.py
βΒ Β βΒ Β βββ ss_3par_cpg.py
βΒ Β βΒ Β βββ ssh_config.py
βΒ Β βΒ Β βββ stackdriver.py
βΒ Β βΒ Β βββ stacki_host.py
βΒ Β βΒ Β βββ statsd.py
βΒ Β βΒ Β βββ statusio_maintenance.py
βΒ Β βΒ Β βββ sudoers.py
βΒ Β βΒ Β βββ supervisorctl.py
βΒ Β βΒ Β βββ svc.py
βΒ Β βΒ Β βββ svr4pkg.py
βΒ Β βΒ Β βββ swdepot.py
βΒ Β βΒ Β βββ swupd.py
βΒ Β βΒ Β βββ syslogger.py
βΒ Β βΒ Β βββ syspatch.py
βΒ Β βΒ Β βββ sysrc.py
βΒ Β βΒ Β βββ sysupgrade.py
βΒ Β βΒ Β βββ taiga_issue.py
βΒ Β βΒ Β βββ telegram.py
βΒ Β βΒ Β βββ terraform.py
βΒ Β βΒ Β βββ timezone.py
βΒ Β βΒ Β βββ twilio.py
βΒ Β βΒ Β βββ typetalk.py
βΒ Β βΒ Β βββ udm_dns_record.py
βΒ Β βΒ Β βββ udm_dns_zone.py
βΒ Β βΒ Β βββ udm_group.py
βΒ Β βΒ Β βββ udm_share.py
βΒ Β βΒ Β βββ udm_user.py
βΒ Β βΒ Β βββ ufw.py
βΒ Β βΒ Β βββ uptimerobot.py
βΒ Β βΒ Β βββ urpmi.py
βΒ Β βΒ Β βββ utm_aaa_group_info.py
βΒ Β βΒ Β βββ utm_aaa_group.py
βΒ Β βΒ Β βββ utm_ca_host_key_cert_info.py
βΒ Β βΒ Β βββ utm_ca_host_key_cert.py
βΒ Β βΒ Β βββ utm_dns_host.py
βΒ Β βΒ Β βββ utm_network_interface_address_info.py
βΒ Β βΒ Β βββ utm_network_interface_address.py
βΒ Β βΒ Β βββ utm_proxy_auth_profile.py
βΒ Β βΒ Β βββ utm_proxy_exception.py
βΒ Β βΒ Β βββ utm_proxy_frontend_info.py
βΒ Β βΒ Β βββ utm_proxy_frontend.py
βΒ Β βΒ Β βββ utm_proxy_location_info.py
βΒ Β βΒ Β βββ utm_proxy_location.py
βΒ Β βΒ Β βββ vdo.py
βΒ Β βΒ Β βββ vertica_configuration.py
βΒ Β βΒ Β βββ vertica_info.py
βΒ Β βΒ Β βββ vertica_role.py
βΒ Β βΒ Β βββ vertica_schema.py
βΒ Β βΒ Β βββ vertica_user.py
βΒ Β βΒ Β βββ vexata_eg.py
βΒ Β βΒ Β βββ vexata_volume.py
βΒ Β βΒ Β βββ vmadm.py
βΒ Β βΒ Β βββ wakeonlan.py
βΒ Β βΒ Β βββ wdc_redfish_command.py
βΒ Β βΒ Β βββ wdc_redfish_info.py
βΒ Β βΒ Β βββ webfaction_app.py
βΒ Β βΒ Β βββ webfaction_db.py
βΒ Β βΒ Β βββ webfaction_domain.py
βΒ Β βΒ Β βββ webfaction_mailbox.py
βΒ Β βΒ Β βββ webfaction_site.py
βΒ Β βΒ Β βββ xattr.py
βΒ Β βΒ Β βββ xbps.py
βΒ Β βΒ Β βββ xcc_redfish_command.py
βΒ Β βΒ Β βββ xenserver_facts.py
βΒ Β βΒ Β βββ xenserver_guest_info.py
βΒ Β βΒ Β βββ xenserver_guest_powerstate.py
βΒ Β βΒ Β βββ xenserver_guest.py
βΒ Β βΒ Β βββ xfconf_info.py
βΒ Β βΒ Β βββ xfconf.py
βΒ Β βΒ Β βββ xfs_quota.py
βΒ Β βΒ Β βββ xml.py
βΒ Β βΒ Β βββ yarn.py
βΒ Β βΒ Β βββ yum_versionlock.py
βΒ Β βΒ Β βββ zfs_delegate_admin.py
βΒ Β βΒ Β βββ zfs_facts.py
βΒ Β βΒ Β βββ zfs.py
βΒ Β βΒ Β βββ znode.py
βΒ Β βΒ Β βββ zpool_facts.py
βΒ Β βΒ Β βββ zypper.py
βΒ Β βΒ Β βββ zypper_repository.py
βΒ Β βββ module_utils
βΒ Β βΒ Β βββ alicloud_ecs.py
βΒ Β βΒ Β βββ cloud.py
βΒ Β βΒ Β βββ cmd_runner.py
βΒ Β βΒ Β βββ csv.py
βΒ Β βΒ Β βββ database.py
βΒ Β βΒ Β βββ deps.py
βΒ Β βΒ Β βββ dimensiondata.py
βΒ Β βΒ Β βββ gandi_livedns_api.py
βΒ Β βΒ Β βββ gconftool2.py
βΒ Β βΒ Β βββ gitlab.py
βΒ Β βΒ Β βββ heroku.py
βΒ Β βΒ Β βββ hwc_utils.py
βΒ Β βΒ Β βββ ibm_sa_utils.py
βΒ Β βΒ Β βββ identity
βΒ Β βΒ Β βββ ilo_redfish_utils.py
βΒ Β βΒ Β βββ influxdb.py
βΒ Β βΒ Β βββ ipa.py
βΒ Β βΒ Β βββ jenkins.py
βΒ Β βΒ Β βββ known_hosts.py
βΒ Β βΒ Β βββ ldap.py
βΒ Β βΒ Β βββ linode.py
βΒ Β βΒ Β βββ lxd.py
βΒ Β βΒ Β βββ manageiq.py
βΒ Β βΒ Β βββ memset.py
βΒ Β βΒ Β βββ mh
βΒ Β βΒ Β βββ module_helper.py
βΒ Β βΒ Β βββ _mount.py
βΒ Β βΒ Β βββ net_tools
βΒ Β βΒ Β βββ oneandone.py
βΒ Β βΒ Β βββ onepassword.py
βΒ Β βΒ Β βββ oneview.py
βΒ Β βΒ Β βββ online.py
βΒ Β βΒ Β βββ opennebula.py
βΒ Β βΒ Β βββ oracle
βΒ Β βΒ Β βββ pipx.py
βΒ Β βΒ Β βββ proxmox.py
βΒ Β βΒ Β βββ pure.py
βΒ Β βΒ Β βββ rax.py
βΒ Β βΒ Β βββ redfish_utils.py
βΒ Β βΒ Β βββ redhat.py
βΒ Β βΒ Β βββ redis.py
βΒ Β βΒ Β βββ remote_management
βΒ Β βΒ Β βββ rundeck.py
βΒ Β βΒ Β βββ saslprep.py
βΒ Β βΒ Β βββ scaleway.py
βΒ Β βΒ Β βββ source_control
βΒ Β βΒ Β βββ storage
βΒ Β βΒ Β βββ univention_umc.py
βΒ Β βΒ Β βββ utm_utils.py
βΒ Β βΒ Β βββ version.py
βΒ Β βΒ Β βββ vexata.py
βΒ Β βΒ Β βββ wdc_redfish_utils.py
βΒ Β βΒ Β βββ xenserver.py
βΒ Β βΒ Β βββ xfconf.py
βΒ Β βββ test
βΒ Β βββ a_module.py
βββ README.md
βββ tests
βββ config.yml
βββ integration
βΒ Β βββ targets
βββ requirements.yml
βββ sanity
βΒ Β βββ extra
βΒ Β βββ ignore-2.11.txt
βΒ Β βββ ignore-2.11.txt.license
βΒ Β βββ ignore-2.12.txt
βΒ Β βββ ignore-2.12.txt.license
βΒ Β βββ ignore-2.13.txt
βΒ Β βββ ignore-2.13.txt.license
βΒ Β βββ ignore-2.14.txt
βΒ Β βββ ignore-2.14.txt.license
βΒ Β βββ ignore-2.15.txt
βΒ Β βββ ignore-2.15.txt.license
βββ unit
βΒ Β βββ compat
βΒ Β βββ mock
βΒ Β βββ plugins
βΒ Β βββ requirements.txt
βββ utils
βββ constraints.txt
βββ shippable
39 directories, 805 files
What we need to do
- Find out the latest version of a list of collections (within a defined range of versions)
- Download them from Ansible galaxy
- Create (or update) build and version files
- Aggregate release notes and porting guides with upgrade notes about breaking changes
- Supply necessary and miscellaneous python and distribution packaging files
- Build the package
- Test it
- Maybe other things, too
... and record Ansible doing that.
... and then record all that with a parrot
Is this cheating ?
It's not: Ansible is a great abstraction layer for automating workflows and integrating tools together.
It records hosts, tasks, results and files
(and a bunch of other things, too)
Demo !
https://demo.recordsansible.org/playbooks/3519.html
Getting started
# Install ansible (or ansible-core) with ara (including API server dependencies)
python3 -m pip install --user ansible "ara[server]"
# Configure Ansible to use the ara callback plugin
export ANSIBLE_CALLBACK_PLUGINS="$(python3 -m ara.setup.callback_plugins)"
# Run an Ansible playbook as usual
ansible-playbook hello-world.yml
# Use the CLI to see recorded playbooks
ara playbook list
# Start the development server at http://127.0.0.1:8000
# to query the API or browse recorded results
ara-manage runserver
Getting started (with a server)
# Create a directory for a volume to store settings and a sqlite database
mkdir -p ~/.ara/server
# Start an API server with docker from the image on DockerHub:
docker run --name api-server --detach --tty \
--volume ~/.ara/server:/opt/ara -p 8000:8000 \
docker.io/recordsansible/ara-api:latest
# or with podman from the image on quay.io:
podman run --name api-server --detach --tty \
--volume ~/.ara/server:/opt/ara -p 8000:8000 \
quay.io/recordsansible/ara-api:latest
Getting started (with a server)
# Install ansible (or ansible-core) with ara (excluding API server dependencies)
python3 -m pip install --user ansible ara
# Configure Ansible to use the ara callback plugin
export ANSIBLE_CALLBACK_PLUGINS="$(python3 -m ara.setup.callback_plugins)"
# Set up the ara callback to know where the API server is located
export ARA_API_CLIENT="http"
export ARA_API_SERVER="http://127.0.0.1:8000"
# Run an Ansible playbook as usual
ansible-playbook playbook.yaml
# Use the CLI to see recorded playbooks
ara playbook list
# Browse http://127.0.0.1:8000 (running from the container)
# to view the reporting interface
Thank You!
Any questions?
Come chat with the community:
Reach out: