Compare commits
1 Commits
v2.5.1
...
threading_
| Author | SHA1 | Date | |
|---|---|---|---|
| 847327eb9a |
472
.github/BOTMETA.yml
vendored
472
.github/BOTMETA.yml
vendored
@ -104,10 +104,11 @@ files:
|
||||
$modules/cloud/amazon/ec2_vpc_vgw.py: naslanidis
|
||||
$modules/cloud/amazon/ec2_vpc_vgw_facts.py: naslanidis willthames
|
||||
$modules/cloud/amazon/ec2_win_password.py: rickmendes
|
||||
$modules/cloud/amazon/ecs_cluster.py: simplesteph
|
||||
$modules/cloud/amazon/ecs_ecr.py: leedm777 willthames
|
||||
$modules/cloud/amazon/ecs_service.py:
|
||||
ignored: simplesteph
|
||||
$modules/cloud/amazon/ecs_service_facts.py: java1guy kaczynskid
|
||||
$modules/cloud/amazon/ecs_service_facts.py: java1guy kaczynskid simplesteph
|
||||
$modules/cloud/amazon/ecs_task.py: simplesteph
|
||||
$modules/cloud/amazon/ecs_taskdefinition.py: simplesteph
|
||||
$modules/cloud/amazon/efs.py: akazakov ryansydnor
|
||||
$modules/cloud/amazon/efs_facts.py: ryansydnor
|
||||
$modules/cloud/amazon/elasticache.py: alachaum jsdalton
|
||||
@ -152,64 +153,28 @@ files:
|
||||
$modules/cloud/amazon/sts_assume_role.py: bekelchik
|
||||
$modules/cloud/amazon/sts_session_token.py: pwnall
|
||||
$modules/cloud/atomic/: krsacme
|
||||
$modules/cloud/azure/azure.py:
|
||||
ignored: jwhitbeck
|
||||
$modules/cloud/azure/azure_rm_dnsrecordset.py:
|
||||
ignored: ozboms
|
||||
maintainers: $team_azure
|
||||
$modules/cloud/azure/azure_rm_loadbalancer.py:
|
||||
maintainers: $team_azure
|
||||
$modules/cloud/azure/azure_rm_networkinterface.py:
|
||||
ignored: chouseknecht
|
||||
maintainers: $team_azure
|
||||
$modules/cloud/azure/azure_rm_networkinterface_facts.py:
|
||||
ignored: chouseknecht
|
||||
maintainers: $team_azure
|
||||
$modules/cloud/azure/azure_rm_publicipaddress.py:
|
||||
ignored: chouseknecht
|
||||
maintainers: $team_azure
|
||||
$modules/cloud/azure/azure_rm_publicipaddress_facts.py:
|
||||
ignored: chouseknecht
|
||||
maintainers: $team_azure
|
||||
$modules/cloud/azure/azure_rm_resourcegroup.py:
|
||||
ignored: chouseknecht
|
||||
maintainers: $team_azure
|
||||
$modules/cloud/azure/azure_rm_resourcegroup_facts.py:
|
||||
ignored: chouseknecht
|
||||
maintainers: $team_azure
|
||||
$modules/cloud/azure/azure_rm_securitygroup.py:
|
||||
ignored: chouseknecht
|
||||
maintainers: $team_azure
|
||||
$modules/cloud/azure/azure_rm_securitygroup_facts.py:
|
||||
ignored: chouseknecht
|
||||
maintainers: $team_azure
|
||||
$modules/cloud/azure/azure_rm_storageaccount.py:
|
||||
ignored: chouseknecht
|
||||
maintainers: $team_azure
|
||||
$modules/cloud/azure/azure_rm_storageaccount_facts.py:
|
||||
ignored: chouseknecht
|
||||
maintainers: $team_azure
|
||||
$modules/cloud/azure/azure_rm_storageblob.py:
|
||||
ignored: chouseknecht
|
||||
maintainers: $team_azure
|
||||
$modules/cloud/azure/azure_rm_subnet.py:
|
||||
ignored: chouseknecht
|
||||
maintainers: $team_azure
|
||||
$modules/cloud/azure/azure_rm_virtualmachine.py:
|
||||
ignored: chouseknecht
|
||||
maintainers: $team_azure
|
||||
$modules/cloud/azure/azure_rm_virtualmachineimage_facts.py:
|
||||
ignored: chouseknecht
|
||||
maintainers: $team_azure
|
||||
$modules/cloud/azure/azure_rm_virtualnetwork.py:
|
||||
ignored: chouseknecht
|
||||
maintainers: $team_azure
|
||||
$modules/cloud/azure/azure_rm_virtualnetwork_facts.py:
|
||||
ignored: chouseknecht
|
||||
maintainers: $team_azure
|
||||
$modules/cloud/azure/azure.py: jwhitbeck
|
||||
$modules/cloud/azure/azure_rm_networkinterface.py: $team_azure
|
||||
$modules/cloud/azure/azure_rm_networkinterface_facts.py: $team_azure
|
||||
$modules/cloud/azure/azure_rm_publicipaddress.py: $team_azure
|
||||
$modules/cloud/azure/azure_rm_publicipaddress_facts.py: $team_azure
|
||||
$modules/cloud/azure/azure_rm_resourcegroup.py: $team_azure
|
||||
$modules/cloud/azure/azure_rm_resourcegroup_facts.py: $team_azure
|
||||
$modules/cloud/azure/azure_rm_securitygroup.py: $team_azure
|
||||
$modules/cloud/azure/azure_rm_securitygroup_facts.py: $team_azure
|
||||
$modules/cloud/azure/azure_rm_storageaccount.py: $team_azure
|
||||
$modules/cloud/azure/azure_rm_storageaccount_facts.py: $team_azure
|
||||
$modules/cloud/azure/azure_rm_storageblob.py: $team_azure
|
||||
$modules/cloud/azure/azure_rm_subnet.py: $team_azure
|
||||
$modules/cloud/azure/azure_rm_virtualmachine.py: $team_azure
|
||||
$modules/cloud/azure/azure_rm_virtualmachineimage_facts.py: $team_azure
|
||||
$modules/cloud/azure/azure_rm_virtualnetwork.py: $team_azure
|
||||
$modules/cloud/azure/azure_rm_virtualnetwork_facts.py: $team_azure
|
||||
$modules/cloud/centurylink/: clc-runner
|
||||
$modules/cloud/cloudscale/cloudscale_server.py: gaudenz
|
||||
$modules/cloud/cloudstack/: resmo
|
||||
$modules/cloud/cloudstack/:
|
||||
labels: cloudstack
|
||||
maintainers: resmo
|
||||
$modules/cloud/digital_ocean/: BondAnthony
|
||||
$modules/cloud/digital_ocean/digital_ocean.py: alukovenko zbal
|
||||
$modules/cloud/digital_ocean/digital_ocean_domain.py: alukovenko mgregson
|
||||
@ -218,14 +183,13 @@ files:
|
||||
$modules/cloud/dimensiondata/dimensiondata_network.py: aimonb tintoy
|
||||
$modules/cloud/docker/docker_container.py:
|
||||
ignored: ThomasSteinbach
|
||||
maintainers: $team_ansible cove dusdanig kassiansun softzilla zfil
|
||||
$modules/cloud/docker/docker_image.py: $team_ansible softzilla
|
||||
$modules/cloud/docker/docker_image_facts.py: $team_ansible
|
||||
$modules/cloud/docker/docker_login.py: olsaki
|
||||
maintainers: $team_ansible cove dusdanig jctanner kassiansun softzilla zfil
|
||||
$modules/cloud/docker/docker_image.py: $team_ansible jctanner softzilla
|
||||
$modules/cloud/docker/docker_image_facts.py: $team_ansible jctanner
|
||||
$modules/cloud/docker/docker_login.py: jctanner olsaki
|
||||
$modules/cloud/docker/docker_network.py: keitwb olsaki
|
||||
$modules/cloud/docker/docker_secret.py:
|
||||
$modules/cloud/docker/docker_service.py: $team_ansible
|
||||
$modules/cloud/google/: rambleraptor erjohnso
|
||||
$modules/cloud/google/gc_storage.py: supertom
|
||||
$modules/cloud/google/gcdns_record.py: walbert947
|
||||
$modules/cloud/google/gcdns_zone.py: walbert947
|
||||
@ -261,8 +225,7 @@ files:
|
||||
$modules/cloud/misc/virt.py: $team_ansible
|
||||
$modules/cloud/misc/virt_net.py: drybjed
|
||||
$modules/cloud/misc/virt_pool.py: drybjed
|
||||
$modules/cloud/misc/xenserver_facts.py:
|
||||
ignored: andyhky
|
||||
$modules/cloud/misc/xenserver_facts.py: andyhky
|
||||
$modules/cloud/openstack/: $team_openstack
|
||||
$modules/cloud/openstack/os_keystone_service.py: $team_openstack SamYaple
|
||||
$modules/cloud/openstack/os_project.py: $team_openstack agireud
|
||||
@ -271,75 +234,66 @@ files:
|
||||
$modules/cloud/packet/:
|
||||
$modules/cloud/profitbricks/: baldwinSPC
|
||||
$modules/cloud/pubnub/pubnub_blocks.py: parfeon pubnub
|
||||
$modules/cloud/rackspace/:
|
||||
ignored: sivel angstwad
|
||||
$modules/cloud/rackspace/rax_cdb.py: jails
|
||||
$modules/cloud/rackspace/rax_cdb_database.py: jails
|
||||
$modules/cloud/rackspace/rax_cdb_user.py: jails
|
||||
$modules/cloud/rackspace/rax_clb_nodes.py: neuroid
|
||||
$modules/cloud/rackspace/rax_clb_ssl.py: smashwilson
|
||||
$modules/cloud/rackspace/rax_dns.py:
|
||||
$modules/cloud/rackspace/rax_dns_record.py:
|
||||
$modules/cloud/rackspace/rax_facts.py:
|
||||
$modules/cloud/rackspace/rax_files.py:
|
||||
$modules/cloud/rackspace/rax_files_objects.py:
|
||||
$modules/cloud/rackspace/rax_keypair.py:
|
||||
$modules/cloud/rackspace/rax_meta.py:
|
||||
$modules/cloud/rackspace/rax_dns.py: sivel
|
||||
$modules/cloud/rackspace/rax_dns_record.py: sivel
|
||||
$modules/cloud/rackspace/rax_facts.py: sivel
|
||||
$modules/cloud/rackspace/rax_files.py: angstwad sivel
|
||||
$modules/cloud/rackspace/rax_files_objects.py: angstwad sivel
|
||||
$modules/cloud/rackspace/rax_keypair.py: sivel
|
||||
$modules/cloud/rackspace/rax_meta.py: sivel
|
||||
$modules/cloud/rackspace/rax_mon_alarm.py: smashwilson
|
||||
$modules/cloud/rackspace/rax_mon_check.py: smashwilson
|
||||
$modules/cloud/rackspace/rax_mon_entity.py: smashwilson
|
||||
$modules/cloud/rackspace/rax_mon_notification.py: smashwilson
|
||||
$modules/cloud/rackspace/rax_mon_notification_plan.py: smashwilson
|
||||
$modules/cloud/rackspace/rax_scaling_group.py:
|
||||
$modules/cloud/rackspace/rax_scaling_policy.py:
|
||||
$modules/cloud/rackspace/rax_scaling_group.py: sivel
|
||||
$modules/cloud/rackspace/rax_scaling_policy.py: sivel
|
||||
$modules/cloud/smartos/imgadm.py: jasperla
|
||||
$modules/cloud/smartos/smartos_image_facts.py: xen0l
|
||||
$modules/cloud/smartos/vmadm.py: jasperla
|
||||
$modules/cloud/softlayer/sl_vm.py: mcltn
|
||||
$modules/cloud/univention/: 2-B
|
||||
$modules/cloud/vmware/:
|
||||
maintainers: $team_vmware
|
||||
ignored: jcpowermac mtnbikenc
|
||||
$modules/cloud/vmware/: $team_vmware
|
||||
$modules/cloud/vmware/vca_fw.py: privateip
|
||||
$modules/cloud/vmware/vca_nat.py: privateip
|
||||
$modules/cloud/vmware/vca_vapp.py: privateip
|
||||
$modules/cloud/vmware/vcenter_license.py: dagwieers
|
||||
$modules/cloud/vmware/vmware_cluster.py: $team_ansible
|
||||
$modules/cloud/vmware/vmware_datacenter.py: $team_ansible kamsz
|
||||
$modules/cloud/vmware/vmware_dns_config.py: $team_ansible
|
||||
$modules/cloud/vmware/vmware_dvs_host.py: $team_ansible
|
||||
$modules/cloud/vmware/vmware_dvs_portgroup.py: $team_ansible
|
||||
$modules/cloud/vmware/vmware_dvswitch.py: $team_ansible
|
||||
$modules/cloud/vmware/vmware_guest.py: dagwieers
|
||||
$modules/cloud/vmware/vmware_cluster.py: $team_ansible jcpowermac
|
||||
$modules/cloud/vmware/vmware_datacenter.py: $team_ansible jcpowermac kamsz
|
||||
$modules/cloud/vmware/vmware_dns_config.py: $team_ansible jcpowermac
|
||||
$modules/cloud/vmware/vmware_dvs_host.py: $team_ansible jcpowermac
|
||||
$modules/cloud/vmware/vmware_dvs_portgroup.py: $team_ansible jcpowermac
|
||||
$modules/cloud/vmware/vmware_dvswitch.py: $team_ansible jcpowermac
|
||||
$modules/cloud/vmware/vmware_guest.py: $team_vmware
|
||||
$modules/cloud/vmware/vmware_guest_facts.py: nerzhul
|
||||
$modules/cloud/vmware/vmware_guest_find.py:
|
||||
$modules/cloud/vmware/vmware_host.py: $team_ansible dagwieers
|
||||
$modules/cloud/vmware/vmware_guest_find.py: $team_vmware
|
||||
$modules/cloud/vmware/vmware_host.py: $team_ansible jcpowermac
|
||||
$modules/cloud/vmware/vmware_local_user_manager.py: $team_ansible
|
||||
$modules/cloud/vmware/vmware_maintenancemode.py: $team_ansible
|
||||
$modules/cloud/vmware/vmware_migrate_vmk.py: $team_ansible
|
||||
$modules/cloud/vmware/vmware_portgroup.py: $team_ansible
|
||||
$modules/cloud/vmware/vmware_migrate_vmk.py: $team_ansible jcpowermac
|
||||
$modules/cloud/vmware/vmware_portgroup.py: $team_ansible jcpowermac
|
||||
$modules/cloud/vmware/vmware_resource_pool.py: dav1x
|
||||
$modules/cloud/vmware/vmware_target_canonical_facts.py: $team_ansible
|
||||
$modules/cloud/vmware/vmware_vm_facts.py: $team_ansible
|
||||
$modules/cloud/vmware/vmware_vm_facts.py: $team_ansible jcpowermac
|
||||
$modules/cloud/vmware/vmware_vm_shell.py: chrrrles ritzk
|
||||
$modules/cloud/vmware/vmware_vm_vss_dvs_migrate.py: $team_ansible
|
||||
$modules/cloud/vmware/vmware_vmkernel.py: $team_ansible
|
||||
$modules/cloud/vmware/vmware_vmkernel_ip_config.py: $team_ansible
|
||||
$modules/cloud/vmware/vmware_vm_vss_dvs_migrate.py: $team_ansible jcpowermac
|
||||
$modules/cloud/vmware/vmware_vmkernel.py: $team_ansible jcpowermac
|
||||
$modules/cloud/vmware/vmware_vmkernel_ip_config.py: $team_ansible jcpowermac
|
||||
$modules/cloud/vmware/vmware_vmotion.py: $team_ansible bedecarroll
|
||||
$modules/cloud/vmware/vmware_vsan_cluster.py: $team_ansible
|
||||
$modules/cloud/vmware/vmware_vswitch.py: akasurde
|
||||
$modules/cloud/vmware/vmware_vswitch.py: akasurde jcpowermac
|
||||
$modules/cloud/vmware/vsphere_copy.py: dagwieers
|
||||
$modules/cloud/vmware/vsphere_guest.py: $team_ansible rhoop dagwieers
|
||||
$modules/cloud/vultr/: resmo
|
||||
$modules/cloud/vmware/vsphere_guest.py: $team_ansible rhoop
|
||||
$modules/cloud/webfaction/: quentinsf
|
||||
$modules/clustering/consul.py: sgargan
|
||||
$modules/clustering/consul_acl.py: sgargan
|
||||
$modules/clustering/consul_kv.py: sgargan
|
||||
$modules/clustering/consul_session.py: sgargan
|
||||
$modules/clustering/etcd3.py: evrardjp
|
||||
$modules/clustering/k8s: chouseknecht sdoran maxamillion fabianvf flaper87
|
||||
$modules/clustering/kubernetes.py: erjohnso supertom
|
||||
$modules/clustering/openshift: chouseknecht sdoran maxamillion fabianvf flaper87
|
||||
$modules/clustering/pacemaker_cluster.py:
|
||||
$modules/clustering/znode.py: treyperry
|
||||
$modules/commands/command.py: $team_ansible
|
||||
@ -367,9 +321,7 @@ files:
|
||||
$modules/database/postgresql/postgresql_user.py: $team_ansible matburt nerzhul
|
||||
$modules/database/proxysql/: bmildren
|
||||
$modules/database/vertica/: dareko
|
||||
$modules/files/acl.py:
|
||||
ignored: astorije
|
||||
maintainers: $team_ansible bcoca
|
||||
$modules/files/acl.py: $team_ansible astorije bcoca
|
||||
$modules/files/archive.py: bendoh
|
||||
$modules/files/assemble.py: $team_ansible sfromm
|
||||
$modules/files/blockinfile.py: yaegashi
|
||||
@ -394,7 +346,6 @@ files:
|
||||
maintainers: tbielawa dagwieers sm4rk0 cmprescott
|
||||
$modules/identity/ipa/:
|
||||
maintainers: $team_ipa
|
||||
$modules/identity/keycloak/: eikef
|
||||
$modules/identity/opendj/opendj_backendprop.py: dj-wasabi
|
||||
$modules/inventory/add_host.py: $team_ansible
|
||||
$modules/inventory/group_by.py: $team_ansible jhoekx
|
||||
@ -419,8 +370,7 @@ files:
|
||||
$modules/monitoring/honeybadger_deployment.py: stympy
|
||||
$modules/monitoring/icinga2_feature.py: nerzhul
|
||||
$modules/monitoring/librato_annotation.py: sedward
|
||||
$modules/monitoring/logentries.py:
|
||||
ignored: ivanvanderbyl
|
||||
$modules/monitoring/logentries.py: ivanvanderbyl
|
||||
$modules/monitoring/logicmonitor.py: ethanculler woz5999
|
||||
$modules/monitoring/logstash_plugin.py: nerzhul
|
||||
$modules/monitoring/monit.py: brian-brazil dstoflet
|
||||
@ -435,17 +385,15 @@ files:
|
||||
$modules/monitoring/stackdriver.py: bwhaley
|
||||
$modules/monitoring/statusio_maintenance.py: bhcopeland
|
||||
$modules/monitoring/uptimerobot.py: nate-kingsley
|
||||
$modules/monitoring/zabbix: eikef
|
||||
$modules/monitoring/zabbix/zabbix_group.py: cove harrisongu
|
||||
$modules/monitoring/zabbix/zabbix_host.py: cove harrisongu D3DeFi
|
||||
$modules/monitoring/zabbix/zabbix_hostmacro.py: cave
|
||||
$modules/monitoring/zabbix/zabbix_maintenance.py: abulimov
|
||||
$modules/monitoring/zabbix/zabbix_screen.py: cove harrisongu
|
||||
$modules/monitoring/zabbix/zabbix_template.py: eikef Logan2211 sookido
|
||||
$modules/monitoring/zabbix_group.py: cove eikef harrisongu
|
||||
$modules/monitoring/zabbix_host.py: cove eikef harrisongu D3DeFi
|
||||
$modules/monitoring/zabbix_hostmacro.py: cave eikef
|
||||
$modules/monitoring/zabbix_maintenance.py: abulimov eikef
|
||||
$modules/monitoring/zabbix_screen.py: cove eikef harrisongu
|
||||
$modules/net_tools/basics/get_url.py: jpmens
|
||||
$modules/net_tools/basics/slurp.py: $team_ansible
|
||||
$modules/net_tools/basics/uri.py: $team_ansible
|
||||
$modules/net_tools/cloudflare_dns.py: mgruener andreaso
|
||||
$modules/net_tools/cloudflare_dns.py: mgruener
|
||||
$modules/net_tools/dnsimple.py: drcapulet
|
||||
$modules/net_tools/dnsmadeeasy.py: briceburg
|
||||
$modules/net_tools/exoscale/: resmo
|
||||
@ -453,51 +401,48 @@ files:
|
||||
$modules/net_tools/ipify_facts.py: resmo
|
||||
$modules/net_tools/ipinfoio_facts.py: akostyuk
|
||||
$modules/net_tools/ldap/: jtyr
|
||||
$modules/net_tools/lldp.py:
|
||||
ignored: andyhky
|
||||
$modules/net_tools/nios/:
|
||||
labels: networking
|
||||
maintainers: $team_networking
|
||||
$modules/net_tools/lldp.py: andyhky
|
||||
$modules/net_tools/nmcli.py: alcamie101
|
||||
$modules/net_tools/nsupdate.py: nerzhul
|
||||
$modules/net_tools/omapi_host.py: nerzhul
|
||||
$modules/net_tools/snmp_facts.py: ogenstad
|
||||
$modules/network/a10/: ericchou1 mischapeters
|
||||
$modules/network/aci/: $team_aci
|
||||
$modules/network/aci/:
|
||||
labels: aci
|
||||
maintainers: dagwieers schunduri jmcgill298
|
||||
$modules/network/aireos/: jmighion
|
||||
$modules/network/aos/: dgarros jeremyschulman
|
||||
$modules/network/aruba/: jmighion
|
||||
$modules/network/asa/: ogenstad
|
||||
$modules/network/avi/: $team_avi
|
||||
$modules/network/avi/:
|
||||
labels: avi
|
||||
maintainers: $team_avi
|
||||
$modules/network/bigswitch/: jayakody tedelhourani vuile
|
||||
$modules/network/citrix/netscaler.py: $team_ansible
|
||||
$modules/network/cloudengine/: QijunPan
|
||||
$modules/network/cnos/: dkasberg amuraleedhar
|
||||
$modules/network/cumulus/: $team_cumulus
|
||||
$modules/network/dellos10/: skg-net
|
||||
$modules/network/dellos6/: abirami-n skg-net
|
||||
$modules/network/dellos9/: dhivyap skg-net
|
||||
$modules/network/enos/: amuraleedhar
|
||||
$modules/network/eos/: privateip trishnaguha
|
||||
$modules/network/f5/:
|
||||
ignored: Etienne-Carriere mhite mryanlam perzizzle srvg wojtek0806 JoeReifel
|
||||
ignored: Etienne-Carriere mhite mryanlam perzizzle srvg wojtek0806
|
||||
labels: f5
|
||||
maintainers: caphrim007
|
||||
$modules/network/fortios/: bjolivot
|
||||
$modules/network/illumos/: xen0l
|
||||
$modules/network/interface/: $team_networking
|
||||
$modules/network/ios/: privateip rcarrillocruz kedarX
|
||||
$modules/network/iosxr/: privateip rcarrillocruz kedarX
|
||||
$modules/network/ironware/: paulquack
|
||||
$modules/network/ios/: privateip rcarrillocruz
|
||||
$modules/network/iosxr/: privateip rcarrillocruz
|
||||
$modules/network/junos/: Qalthos ganeshrn
|
||||
$modules/network/layer2/: $team_networking
|
||||
$modules/network/layer3/: $team_networking
|
||||
$modules/network/lenovo/: dkasberg amuraleedhar
|
||||
$modules/network/netconf/netconf_config.py: ganeshrn lpenz userlerueda
|
||||
$modules/network/netscaler/: $team_netscaler
|
||||
$modules/network/netvisor/: $team_netvisor
|
||||
$modules/network/nuage/: pdellaert
|
||||
$modules/network/nxos/: $team_nxos
|
||||
$modules/network/nso/: $team_nso
|
||||
$modules/network/onyx/: $team_onyx
|
||||
$modules/network/openvswitch/:
|
||||
ignored: stygstra
|
||||
maintainers: $team_networking
|
||||
@ -544,12 +489,10 @@ files:
|
||||
$modules/packaging/language/maven_artifact.py: chrisisbeef tumbl3w33d
|
||||
$modules/packaging/language/npm.py:
|
||||
ignored: chrishoffman
|
||||
maintainers: shane-walker xcambar
|
||||
maintainers: shane-walker
|
||||
$modules/packaging/language/pear.py:
|
||||
$modules/packaging/language/pip.py: lujeni robinro
|
||||
$modules/packaging/os/apk.py:
|
||||
ignored: kbrebanov
|
||||
maintainers: tdtrask
|
||||
$modules/packaging/os/apk.py: kbrebanov tdtrask
|
||||
$modules/packaging/os/apt.py: $team_ansible mgwilliams
|
||||
$modules/packaging/os/apt_key.py: jvantuyl
|
||||
$modules/packaging/os/apt_repository.py: $team_ansible sashka
|
||||
@ -564,9 +507,7 @@ files:
|
||||
$modules/packaging/os/openbsd_pkg.py: eest
|
||||
$modules/packaging/os/opkg.py: skinp
|
||||
$modules/packaging/os/package.py: $team_ansible
|
||||
$modules/packaging/os/pacman.py:
|
||||
ignored: elasticdog
|
||||
maintainers: indrajitr
|
||||
$modules/packaging/os/pacman.py: elasticdog indrajitr
|
||||
$modules/packaging/os/pkg5.py: mavit
|
||||
$modules/packaging/os/pkg5_publisher.py: mavit
|
||||
$modules/packaging/os/pkgin.py: L2G jasperla szinck troy2914
|
||||
@ -601,7 +542,6 @@ files:
|
||||
$modules/remote_management/ipmi/: cloudnull
|
||||
$modules/remote_management/manageiq/: $team_manageiq
|
||||
$modules/remote_management/stacki/stacki_host.py: bbyhuy bsanders
|
||||
$modules/remote_management/ucs/: $team_ucs
|
||||
$modules/remote_management/wakeonlan.py: dagwieers
|
||||
$modules/source_control/bzr.py: andreparames
|
||||
$modules/source_control/git.py: $team_ansible
|
||||
@ -637,7 +577,7 @@ files:
|
||||
$modules/system/dconf.py: azaghal
|
||||
$modules/system/debconf.py: bcoca
|
||||
$modules/system/facter.py: $team_ansible
|
||||
$modules/system/filesystem.py: abulimov pilou-
|
||||
$modules/system/filesystem.py: abulimov
|
||||
$modules/system/firewalld.py: maxamillion
|
||||
$modules/system/gconftool2.py: akasurde kevensen
|
||||
$modules/system/getent.py: bcoca
|
||||
@ -712,15 +652,13 @@ files:
|
||||
$modules/web_infrastructure/jenkins_plugin.py: jtyr
|
||||
$modules/web_infrastructure/jenkins_script.py: hogarthj
|
||||
$modules/web_infrastructure/jira.py: Slezhuk tarka
|
||||
$modules/web_infrastructure/letsencrypt.py: mgruener resmo felixfontein
|
||||
$modules/web_infrastructure/letsencrypt.py: mgruener
|
||||
$modules/web_infrastructure/nginx_status_facts.py: resmo
|
||||
$modules/web_infrastructure/rundeck_acl_policy.py:
|
||||
$modules/web_infrastructure/rundeck_project.py: nerzhul
|
||||
$modules/web_infrastructure/supervisorctl.py: inetfuture mattupstate
|
||||
$modules/web_infrastructure/taiga_issue.py: lekum
|
||||
$modules/windows/:
|
||||
maintainers: $team_windows
|
||||
ignored: angstwad
|
||||
$modules/windows/: $team_windows
|
||||
$modules/windows/async_status.ps1: $team_windows
|
||||
$modules/windows/async_wrapper.ps1: $team_windows
|
||||
$modules/windows/setup.ps1: $team_ansible
|
||||
@ -773,8 +711,8 @@ files:
|
||||
$modules/windows/win_firewall.py: if-meaton
|
||||
$modules/windows/win_firewall_rule.ps1: TimothyVandenbrande ar7z1
|
||||
$modules/windows/win_firewall_rule.py: TimothyVandenbrande ar7z1
|
||||
$modules/windows/win_get_url.ps1: jhawkesworth
|
||||
$modules/windows/win_get_url.py: jhawkesworth
|
||||
$modules/windows/win_get_url.ps1: angstwad jhawkesworth
|
||||
$modules/windows/win_get_url.py: angstwad jhawkesworth
|
||||
$modules/windows/win_group_membership.ps1: andrewsaraceni
|
||||
$modules/windows/win_group_membership.py: andrewsaraceni
|
||||
$modules/windows/win_group.ps1: chrishoffman
|
||||
@ -797,8 +735,8 @@ files:
|
||||
$modules/windows/win_mapped_drive.py: jborean93
|
||||
$modules/windows/win_msg.ps1: $team_windows
|
||||
$modules/windows/win_msg.py: $team_windows
|
||||
$modules/windows/win_msi.ps1:
|
||||
$modules/windows/win_msi.py:
|
||||
$modules/windows/win_msi.ps1: sivel
|
||||
$modules/windows/win_msi.py: sivel
|
||||
$modules/windows/win_nssm.ps1:
|
||||
maintainers: smadam813
|
||||
ignored: georgefrank h0nIg
|
||||
@ -866,8 +804,8 @@ files:
|
||||
$modules/windows/win_updates.py: nitzmahone
|
||||
$modules/windows/win_uri.ps1: blakfeld
|
||||
$modules/windows/win_uri.py: blakfeld
|
||||
$modules/windows/win_user.ps1: cchurch nitzmahone
|
||||
$modules/windows/win_user.py: cchurch nitzmahone
|
||||
$modules/windows/win_user.ps1: angstwad cchurch nitzmahone
|
||||
$modules/windows/win_user.py: angstwad cchurch nitzmahone
|
||||
$modules/windows/win_user_right.ps1: jborean93
|
||||
$modules/windows/win_user_right.py: jborean93
|
||||
$modules/windows/win_wakeonlan.ps1: dagwieers
|
||||
@ -881,14 +819,6 @@ files:
|
||||
- inventory script
|
||||
labels: "c:inventory/contrib_script"
|
||||
support: community
|
||||
contrib/inventory/digital_ocean.py:
|
||||
keywords:
|
||||
- digital_ocean dynamic inventory script
|
||||
maintainers: BondAnthony
|
||||
labels:
|
||||
- cloud
|
||||
- digital_ocean
|
||||
support: community
|
||||
contrib/inventory/linode.py:
|
||||
keywords:
|
||||
- linode dynamic inventory script
|
||||
@ -901,14 +831,6 @@ files:
|
||||
labels:
|
||||
- cloud
|
||||
- openstack
|
||||
contrib/inventory/infoblox.py:
|
||||
keywords:
|
||||
- infoblox dynamic inventory script
|
||||
labels:
|
||||
- ipam
|
||||
- infoblox
|
||||
- networking
|
||||
maintainers: $team_networking
|
||||
contrib/inventory/azure_rm.py:
|
||||
keywords:
|
||||
- azure inventory
|
||||
@ -944,109 +866,112 @@ files:
|
||||
- core inventory
|
||||
- inventory
|
||||
- inventory parsing
|
||||
$module_utils/net_tools/nios/:
|
||||
labels: networking
|
||||
maintainers: $team_networking
|
||||
$module_utils/network/a10:
|
||||
$module_utils/a10.py:
|
||||
maintainers: ericchou1 mischapeters
|
||||
labels: networking
|
||||
$module_utils/network/aci:
|
||||
maintainers: $team_aci
|
||||
labels: networking
|
||||
$module_utils/network/aireos:
|
||||
maintainers: jmighion
|
||||
labels: networking
|
||||
$module_utils/network/aos:
|
||||
maintainers: dgarros jeremyschulman
|
||||
labels: networking
|
||||
$module_utils/azure_rm_common.py:
|
||||
maintainers: $team_azure
|
||||
$module_utils/aci.py:
|
||||
maintainers: dagwieers schunduri jmcgill298
|
||||
labels:
|
||||
- azure
|
||||
- cloud
|
||||
$module_utils/network/aruba:
|
||||
- aci
|
||||
- networking
|
||||
$module_utils/aireos.py:
|
||||
maintainers: jmighion
|
||||
labels: networking
|
||||
$module_utils/network/asa:
|
||||
$module_utils/eos.py:
|
||||
maintainers: $team_networking
|
||||
labels: networking
|
||||
$module_utils/aruba.py:
|
||||
maintainers: jmighion
|
||||
labels: networking
|
||||
$module_utils/asa.py:
|
||||
maintainers: ogenstad
|
||||
labels: networking
|
||||
$module_utils/network/avi:
|
||||
$module_utils/avi.py:
|
||||
maintainers: $team_avi
|
||||
labels: networking
|
||||
$module_utils/network/bigswitch:
|
||||
labels:
|
||||
- avi
|
||||
- networking
|
||||
$module_utils/bigswitch_utils.py:
|
||||
maintainers: jayakody tedelhourani vuile
|
||||
labels: networking
|
||||
$module_utils/network/cloudengine:
|
||||
$module_utils/cisco_usc.py:
|
||||
maintainers: ragupta-git
|
||||
labels: networking
|
||||
$module_utils/cloudengine.py:
|
||||
maintainers: QijunPan
|
||||
labels: networking
|
||||
$module_utils/cloudstack.py:
|
||||
maintainers: resmo
|
||||
labels: cloudstack
|
||||
$module_utils/network/cnos:
|
||||
$module_utils/cnos_devicerules.py:
|
||||
maintainers: dkasberg amuraleedhar
|
||||
labels: networking
|
||||
$module_utils/cnos_errorcodes.py:
|
||||
maintainers: dkasberg amuraleedhar
|
||||
labels: networking
|
||||
$module_utils/cnos.py:
|
||||
maintainers: dkasberg amuraleedhar
|
||||
labels: networking
|
||||
$module_utils/crypto.py:
|
||||
maintainers: Spredzy
|
||||
$module_utils/network/dellos6:
|
||||
$module_utils/dellos:
|
||||
maintainers: skg-net
|
||||
labels: networking
|
||||
$module_utils/network/dellos9:
|
||||
maintainers: skg-net
|
||||
labels: networking
|
||||
$module_utils/network/dellos10:
|
||||
maintainers: skg-net
|
||||
labels: networking
|
||||
$module_utils/network/enos:
|
||||
maintainers: amuraleedhar
|
||||
labels: networking
|
||||
$module_utils/f5_utils.py:
|
||||
maintainers: caphrim007
|
||||
labels:
|
||||
- f5
|
||||
- networking
|
||||
$module_utils/network/fortios:
|
||||
$module_utils/fortios.py:
|
||||
maintainers: bjolivot
|
||||
labels: networking
|
||||
$module_utils/network/ironware:
|
||||
maintainers: paulquack
|
||||
$module_utils/ios.py:
|
||||
maintainers: $team_networking
|
||||
labels: networking
|
||||
$module_utils/iosxr.py:
|
||||
maintainers: $team_networking
|
||||
labels: networking
|
||||
$module_utils/junos.py:
|
||||
maintainers: $team_networking
|
||||
labels: networking
|
||||
$module_utils/k8s_common.py:
|
||||
maintainers: chouseknecht sdoran maxamillion fabianvf flaper87
|
||||
labels: clustering
|
||||
$module_utils/keycloak.py:
|
||||
maintainers: eikef
|
||||
$module_utils/manageiq.py:
|
||||
maintainers: $team_manageiq
|
||||
$module_utils/network/netscaler:
|
||||
maintainers: $team_netscaler
|
||||
$module_utils/netcfg.py:
|
||||
maintainers: $team_networking
|
||||
labels: networking
|
||||
$module_utils/network/nso:
|
||||
maintainers: $team_nso
|
||||
$module_utils/netconf.py:
|
||||
maintainers: $team_networking
|
||||
labels: networking
|
||||
$module_utils/network/onyx:
|
||||
maintainers: $team_onyx
|
||||
$module_utils/netcli.py:
|
||||
maintainers: $team_networking
|
||||
labels: networking
|
||||
$module_utils/netscaler.py:
|
||||
maintainers: $team_networking
|
||||
labels: networking
|
||||
$module_utils/network_common.py:
|
||||
maintainers: $team_networking
|
||||
labels: networking
|
||||
$module_utils/network.py:
|
||||
maintainers: $team_networking
|
||||
labels: networking
|
||||
$module_utils/nxos.py:
|
||||
maintainers: $team_networking
|
||||
labels: networking
|
||||
$module_utils/openstack.py:
|
||||
maintainers: $team_openstack
|
||||
labels:
|
||||
- cloud
|
||||
- openstack
|
||||
$module_utils/network/ordnance:
|
||||
$module_utils/ordnance.py:
|
||||
maintainers: alexanderturner djh00t
|
||||
labels: networking
|
||||
$module_utils/ovirt.py:
|
||||
maintainers: joshainglis karmab machacekondra
|
||||
labels:
|
||||
- cloud
|
||||
- ovirt
|
||||
$module_utils/remote_management/ucs:
|
||||
maintainers: $team_ucs
|
||||
labels: ucs
|
||||
$module_utils/sros.py:
|
||||
maintainers: $team_networking
|
||||
labels: networking
|
||||
$module_utils/vmware:
|
||||
maintainers: $team_vmware
|
||||
labels: vmware
|
||||
support: community
|
||||
$module_utils/network:
|
||||
$module_utils/vyos:
|
||||
maintainers: $team_networking
|
||||
labels: networking
|
||||
lib/ansible/playbook/handler.py:
|
||||
@ -1086,9 +1011,6 @@ files:
|
||||
lib/ansible/plugins/action/ios:
|
||||
maintainers: $team_networking
|
||||
labels: networking
|
||||
lib/ansible/plugins/action/ironware:
|
||||
maintainers: paulquack
|
||||
labels: networking
|
||||
lib/ansible/plugins/action/junos:
|
||||
maintainers: $team_networking
|
||||
labels: networking
|
||||
@ -1097,11 +1019,6 @@ files:
|
||||
labels: networking
|
||||
lib/ansible/plugins/action/nxos:
|
||||
maintainers: $team_networking
|
||||
labels:
|
||||
- networking
|
||||
- nxos
|
||||
lib/ansible/plugins/action/onyx_config.py:
|
||||
maintainers: $team_onyx
|
||||
labels: networking
|
||||
lib/ansible/plugins/action/sros:
|
||||
maintainers: $team_networking
|
||||
@ -1109,25 +1026,9 @@ files:
|
||||
lib/ansible/plugins/action/vyos:
|
||||
maintainers: $team_networking
|
||||
labels: networking
|
||||
lib/ansible/plugins/callback/unixy.py:
|
||||
support: community
|
||||
maintainers: akatch
|
||||
lib/ansible/plugins/cliconf/:
|
||||
maintainers: $team_networking
|
||||
labels: networking
|
||||
lib/ansible/plugins/cliconf/ironware.py:
|
||||
maintainers: paulquack
|
||||
labels: networking
|
||||
lib/ansible/plugins/cliconf/nxos.py:
|
||||
maintainers: $team_nxos
|
||||
labels:
|
||||
- networking
|
||||
- nxos
|
||||
lib/ansible/plugins/cliconf/onyx.py:
|
||||
maintainers: $team_onyx
|
||||
labels: networking
|
||||
lib/ansible/plugins/connection/lxd.py:
|
||||
maintainers: mattclay
|
||||
lib/ansible/plugins/connection/netconf.py:
|
||||
maintainers: $team_networking
|
||||
labels: networking
|
||||
@ -1145,36 +1046,9 @@ files:
|
||||
labels:
|
||||
- cloud
|
||||
- openstack
|
||||
lib/ansible/plugins/connection/winrm.py:
|
||||
maintainers: $team_windows_core
|
||||
labels:
|
||||
- windows
|
||||
lib/ansible/plugins/inventory/ovirt4.py:
|
||||
maintainers: machacekondra
|
||||
labels:
|
||||
- ovirt
|
||||
- cloud
|
||||
lib/ansible/plugins/filter/network.py:
|
||||
maintainers: $team_networking
|
||||
labels: networking
|
||||
lib/ansible/plugins/lookup/nios.py:
|
||||
maintainers: $team_networking
|
||||
labels: networking
|
||||
lib/ansible/plugins/lookup/nios_next_ip.py:
|
||||
maintainers: $team_networking
|
||||
labels: networking
|
||||
lib/ansible/plugins/lookup/dig:
|
||||
maintainers: jpmens
|
||||
labels: community
|
||||
lib/ansible/plugins/lookup/conjur_variable.py:
|
||||
maintainers: $team_cyberark_conjur
|
||||
lib/ansible/plugins/netconf/:
|
||||
maintainers: $team_networking
|
||||
labels: networking
|
||||
lib/ansible/plugins/shell/powershell.py:
|
||||
maintainers: $team_windows_core
|
||||
labels:
|
||||
- windows
|
||||
lib/ansible/plugins/terminal/aireos.py:
|
||||
maintainers: jmighion
|
||||
labels: networking
|
||||
@ -1196,19 +1070,11 @@ files:
|
||||
lib/ansible/plugins/terminal/iosxr.py:
|
||||
maintainers: $team_networking
|
||||
labels: networking
|
||||
lib/ansible/plugins/terminal/ironware.py:
|
||||
maintainers: paulquack
|
||||
labels: networking
|
||||
lib/ansible/plugins/terminal/junos.py:
|
||||
maintainers: $team_networking
|
||||
labels: networking
|
||||
lib/ansible/plugins/terminal/nxos.py:
|
||||
maintainers: $team_networking
|
||||
labels:
|
||||
- networking
|
||||
- nxos
|
||||
lib/ansible/plugins/terminal/onyx.py:
|
||||
maintainers: $team_onyx
|
||||
labels: networking
|
||||
lib/ansible/plugins/terminal/sros.py:
|
||||
maintainers: $team_networking
|
||||
@ -1227,49 +1093,25 @@ files:
|
||||
labels: docs_pull_request
|
||||
notify: dharmabumstead
|
||||
packaging/:
|
||||
test/:
|
||||
# 'test' is a component path, then 'test' label will be automatically added
|
||||
test/integration/targets/nxos:
|
||||
maintainers: $team_nxos
|
||||
labels:
|
||||
- networking
|
||||
- nxos
|
||||
test/integration/targets/setup_zabbix:
|
||||
maintainers: eikef D3DeFi
|
||||
test/units/modules/network:
|
||||
maintainers: $team_networking
|
||||
labels: networking
|
||||
test/units/modules/network/nxos:
|
||||
maintainers: $team_nxos
|
||||
labels:
|
||||
- networking
|
||||
- nxos
|
||||
test/sanity/pep8/legacy-files.txt:
|
||||
labels: pep8
|
||||
# 'packaging' automatically added to labels
|
||||
macros:
|
||||
module_utils: lib/ansible/module_utils
|
||||
modules: lib/ansible/modules
|
||||
team_aci: brunocalogero dagwieers jmcgill298 schunduri
|
||||
team_ansible: []
|
||||
team_avi: ericsysmin grastogi23 khaltore
|
||||
team_azure: haroldwongms nitzmahone trstringer yuwzho xscript zikalino
|
||||
team_azure: haroldwongms nitzmahone tstringer
|
||||
team_cumulus: isharacomix jrrivers privateip
|
||||
team_cyberark_conjur: jvanderhoof ryanprior
|
||||
team_manageiq: gtanzillo abellotti zgalor yaacov cben
|
||||
team_netapp: hulquest lmprice broncofan gouthampacha
|
||||
team_netapp: hulquest lmprice broncofan
|
||||
team_netscaler: chiradeep giorgos-nikolopoulos
|
||||
team_netvisor: Qalthos amitsi gundalow privateip
|
||||
team_networking: Qalthos ganeshrn gundalow privateip rcarrillocruz trishnaguha kedarX
|
||||
team_nso: cmoberg pekdon
|
||||
team_nxos: mikewiebe privateip rahushen rcarrillocruz trishnaguha kedarX
|
||||
team_onyx: samerd
|
||||
team_networking: Qalthos ganeshrn gundalow privateip rcarrillocruz trishnaguha
|
||||
team_nxos: GGabriele jedelman8 mikewiebe privateip rahushen rcarrillocruz trishnaguha
|
||||
team_openstack: emonty j2sol juliakreger rcarrillocruz shrews thingee dagnello
|
||||
team_openswitch: Qalthos gundalow privateip
|
||||
team_rabbitmq: chrishoffman manuel-sousa hyperized
|
||||
team_rhn: alikins barnabycourt flossware vritant
|
||||
team_tower: ghjm jlaska matburt wwitzel3
|
||||
team_ucs: dsoper2 johnamcdonough vallard vvb dagwieers
|
||||
team_vmware: dav1x jctanner nerzhul akasurde
|
||||
team_windows: dagwieers jborean93 jhawkesworth nitzmahone
|
||||
team_windows_core: nitzmahone jborean93
|
||||
team_vmware: dagwieers dav1x jctanner nerzhul akasurde
|
||||
team_windows: dagwieers jborean93 jhawkesworth
|
||||
team_ipa: Nosmoht akasurde
|
||||
|
||||
3
.github/CODE_OF_CONDUCT.md
vendored
3
.github/CODE_OF_CONDUCT.md
vendored
@ -1,3 +0,0 @@
|
||||
# Community Code of Conduct
|
||||
|
||||
Please see the official [Ansible Community Code of Conduct](http://docs.ansible.com/ansible/latest/community.html#community-code-of-conduct).
|
||||
11
.github/ISSUE_TEMPLATE.md
vendored
11
.github/ISSUE_TEMPLATE.md
vendored
@ -1,19 +1,16 @@
|
||||
<!---
|
||||
Verify first that your issue/request is not already reported on GitHub.
|
||||
Also test if the latest release, and devel branch are affected too.
|
||||
Also test if the latest release, and master branch are affected too.
|
||||
-->
|
||||
|
||||
##### ISSUE TYPE
|
||||
<!--- Pick one below and delete the rest -->
|
||||
<!--- Pick one below and delete the rest: -->
|
||||
- Bug Report
|
||||
- Feature Idea
|
||||
- Documentation Report
|
||||
|
||||
##### COMPONENT NAME
|
||||
<!---
|
||||
Name of the module, plugin, task or feature
|
||||
Do not include extra details here, e.g. "vyos_command" not "the network module vyos_command" or the full path
|
||||
-->
|
||||
<!--- Name of the module/plugin/task/feature -->
|
||||
|
||||
##### ANSIBLE VERSION
|
||||
<!--- Paste verbatim output from "ansible --version" between quotes below -->
|
||||
@ -24,8 +21,10 @@ Do not include extra details here, e.g. "vyos_command" not "the network module v
|
||||
##### CONFIGURATION
|
||||
<!---
|
||||
If using Ansible 2.4 or above, paste the results of "ansible-config dump --only-changed"
|
||||
|
||||
Otherwise, mention any settings you have changed/added/removed in ansible.cfg
|
||||
(or using the ANSIBLE_* environment variables).
|
||||
|
||||
-->
|
||||
|
||||
##### OS / ENVIRONMENT
|
||||
|
||||
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -15,7 +15,7 @@ the change does.
|
||||
- Docs Pull Request
|
||||
|
||||
##### COMPONENT NAME
|
||||
<!--- Name of the module, plugin, module or task -->
|
||||
<!--- Name of the module/plugin/module/task -->
|
||||
|
||||
##### ANSIBLE VERSION
|
||||
<!--- Paste verbatim output from "ansible --version" between quotes below -->
|
||||
|
||||
34
.gitignore
vendored
34
.gitignore
vendored
@ -17,8 +17,6 @@ rpm-build
|
||||
.idea
|
||||
#IntelliJ IDEA stuff..
|
||||
*.iml
|
||||
#VSCode stuff..
|
||||
.vscode/
|
||||
# Mac OS X stuff...
|
||||
.DS_Store
|
||||
# manpage build stuff...
|
||||
@ -31,22 +29,28 @@ docs/man/man3/*
|
||||
# docsite stuff...
|
||||
docs/api/_build/
|
||||
docs/api/rst/
|
||||
docs/docsite/_build
|
||||
docs/docsite/*.html
|
||||
docs/docsite/htmlout
|
||||
docs/docsite/rst/cli/ansible-*.rst
|
||||
docs/docsite/rst/cli/ansible.rst
|
||||
docs/docsite/rst/modules/*.rst
|
||||
docs/docsite/rst/playbooks_directives.rst
|
||||
docs/docsite/rst/plugins_by_category.rst
|
||||
docs/docsite/rst/plugins/*/*.rst
|
||||
docs/docsite/rst/reference_appendices/config.rst
|
||||
docs/docsite/rst/reference_appendices/playbooks_keywords.rst
|
||||
docs/docsite/rst_warnings
|
||||
docs/docsite/searchindex.js
|
||||
docs/docsite/_build
|
||||
docs/docsite/_static/*.gif
|
||||
docs/docsite/_static/*.png
|
||||
docs/docsite/_static/websupport.js
|
||||
docs/docsite/htmlout
|
||||
docs/docsite/searchindex.js
|
||||
docs/docsite/rst_warnings
|
||||
docs/docsite/rst/*_module.rst
|
||||
docs/docsite/rst/ansible.rst
|
||||
docs/docsite/rst/ansible-*.rst
|
||||
docs/docsite/rst/community_maintained.rst
|
||||
docs/docsite/rst/config.rst
|
||||
docs/docsite/rst/core_maintained.rst
|
||||
docs/docsite/rst/list_of_*.rst
|
||||
docs/docsite/rst/modules_by_category.rst
|
||||
docs/docsite/rst/network_maintained.rst
|
||||
docs/docsite/rst/plugins_by_category.rst
|
||||
docs/docsite/rst/partner_maintained.rst
|
||||
docs/docsite/rst/playbook_keywords.rst
|
||||
docs/docsite/rst/playbooks_directives.rst
|
||||
docs/docsite/rst/plugins/*/*.rst
|
||||
# deb building stuff...
|
||||
/debian/
|
||||
deb-build
|
||||
@ -63,7 +67,6 @@ results.xml
|
||||
coverage.xml
|
||||
/test/units/cover-html
|
||||
/test/integration/targets/*/backup/
|
||||
/test/cache/*
|
||||
# Development
|
||||
/test/develop
|
||||
venv
|
||||
@ -88,7 +91,6 @@ packaging/release/ansible_release
|
||||
/test/integration/inventory.networking
|
||||
/test/integration/inventory.winrm
|
||||
/test/integration/cloud-config-aws.yml
|
||||
/test/integration/cloud-config-cs.ini
|
||||
# python 'rope' stuff
|
||||
.ropeproject
|
||||
# local 'ack' config files
|
||||
|
||||
2
.mailmap
2
.mailmap
@ -1,5 +1,5 @@
|
||||
Michael DeHaan <michael.dehaan@gmail.com> <michael@ansibleworks.com>
|
||||
Michael DeHaan <michael.dehaan@gmail.com> Michael DeHaan <michael@ansibleworks.com>
|
||||
Michael DeHaan <michael.dehaan@gmail.com> Michael DeHaan <Michael DeHaan michael@ansibleworks.com>
|
||||
Michael DeHaan <michael.dehaan@gmail.com> <michael@ansible.com>
|
||||
<bcoca@ansible.com> <brian.coca+git@gmail.com>
|
||||
<bcoca@ansible.com> <briancoca+ansible@gmail.com>
|
||||
|
||||
19
.yamllint
Normal file
19
.yamllint
Normal file
@ -0,0 +1,19 @@
|
||||
extends: default
|
||||
|
||||
rules:
|
||||
braces: {max-spaces-inside: 1, level: error}
|
||||
brackets: {max-spaces-inside: 1, level: error}
|
||||
colons: {max-spaces-after: -1, level: error}
|
||||
commas: {max-spaces-after: -1, level: error}
|
||||
comments: disable
|
||||
comments-indentation: disable
|
||||
document-start: disable
|
||||
empty-lines: {max: 3, level: error}
|
||||
hyphens: {level: error}
|
||||
indentation: disable
|
||||
key-duplicates: enable
|
||||
line-length: disable
|
||||
new-line-at-end-of-file: disable
|
||||
new-lines: {type: unix}
|
||||
trailing-spaces: disable
|
||||
truthy: disable
|
||||
3935
CHANGELOG.md
Normal file
3935
CHANGELOG.md
Normal file
File diff suppressed because it is too large
Load Diff
@ -1 +0,0 @@
|
||||
Per-version CHANGELOGS can be found `here <changelogs/>`_.
|
||||
@ -1,10 +1,10 @@
|
||||
Coding Guidelines
|
||||
=================
|
||||
|
||||
Hi! Thanks for your interest in contributing to Ansible.
|
||||
Hi! Thanks for interest in contributing to Ansible.
|
||||
|
||||
Here are some guidelines for contributing code. The purpose of this document is to establish what we're looking for in code contributions, and to make sure
|
||||
new contributors know some of the conventions that we've been using.
|
||||
Here are some guidelines for contributing code. The purpose of this document are to establish what we're looking for in code contributions, and to make sure
|
||||
new contributions know some of the conventions that we've been using.
|
||||
|
||||
We don't think much of this should be too strange to readers familiar with contributing to Python projects, though it helps if we all get on the same page.
|
||||
|
||||
@ -15,15 +15,15 @@ Language
|
||||
* If you want to write non-Python ansible modules or inventory scripts, that's fine, but they are not going to get merged in most likely. Sorry!!
|
||||
|
||||
PEP 8 and basic style checks
|
||||
============================
|
||||
===========================
|
||||
|
||||
* [PEP 8](https://www.python.org/dev/peps/pep-0008/) is a great Python style guide, which you should read.
|
||||
* PEP 8 must not be strictly followed in all aspects, but most of it is good advice.
|
||||
* The line is limited to 160 characters.
|
||||
* PEP 8 must not be strictly followed in all aspects, but most of it is good advice
|
||||
* In particular, we don't really care about line lengths. Buy a bigger monitor!
|
||||
* To run checks for things we care about, use [ansible-test](http://docs.ansible.com/ansible/dev_guide/testing_pep8.html#running-locally).
|
||||
* Similarly, additional checks can be made with "make pyflakes".
|
||||
* Similarly, additional checks can be made with "make pyflakes"
|
||||
* There is no need to submit code changes for PEP 8 and pyflakes fixes, as these break attribution history. Project leadership will make these periodically.
|
||||
* Do not submit pull requests that simply adjust whitespace in the code.
|
||||
* Do not submit pull requests that simply adjust whitespace in the code
|
||||
|
||||
Testing
|
||||
=======
|
||||
@ -32,7 +32,7 @@ Testing
|
||||
* That being said, there are unit tests too!
|
||||
* Code written must absolutely pass tests (i.e. "make tests")
|
||||
* You should anticipate any error paths in your code and test down those error paths.
|
||||
* Additions to tests for core code are welcome, but not always possible. Be sure things are at least well tested manually in that case.
|
||||
* Additions to tests for core code is welcome, but not always possible. Be sure things are at least well tested manually in that case.
|
||||
|
||||
Whitespace
|
||||
==========
|
||||
@ -74,7 +74,7 @@ Functions and Methods
|
||||
Variables
|
||||
=========
|
||||
|
||||
* Use descriptive variable names instead of variables like 'x', unless x is an obvious loop index
|
||||
* Use descriptive variable names instead of variables like 'x', unless x is a obvious loop index
|
||||
* Ansible python code uses identifiers like 'ClassesLikeThis and variables_like_this
|
||||
* Module parameters should also use_underscores and not runtogether
|
||||
|
||||
@ -83,7 +83,7 @@ Module Security
|
||||
|
||||
* Modules must take steps to avoid passing user input from the shell and always check return codes
|
||||
* always use module.run_command instead of subprocess or Popen or os.system -- this is mandatory
|
||||
* if you need to use the shell you must pass use_unsafe_shell=True to module.run_command
|
||||
* if you use need the shell you must pass use_unsafe_shell=True to module.run_command
|
||||
* if you do not need the shell, avoid using the shell
|
||||
* any variables that can come from the user input with use_unsafe_shell=True must be wrapped by pipes.quote(x)
|
||||
* downloads of https:// resource urls must import module_utils.urls and use the fetch_url method
|
||||
@ -294,7 +294,7 @@ Pull requests cannot be accepted that contain merge commits.
|
||||
|
||||
Always do "git pull --rebase" and "git rebase" vs "git pull" or "git merge".
|
||||
|
||||
Always create a new branch for each pull request to avoid intermingling different features or fixes on the same branch.
|
||||
Always create a new branch for each pull request to avoid intertwingling different features or fixes on the same branch.
|
||||
|
||||
|
||||
Python Version Compliance
|
||||
@ -302,7 +302,7 @@ Python Version Compliance
|
||||
|
||||
All code in Ansible core must support a minimum version of Python 2.6.
|
||||
|
||||
Module code must support a minimum of Python 2.4, with occasional exceptions for modules that require code that themselves require 2.6 and later.
|
||||
Module code must support a minimum of Python 2.4, with occasional exception for modules that require code that themselves require 2.6 and later.
|
||||
|
||||
A quick reminder is that list comprehensions in Python 2.4 are not as fully fleshed out, there are no 'dict' comprehensions, and there is no 'with' statement.
|
||||
But otherwise it's pretty much all the same.
|
||||
|
||||
@ -5,19 +5,19 @@ Hi! Nice to see you here!
|
||||
|
||||
## QUESTIONS ?
|
||||
|
||||
Please see the [community guide](http://docs.ansible.com/ansible/latest/community/index.html) for information on how to ask questions on the [mailing lists](http://docs.ansible.com/ansible/latest/community/communication.html#mailing-list-information) and IRC.
|
||||
Please see the [community page](http://docs.ansible.com/community.html) for information on how to ask questions on the [mailing lists](http://docs.ansible.com/community.html#mailing-list-information) and IRC.
|
||||
|
||||
The GitHub issue tracker is not the best place for questions for various reasons, but both IRC and the mailing list are very helpful places for those things, as the community page explains best.
|
||||
|
||||
|
||||
## CONTRIBUTING ?
|
||||
|
||||
Please see the [community guide](http://docs.ansible.com/ansible/latest/community/index.html) for information regarding the contribution process. Important license agreement information is also included on that page.
|
||||
Please see the [community page](http://docs.ansible.com/community.html) for information regarding the contribution process. Important license agreement information is also included on that page.
|
||||
|
||||
|
||||
## BUG TO REPORT ?
|
||||
|
||||
First and foremost, also check the [community guide](http://docs.ansible.com/ansible/latest/community/index.html).
|
||||
First and foremost, also check the [community page](http://docs.ansible.com/community.html).
|
||||
|
||||
You can report bugs or make enhancement requests at the [Ansible GitHub issue page](http://github.com/ansible/ansible/issues/new) by filling out the issue template that will be presented.
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
prune ticket_stubs
|
||||
prune hacking
|
||||
include README.rst COPYING
|
||||
include README.md COPYING
|
||||
include SYMLINK_CACHE.json
|
||||
include requirements.txt
|
||||
include .coveragerc
|
||||
@ -11,11 +11,11 @@ recursive-include lib/ansible/module_utils/powershell *
|
||||
recursive-include lib/ansible/modules *
|
||||
recursive-include lib/ansible/galaxy/data *
|
||||
recursive-include docs *
|
||||
recursive-include licenses *
|
||||
recursive-include packaging *
|
||||
recursive-include test *
|
||||
include Makefile
|
||||
include VERSION
|
||||
include MANIFEST.in
|
||||
include changelogs/*.rst
|
||||
include CHANGELOG.md
|
||||
include contrib/README.md
|
||||
recursive-include contrib/inventory *
|
||||
|
||||
@ -1,3 +1,70 @@
|
||||
# Module Maintainer Guidelines
|
||||
|
||||
The Ansible Module Maintainer Guidelines can now be found in the [official Ansible community guide](http://docs.ansible.com/ansible/latest/community/maintainers.html).
|
||||
Thank you for being a maintainer of one Ansible's community modules! This guide provides module maintainers an overview of their responsibilities, resources for additional information, and links to helpful tools.
|
||||
|
||||
In addition to the information below, module maintainers should be familiar with:
|
||||
* General Ansible community development practices (http://docs.ansible.com/ansible/community.html)
|
||||
* Documentation on module development (http://docs.ansible.com/ansible/developing_modules.html)
|
||||
* Any namespace-specific module guidelines (identified as GUIDELINES.md in the appropriate file tree).
|
||||
|
||||
***
|
||||
|
||||
# Maintainer Responsibilities
|
||||
|
||||
When you contribute a new module to the [ansible/ansible](https://github.com/ansible/ansible) repository, you become the maintainer for that module once it has been merged. Maintainership empowers you with the authority to accept, reject, or request revisions to pull requests on your module -- but as they say, "with great power comes great responsibility."
|
||||
|
||||
Maintainers of Ansible modules are expected to provide feedback, responses, or actions on pull requests or issues to the module(s) they maintain in a reasonably timely manner.
|
||||
|
||||
It is also recommended that you occasionally revisit the [contribution guidelines](https://github.com/ansible/ansible/blob/devel/CONTRIBUTING.md), as they are continually refined. Occasionally, you may be requested to update your module to move it closer to the general accepted standard requirements. We hope for this to be infrequent, and will always be a request with a fair amount of lead time (ie: not by tomorrow!).
|
||||
|
||||
Finally, following the [ansible-devel](https://groups.google.com/forum/#!forum/ansible-devel) mailing list can be a great way to participate in the broader Ansible community, and a place where you can influence the overall direction, quality, and goals of Ansible and its modules. If you're not on this relatively low-volume list, please join us here: https://groups.google.com/forum/#!forum/ansible-devel
|
||||
|
||||
The Ansible community hopes that you will find that maintaining your module is as rewarding for you as having the module is for the wider community.
|
||||
|
||||
***
|
||||
|
||||
# Pull Requests, Issues, and Workflow
|
||||
|
||||
## Pull Requests
|
||||
|
||||
Module pull requests are located in the [main Ansible repository](https://github.com/ansible/ansible/pulls).
|
||||
|
||||
Because of the high volume of pull requests, notification of PRs to specific modules are routed by an automated bot to the appropriate maintainer for handling. It is recommended that you set an appropriate notification process to receive notifications which mention your GitHub ID.
|
||||
|
||||
## Issues
|
||||
|
||||
Issues for modules, including bug reports, documentation bug reports, and feature requests, are tracked in the [ansible repository](https://github.com/ansible/ansible/issues).
|
||||
|
||||
Issues for modules are routed to their maintainers via an automated process. This process is still being refined, and currently depends upon the issue creator to provide adequate details (specifically, providing the proper module name) in order to route it correctly. If you are a maintainer of a specific module, it is recommended that you periodically search module issues for issues which mention your module's name (or some variation on that name), as well as setting an appropriate notification process for receiving notification of mentions of your GitHub ID.
|
||||
|
||||
## PR Workflow
|
||||
|
||||
Automated routing of pull requests is handled by a tool called [Ansibullbot](https://github.com/ansible/ansibullbot). (You could say that he moooo-ves things around.)
|
||||
|
||||
Being moderately familiar with how the workflow behind the bot operates can be helpful to you, and -- should things go awry -- your feedback can be helpful to the folks that continually help Ansibullbot to evolve.
|
||||
|
||||
A detailed explanation of the PR workflow can be seen here: https://github.com/ansible/community/blob/master/PR-FLOW.md
|
||||
|
||||
***
|
||||
|
||||
# Maintainers list
|
||||
|
||||
The full list of maintainers for modules is located here: https://github.com/ansible/ansible/blob/devel/.github/BOTMETA.yml
|
||||
|
||||
## Changing Maintainership
|
||||
|
||||
Communities change over time, and no one maintains a module forever. If you'd like to propose an additional maintainer for your module, please submit a PR to the maintainers file with the Github username of the new maintainer.
|
||||
|
||||
If you'd like to step down as a maintainer, please submit a PR to the maintainers file removing your Github ID from the module in question. If that would leave the module with no maintainers, put "ansible" as the maintainer. This will indicate that the module is temporarily without a maintainer, and the Ansible community team will search for a new maintainer.
|
||||
|
||||
***
|
||||
|
||||
# Tools and other Resources
|
||||
|
||||
## Useful tools
|
||||
* https://ansible.sivel.net/pr/byfile.html -- a full list of all open Pull Requests, organized by file.
|
||||
|
||||
## Other Resources
|
||||
|
||||
* Ansibullbot: https://github.com/ansible/ansibullbot
|
||||
* Triage / pull request workflow and information, including definitions for Labels in GitHub: https://github.com/ansible/community/blob/master/PR-FLOW.md
|
||||
|
||||
79
Makefile
79
Makefile
@ -17,10 +17,11 @@
|
||||
|
||||
NAME = ansible
|
||||
OS = $(shell uname -s)
|
||||
PREFIX ?= '/usr/local'
|
||||
|
||||
# Manpages are currently built with asciidoc -- would like to move to markdown
|
||||
# This doesn't evaluate until it's called. The -D argument is the
|
||||
# directory of the target file ($@), kinda like `dirname`.
|
||||
|
||||
MANPAGES ?= $(patsubst %.asciidoc.in,%,$(wildcard ./docs/man/man1/ansible*.1.asciidoc.in))
|
||||
ifneq ($(shell which a2x 2>/dev/null),)
|
||||
ASCII2MAN = a2x -L -D $(dir $@) -d manpage -f manpage $<
|
||||
@ -33,13 +34,9 @@ GENERATE_CLI = docs/bin/generate_man.py
|
||||
PYTHON=python
|
||||
SITELIB = $(shell $(PYTHON) -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")
|
||||
|
||||
# fetch version from project release.py as single source-of-truth
|
||||
VERSION := $(shell $(PYTHON) packaging/release/versionhelper/version_helper.py --raw || echo error)
|
||||
ifeq ($(findstring error,$(VERSION)), error)
|
||||
$(error "version_helper failed")
|
||||
endif
|
||||
# if a specific release was not requested, set to 0 (RPMs have "fancier" logic for this further down)
|
||||
RELEASE ?= 1
|
||||
# VERSION file provides one place to update the software version
|
||||
VERSION := $(shell cat VERSION | cut -f1 -d' ')
|
||||
RELEASE := $(shell cat VERSION | cut -f2 -d' ')
|
||||
|
||||
# Get the branch information from git
|
||||
ifneq ($(shell which git),)
|
||||
@ -65,9 +62,8 @@ DEBUILD_OPTS = --source-option="-I"
|
||||
DPUT_BIN ?= dput
|
||||
DPUT_OPTS ?=
|
||||
DEB_DATE := $(shell LC_TIME=C date +"%a, %d %b %Y %T %z")
|
||||
DEB_VERSION := $(shell $(PYTHON) packaging/release/versionhelper/version_helper.py --debversion)
|
||||
ifeq ($(OFFICIAL),yes)
|
||||
DEB_RELEASE := $(shell $(PYTHON) packaging/release/versionhelper/version_helper.py --debrelease)ppa
|
||||
DEB_RELEASE = $(RELEASE)ppa
|
||||
# Sign OFFICIAL builds using 'DEBSIGN_KEYID'
|
||||
# DEBSIGN_KEYID is required when signing
|
||||
ifneq ($(DEBSIGN_KEYID),)
|
||||
@ -94,7 +90,7 @@ PBUILDER_OPTS ?= --debootstrapopts --variant=buildd --architecture $(PBUILDER_AR
|
||||
RPMSPECDIR= packaging/rpm
|
||||
RPMSPEC = $(RPMSPECDIR)/ansible.spec
|
||||
RPMDIST = $(shell rpm --eval '%{?dist}')
|
||||
|
||||
RPMRELEASE = $(RELEASE)
|
||||
ifneq ($(OFFICIAL),yes)
|
||||
RPMRELEASE = 100.git$(DATE)$(GITINFO)
|
||||
endif
|
||||
@ -102,20 +98,12 @@ ifeq ($(PUBLISH),nightly)
|
||||
# https://fedoraproject.org/wiki/Packaging:Versioning#Snapshots
|
||||
RPMRELEASE = $(RELEASE).$(DATE)git.$(GIT_HASH)
|
||||
endif
|
||||
|
||||
RPMVERSION ?= $(shell $(PYTHON) packaging/release/versionhelper/version_helper.py --baseversion)
|
||||
RPMRELEASE ?= $(shell $(PYTHON) packaging/release/versionhelper/version_helper.py --rpmrelease)
|
||||
RPMNVR = "$(NAME)-$(RPMVERSION)-$(RPMRELEASE)$(RPMDIST)$(REPOTAG)"
|
||||
RPMNVR = "$(NAME)-$(VERSION)-$(RPMRELEASE)$(RPMDIST)"
|
||||
|
||||
# MOCK build parameters
|
||||
MOCK_BIN ?= mock
|
||||
MOCK_CFG ?=
|
||||
|
||||
# dynamically add repotag define only if specified
|
||||
ifneq ($(REPOTAG),)
|
||||
EXTRA_RPM_DEFINES += --define "repotag $(REPOTAG)"
|
||||
endif
|
||||
|
||||
# ansible-test parameters
|
||||
ANSIBLE_TEST ?= test/runner/ansible-test
|
||||
TEST_FLAGS ?=
|
||||
@ -158,9 +146,9 @@ authors:
|
||||
%.1.asciidoc: %.1.asciidoc.in
|
||||
sed "s/%VERSION%/$(VERSION)/" $< > $@
|
||||
|
||||
# Regenerate %.1 if %.1.asciidoc or release.py has been modified more
|
||||
# Regenerate %.1 if %.1.asciidoc or VERSION has been modified more
|
||||
# recently than %.1. (Implicitly runs the %.1.asciidoc recipe)
|
||||
%.1: %.1.asciidoc lib/ansible/release.py
|
||||
%.1: %.1.asciidoc VERSION
|
||||
$(ASCII2MAN)
|
||||
|
||||
.PHONY: loc
|
||||
@ -221,40 +209,23 @@ python:
|
||||
install:
|
||||
$(PYTHON) setup.py install
|
||||
|
||||
install_manpages:
|
||||
gzip -9 $(wildcard ./docs/man/man1/ansible*.1)
|
||||
cp $(wildcard ./docs/man/man1/ansible*.1.gz) $(PREFIX)/man/man1/
|
||||
|
||||
.PHONY: sdist
|
||||
sdist: clean docs changelog_aggregate
|
||||
sdist: clean docs
|
||||
$(PYTHON) setup.py sdist
|
||||
|
||||
.PHONY: sdist_upload
|
||||
sdist_upload: clean docs
|
||||
$(PYTHON) setup.py sdist upload 2>&1 |tee upload.log
|
||||
|
||||
# TODO: variable-ize major version number usages here
|
||||
.PHONY: changelog_reno
|
||||
changelog_reno:
|
||||
reno -d changelogs/ report --title 'Ansible 2.5 "Kashmir" Release Notes' --collapse-pre-release --no-show-source --earliest-version v2.5.0b1 --output changelogs/CHANGELOG-v2.5.rst
|
||||
|
||||
.PHONY: changelog_aggregate
|
||||
changelog_aggregate:
|
||||
echo "TODO: unified changelog" > changelogs/CHANGELOG.rst
|
||||
|
||||
.PHONY: rpmcommon
|
||||
rpmcommon: sdist
|
||||
@mkdir -p rpm-build
|
||||
@cp dist/*.gz rpm-build/
|
||||
@cp $(RPMSPEC) rpm-build/$(NAME).spec
|
||||
@sed -e 's#^Version:.*#Version: $(VERSION)#' -e 's#^Release:.*#Release: $(RPMRELEASE)%{?dist}$(REPOTAG)#' $(RPMSPEC) >rpm-build/$(NAME).spec
|
||||
|
||||
.PHONY: mock-srpm
|
||||
mock-srpm: /etc/mock/$(MOCK_CFG).cfg rpmcommon
|
||||
$(MOCK_BIN) -r $(MOCK_CFG) $(MOCK_ARGS) --resultdir rpm-build/ --bootstrap-chroot --old-chroot --buildsrpm --spec rpm-build/$(NAME).spec --sources rpm-build/ \
|
||||
--define "rpmversion $(RPMVERSION)" \
|
||||
--define "upstream_version $(VERSION)" \
|
||||
--define "rpmrelease $(RPMRELEASE)" \
|
||||
$(EXTRA_RPM_DEFINES)
|
||||
$(MOCK_BIN) -r $(MOCK_CFG) $(MOCK_ARGS) --resultdir rpm-build/ --buildsrpm --spec rpm-build/$(NAME).spec --sources rpm-build/
|
||||
@echo "#############################################"
|
||||
@echo "Ansible SRPM is built:"
|
||||
@echo rpm-build/*.src.rpm
|
||||
@ -262,11 +233,7 @@ mock-srpm: /etc/mock/$(MOCK_CFG).cfg rpmcommon
|
||||
|
||||
.PHONY: mock-rpm
|
||||
mock-rpm: /etc/mock/$(MOCK_CFG).cfg mock-srpm
|
||||
$(MOCK_BIN) -r $(MOCK_CFG) $(MOCK_ARGS) --resultdir rpm-build/ --bootstrap-chroot --old-chroot --rebuild rpm-build/$(NAME)-*.src.rpm \
|
||||
--define "rpmversion $(RPMVERSION)" \
|
||||
--define "upstream_version $(VERSION)" \
|
||||
--define "rpmrelease $(RPMRELEASE)" \
|
||||
$(EXTRA_RPM_DEFINES)
|
||||
$(MOCK_BIN) -r $(MOCK_CFG) $(MOCK_ARGS) --resultdir rpm-build/ --rebuild rpm-build/$(NAME)-*.src.rpm
|
||||
@echo "#############################################"
|
||||
@echo "Ansible RPM is built:"
|
||||
@echo rpm-build/*.noarch.rpm
|
||||
@ -280,10 +247,6 @@ srpm: rpmcommon
|
||||
--define "_srcrpmdir %{_topdir}" \
|
||||
--define "_specdir $(RPMSPECDIR)" \
|
||||
--define "_sourcedir %{_topdir}" \
|
||||
--define "upstream_version $(VERSION)" \
|
||||
--define "rpmversion $(RPMVERSION)" \
|
||||
--define "rpmrelease $(RPMRELEASE)" \
|
||||
$(EXTRA_RPM_DEFINES) \
|
||||
-bs rpm-build/$(NAME).spec
|
||||
@rm -f rpm-build/$(NAME).spec
|
||||
@echo "#############################################"
|
||||
@ -299,12 +262,8 @@ rpm: rpmcommon
|
||||
--define "_srcrpmdir %{_topdir}" \
|
||||
--define "_specdir $(RPMSPECDIR)" \
|
||||
--define "_sourcedir %{_topdir}" \
|
||||
--define "_rpmfilename $(RPMNVR).%%{ARCH}.rpm" \
|
||||
--define "_rpmfilename %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm" \
|
||||
--define "__python `which $(PYTHON)`" \
|
||||
--define "upstream_version $(VERSION)" \
|
||||
--define "rpmversion $(RPMVERSION)" \
|
||||
--define "rpmrelease $(RPMRELEASE)" \
|
||||
$(EXTRA_RPM_DEFINES) \
|
||||
-ba rpm-build/$(NAME).spec
|
||||
@rm -f rpm-build/$(NAME).spec
|
||||
@echo "#############################################"
|
||||
@ -318,7 +277,7 @@ debian: sdist
|
||||
mkdir -p deb-build/$${DIST} ; \
|
||||
tar -C deb-build/$${DIST} -xvf dist/$(NAME)-$(VERSION).tar.gz ; \
|
||||
cp -a packaging/debian deb-build/$${DIST}/$(NAME)-$(VERSION)/ ; \
|
||||
sed -ie "s|%VERSION%|$(DEB_VERSION)|g;s|%RELEASE%|$(DEB_RELEASE)|;s|%DIST%|$${DIST}|g;s|%DATE%|$(DEB_DATE)|g" deb-build/$${DIST}/$(NAME)-$(VERSION)/debian/changelog ; \
|
||||
sed -ie "s|%VERSION%|$(VERSION)|g;s|%RELEASE%|$(DEB_RELEASE)|;s|%DIST%|$${DIST}|g;s|%DATE%|$(DEB_DATE)|g" deb-build/$${DIST}/$(NAME)-$(VERSION)/debian/changelog ; \
|
||||
done
|
||||
|
||||
.PHONY: deb
|
||||
@ -327,12 +286,12 @@ deb: deb-src
|
||||
PBUILDER_OPTS="$(PBUILDER_OPTS) --distribution $${DIST} --basetgz $(PBUILDER_CACHE_DIR)/$${DIST}-$(PBUILDER_ARCH)-base.tgz --buildresult $(CURDIR)/deb-build/$${DIST}" ; \
|
||||
$(PBUILDER_BIN) create $${PBUILDER_OPTS} --othermirror "deb http://archive.ubuntu.com/ubuntu $${DIST} universe" ; \
|
||||
$(PBUILDER_BIN) update $${PBUILDER_OPTS} ; \
|
||||
$(PBUILDER_BIN) build $${PBUILDER_OPTS} deb-build/$${DIST}/$(NAME)_$(DEB_VERSION)-$(DEB_RELEASE)~$${DIST}.dsc ; \
|
||||
$(PBUILDER_BIN) build $${PBUILDER_OPTS} deb-build/$${DIST}/$(NAME)_$(VERSION)-$(DEB_RELEASE)~$${DIST}.dsc ; \
|
||||
done
|
||||
@echo "#############################################"
|
||||
@echo "Ansible DEB artifacts:"
|
||||
@for DIST in $(DEB_DIST) ; do \
|
||||
echo deb-build/$${DIST}/$(NAME)_$(DEB_VERSION)-$(DEB_RELEASE)~$${DIST}_amd64.changes ; \
|
||||
echo deb-build/$${DIST}/$(NAME)_$(VERSION)-$(DEB_RELEASE)~$${DIST}_amd64.changes ; \
|
||||
done
|
||||
@echo "#############################################"
|
||||
|
||||
@ -346,7 +305,7 @@ local_deb: debian
|
||||
@echo "#############################################"
|
||||
@echo "Ansible DEB artifacts:"
|
||||
@for DIST in $(DEB_DIST) ; do \
|
||||
echo deb-build/$${DIST}/$(NAME)_$(DEB_VERSION)-$(DEB_RELEASE)~$${DIST}_amd64.changes ; \
|
||||
echo deb-build/$${DIST}/$(NAME)_$(VERSION)-$(DEB_RELEASE)~$${DIST}_amd64.changes ; \
|
||||
done
|
||||
@echo "#############################################"
|
||||
|
||||
|
||||
56
README.md
Normal file
56
README.md
Normal file
@ -0,0 +1,56 @@
|
||||
[](https://pypi.python.org/pypi/ansible)
|
||||
[](https://app.shippable.com/projects/573f79d02a8192902e20e34b)
|
||||
|
||||
|
||||
Ansible
|
||||
=======
|
||||
|
||||
Ansible is a radically simple IT automation system. It handles configuration-management, application deployment, cloud provisioning, ad-hoc task-execution, and multinode orchestration - including trivializing things like zero downtime rolling updates with load balancers.
|
||||
|
||||
Read the documentation and more at https://ansible.com/
|
||||
|
||||
You can find installation instructions [here](https://docs.ansible.com/ansible/intro_installation.html) for a variety of platforms. Most users should probably install a released version of Ansible from `pip`, a package manager or our [release repository](https://releases.ansible.com/ansible/). [Officially supported](https://www.ansible.com/ansible-engine) builds of Ansible are also available. Some power users run directly from the development branch - while significant efforts are made to ensure that `devel` is reasonably stable, you're more likely to encounter breaking changes when running Ansible this way.
|
||||
|
||||
Design Principles
|
||||
=================
|
||||
|
||||
* Have a dead simple setup process and a minimal learning curve
|
||||
* Manage machines very quickly and in parallel
|
||||
* Avoid custom-agents and additional open ports, be agentless by leveraging the existing SSH daemon
|
||||
* Describe infrastructure in a language that is both machine and human friendly
|
||||
* Focus on security and easy auditability/review/rewriting of content
|
||||
* Manage new remote machines instantly, without bootstrapping any software
|
||||
* Allow module development in any dynamic language, not just Python
|
||||
* Be usable as non-root
|
||||
* Be the easiest IT automation system to use, ever.
|
||||
|
||||
Get Involved
|
||||
============
|
||||
|
||||
* Read [Community Information](https://docs.ansible.com/community.html) for all kinds of ways to contribute to and interact with the project, including mailing list information and how to submit bug reports and code to Ansible.
|
||||
* All code submissions are done through pull requests. Take care to make sure no merge commits are in the submission, and use `git rebase` vs `git merge` for this reason. If submitting a large code change (other than modules), it's probably a good idea to join ansible-devel and talk about what you would like to do or add first and to avoid duplicate efforts. This not only helps everyone know what's going on, it also helps save time and effort if we decide some changes are needed.
|
||||
* Users list: [ansible-project](https://groups.google.com/group/ansible-project)
|
||||
* Development list: [ansible-devel](https://groups.google.com/group/ansible-devel)
|
||||
* Announcement list: [ansible-announce](https://groups.google.com/group/ansible-announce) - read only
|
||||
* irc.freenode.net: #ansible
|
||||
|
||||
Branch Info
|
||||
===========
|
||||
|
||||
* Releases are named after Led Zeppelin songs. (Releases prior to 2.0 were named after Van Halen songs.)
|
||||
* The devel branch corresponds to the release actively under development.
|
||||
* Various release-X.Y branches exist for previous releases.
|
||||
* We'd love to have your contributions, read [Community Information](https://docs.ansible.com/community.html) for notes on how to get started.
|
||||
|
||||
Authors
|
||||
=======
|
||||
|
||||
Ansible was created by [Michael DeHaan](https://github.com/mpdehaan) (michael.dehaan/gmail/com) and has contributions from over 1000 users (and growing). Thanks everyone!
|
||||
|
||||
Ansible is sponsored by [Ansible, Inc](https://ansible.com)
|
||||
|
||||
License
|
||||
=======
|
||||
GNU General Public License v3.0
|
||||
|
||||
See [COPYING](COPYING) to see the full text.
|
||||
100
README.rst
100
README.rst
@ -1,100 +0,0 @@
|
||||
|PyPI version| |Docs badge| |Build Status|
|
||||
|
||||
*******
|
||||
Ansible
|
||||
*******
|
||||
|
||||
Ansible is a radically simple IT automation system. It handles
|
||||
configuration-management, application deployment, cloud provisioning,
|
||||
ad-hoc task-execution, and multinode orchestration -- including
|
||||
trivializing things like zero-downtime rolling updates with load
|
||||
balancers.
|
||||
|
||||
Read the documentation and more at https://ansible.com/
|
||||
|
||||
You can find installation instructions
|
||||
`here <https://docs.ansible.com/intro_getting_started.html>`_ for a
|
||||
variety of platforms.
|
||||
|
||||
Most users should probably install a released version of Ansible from ``pip``, a package manager or
|
||||
our `release repository <https://releases.ansible.com/ansible/>`_. `Officially supported
|
||||
<https://www.ansible.com/ansible-engine>`_ builds of Ansible are also available. Some power users
|
||||
run directly from the development branch - while significant efforts are made to ensure that
|
||||
``devel`` is reasonably stable, you're more likely to encounter breaking changes when running
|
||||
Ansible this way.
|
||||
|
||||
Design Principles
|
||||
=================
|
||||
|
||||
* Have a dead simple setup process and a minimal learning curve
|
||||
* Manage machines very quickly and in parallel
|
||||
* Avoid custom-agents and additional open ports, be agentless by
|
||||
leveraging the existing SSH daemon
|
||||
* Describe infrastructure in a language that is both machine and human
|
||||
friendly
|
||||
* Focus on security and easy auditability/review/rewriting of content
|
||||
* Manage new remote machines instantly, without bootstrapping any
|
||||
software
|
||||
* Allow module development in any dynamic language, not just Python
|
||||
* Be usable as non-root
|
||||
* Be the easiest IT automation system to use, ever.
|
||||
|
||||
Get Involved
|
||||
============
|
||||
|
||||
* Read `Community
|
||||
Information <https://docs.ansible.com/community.html>`_ for all
|
||||
kinds of ways to contribute to and interact with the project,
|
||||
including mailing list information and how to submit bug reports and
|
||||
code to Ansible.
|
||||
* All code submissions are done through pull requests. Take care to
|
||||
make sure no merge commits are in the submission, and use
|
||||
``git rebase`` vs ``git merge`` for this reason. If submitting a
|
||||
large code change (other than modules), it's probably a good idea to
|
||||
join ansible-devel and talk about what you would like to do or add
|
||||
first to avoid duplicate efforts. This not only helps everyone
|
||||
know what's going on, it also helps save time and effort if we decide
|
||||
some changes are needed.
|
||||
* Users list:
|
||||
`ansible-project <https://groups.google.com/group/ansible-project>`_
|
||||
* Development list:
|
||||
`ansible-devel <https://groups.google.com/group/ansible-devel>`_
|
||||
* Announcement list:
|
||||
`ansible-announce <https://groups.google.com/group/ansible-announce>`_
|
||||
-- read only
|
||||
* irc.freenode.net: #ansible
|
||||
|
||||
Branch Info
|
||||
===========
|
||||
|
||||
* Releases are named after Led Zeppelin songs. (Releases prior to 2.0
|
||||
were named after Van Halen songs.)
|
||||
* The devel branch corresponds to the release actively under
|
||||
development.
|
||||
* Various release-X.Y branches exist for previous releases.
|
||||
* We'd love to have your contributions, read `Community
|
||||
Information <https://docs.ansible.com/community.html>`_ for notes on
|
||||
how to get started.
|
||||
|
||||
Authors
|
||||
=======
|
||||
|
||||
Ansible was created by `Michael DeHaan <https://github.com/mpdehaan>`_
|
||||
(michael.dehaan/gmail/com) and has contributions from over 1000 users
|
||||
(and growing). Thanks everyone!
|
||||
|
||||
Ansible is sponsored by `Ansible, Inc <https://ansible.com>`_
|
||||
|
||||
License
|
||||
=======
|
||||
|
||||
GNU General Public License v3.0
|
||||
|
||||
See `COPYING <COPYING>`_ to see the full text.
|
||||
|
||||
.. |PyPI version| image:: https://img.shields.io/pypi/v/ansible.svg
|
||||
:target: https://pypi.org/project/ansible
|
||||
.. |Docs badge| image:: https://img.shields.io/badge/docs-latest-brightgreen.svg
|
||||
:target: http://docs.ansible.com/ansible
|
||||
.. |Build Status| image:: https://api.shippable.com/projects/573f79d02a8192902e20e34b/badge?branch=devel
|
||||
:target: https://app.shippable.com/projects/573f79d02a8192902e20e34b
|
||||
@ -4,14 +4,7 @@ Ansible Releases at a Glance
|
||||
VERSION RELEASE CODE NAME
|
||||
++++++++++++++++++++++++++++++
|
||||
|
||||
2.5.1 2018-04-18 "Kashmir"
|
||||
2.5.0 2018-03-22 "Kashmir"
|
||||
2.4.4 2018-04-04 "Dancing Days"
|
||||
2.4.3 01-31.2018 "Dancing Days"
|
||||
2.4.2 11-29-2017 "Dancing Days"
|
||||
2.4.1 10-25-2017 "Dancing Days"
|
||||
2.4.0 09-19-2017 "Dancing Days"
|
||||
2.3.3 12-20-2017 "Ramble On"
|
||||
2.4.0 TBD "Dancing Days"
|
||||
2.3.2 2017-08-04 "Ramble On"
|
||||
2.3.1 2017-06-01 "Ramble On"
|
||||
2.3.0 2017-04-12 "Ramble On"
|
||||
|
||||
15
ROADMAP.rst
15
ROADMAP.rst
@ -12,6 +12,17 @@ These roadmaps are the team's *best guess* roadmaps based on the Ansible team's
|
||||
- Add to the agenda of a `Core IRC Meetings <https://github.com/ansible/community/blob/master/meetings/README.md>`_ (preferred)
|
||||
- Ansible's google-group: ansible-devel
|
||||
- AnsibleFest conferences.
|
||||
- IRC Freenode channel: #ansible-devel (this one may have things lost in lots of conversation, so a caution).
|
||||
- IRC freenode channel: #ansible-devel (this one may have things lost in lots of conversation, so a caution).
|
||||
|
||||
Ansible Roadmaps can be found `here <http://docs.ansible.com/ansible/devel/roadmap/>`_.
|
||||
=======================================
|
||||
Current 2.4 Roadmap is open for comment
|
||||
=======================================
|
||||
We are starting to build the 2.4 Roadmap. We are seeking community feedback! That document is here:
|
||||
- `2.4 Roadmap Document <docs/docsite/rst/roadmap/ROADMAP_2_4.rst>`_
|
||||
|
||||
|
||||
|
||||
**Old Roadmaps are found here:**
|
||||
- `2.3 Roadmap Document <docs/docsite/rst/roadmap/ROADMAP_2_3.rst>`_
|
||||
- `2.2 Roadmap Document <docs/docsite/rst/roadmap/ROADMAP_2_2.rst>`_
|
||||
- `2.1 Roadmap Document <docs/docsite/rst/roadmap/ROADMAP_2_1.rst>`_
|
||||
|
||||
20
bin/ansible
20
bin/ansible
@ -41,15 +41,6 @@ from ansible.errors import AnsibleError, AnsibleOptionsError, AnsibleParserError
|
||||
from ansible.module_utils._text import to_text
|
||||
|
||||
|
||||
# Used for determining if the system is running a new enough python version
|
||||
# and should only restrict on our documented minimum versions
|
||||
_PY3_MIN = sys.version_info[:2] >= (3, 5)
|
||||
_PY2_MIN = (2, 6) <= sys.version_info[:2] < (3,)
|
||||
_PY_MIN = _PY3_MIN or _PY2_MIN
|
||||
if not _PY_MIN:
|
||||
raise SystemExit('ERROR: Ansible requires a minimum of Python2 version 2.6 or Python3 version 3.5. Current version: %s' % ''.join(sys.version.splitlines()))
|
||||
|
||||
|
||||
class LastResort(object):
|
||||
# OUTPUT OF LAST RESORT
|
||||
def display(self, msg, log_only=None):
|
||||
@ -138,26 +129,17 @@ if __name__ == '__main__':
|
||||
display.error("User interrupted execution")
|
||||
exit_code = 99
|
||||
except Exception as e:
|
||||
if C.DEFAULT_DEBUG:
|
||||
# Show raw stacktraces in debug mode, It also allow pdb to
|
||||
# enter post mortem mode.
|
||||
raise
|
||||
have_cli_options = cli is not None and cli.options is not None
|
||||
display.error("Unexpected Exception, this is probably a bug: %s" % to_text(e), wrap_text=False)
|
||||
if not have_cli_options or have_cli_options and cli.options.verbosity > 2:
|
||||
log_only = False
|
||||
if hasattr(e, 'orig_exc'):
|
||||
display.vvv('\nexception type: %s' % to_text(type(e.orig_exc)))
|
||||
why = to_text(e.orig_exc)
|
||||
if to_text(e) != why:
|
||||
display.vvv('\noriginal msg: %s' % why)
|
||||
else:
|
||||
display.display("to see the full traceback, use -vvv")
|
||||
log_only = True
|
||||
display.display(u"the full traceback was:\n\n%s" % to_text(traceback.format_exc()), log_only=log_only)
|
||||
exit_code = 250
|
||||
finally:
|
||||
# Remove ansible tmpdir
|
||||
# Remove ansible tempdir
|
||||
shutil.rmtree(C.DEFAULT_LOCAL_TMP, True)
|
||||
|
||||
sys.exit(exit_code)
|
||||
|
||||
@ -1,6 +1,23 @@
|
||||
#!/usr/bin/env python
|
||||
# Copyright: (c) 2017, Ansible Project
|
||||
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
|
||||
# (c) 2017, Ansible, Inc. <support@ansible.com>
|
||||
#
|
||||
# This file is part of Ansible
|
||||
#
|
||||
# Ansible is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Ansible is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
########################################################
|
||||
from __future__ import (absolute_import, division, print_function)
|
||||
|
||||
__metaclass__ = type
|
||||
@ -13,115 +30,152 @@ except Exception:
|
||||
|
||||
import fcntl
|
||||
import os
|
||||
import shlex
|
||||
import signal
|
||||
import socket
|
||||
import sys
|
||||
import time
|
||||
import traceback
|
||||
import datetime
|
||||
import errno
|
||||
import json
|
||||
|
||||
from ansible import constants as C
|
||||
from ansible.module_utils._text import to_bytes, to_native, to_text
|
||||
from ansible.module_utils.six import PY3
|
||||
from ansible.module_utils.six.moves import cPickle, StringIO
|
||||
from ansible.module_utils.connection import Connection, ConnectionError, send_data, recv_data
|
||||
from ansible.module_utils.service import fork_process
|
||||
from ansible.module_utils.six.moves import cPickle
|
||||
from ansible.module_utils.connection import send_data, recv_data
|
||||
from ansible.playbook.play_context import PlayContext
|
||||
from ansible.plugins.loader import connection_loader
|
||||
from ansible.utils.path import unfrackpath, makedirs_safe
|
||||
from ansible.errors import AnsibleConnectionFailure
|
||||
from ansible.utils.display import Display
|
||||
from ansible.utils.jsonrpc import JsonRpcServer
|
||||
|
||||
|
||||
class ConnectionProcess(object):
|
||||
def do_fork():
|
||||
'''
|
||||
The connection process wraps around a Connection object that manages
|
||||
the connection to a remote device that persists over the playbook
|
||||
Does the required double fork for a daemon process. Based on
|
||||
http://code.activestate.com/recipes/66012-fork-a-daemon-process-on-unix/
|
||||
'''
|
||||
def __init__(self, fd, play_context, socket_path, original_path, ansible_playbook_pid=None):
|
||||
self.play_context = play_context
|
||||
self.socket_path = socket_path
|
||||
self.original_path = original_path
|
||||
try:
|
||||
pid = os.fork()
|
||||
if pid > 0:
|
||||
return pid
|
||||
# This is done as a 'good practice' for daemons, but we need to keep the cwd
|
||||
# leaving it here as a note that we KNOW its good practice but are not doing it on purpose.
|
||||
# os.chdir("/")
|
||||
os.setsid()
|
||||
os.umask(0)
|
||||
|
||||
self.fd = fd
|
||||
self.exception = None
|
||||
|
||||
self.srv = JsonRpcServer()
|
||||
self.sock = None
|
||||
|
||||
self.connection = None
|
||||
self._ansible_playbook_pid = ansible_playbook_pid
|
||||
|
||||
def start(self):
|
||||
try:
|
||||
messages = list()
|
||||
result = {}
|
||||
pid = os.fork()
|
||||
if pid > 0:
|
||||
sys.exit(0)
|
||||
|
||||
messages.append('control socket path is %s' % self.socket_path)
|
||||
if C.DEFAULT_LOG_PATH != '':
|
||||
out_file = open(C.DEFAULT_LOG_PATH, 'ab+')
|
||||
err_file = open(C.DEFAULT_LOG_PATH, 'ab+', 0)
|
||||
else:
|
||||
out_file = open('/dev/null', 'ab+')
|
||||
err_file = open('/dev/null', 'ab+', 0)
|
||||
|
||||
# If this is a relative path (~ gets expanded later) then plug the
|
||||
# key's path on to the directory we originally came from, so we can
|
||||
# find it now that our cwd is /
|
||||
if self.play_context.private_key_file and self.play_context.private_key_file[0] not in '~/':
|
||||
self.play_context.private_key_file = os.path.join(self.original_path, self.play_context.private_key_file)
|
||||
self.connection = connection_loader.get(self.play_context.connection, self.play_context, '/dev/null',
|
||||
ansible_playbook_pid=self._ansible_playbook_pid)
|
||||
self.connection.set_options()
|
||||
self.connection._connect()
|
||||
self.connection._socket_path = self.socket_path
|
||||
self.srv.register(self.connection)
|
||||
messages.extend(sys.stdout.getvalue().splitlines())
|
||||
messages.append('connection to remote device started successfully')
|
||||
os.dup2(out_file.fileno(), sys.stdout.fileno())
|
||||
os.dup2(err_file.fileno(), sys.stderr.fileno())
|
||||
os.close(sys.stdin.fileno())
|
||||
|
||||
self.sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
|
||||
self.sock.bind(self.socket_path)
|
||||
self.sock.listen(1)
|
||||
messages.append('local domain socket listeners started successfully')
|
||||
except Exception as exc:
|
||||
result['error'] = to_text(exc)
|
||||
result['exception'] = traceback.format_exc()
|
||||
finally:
|
||||
result['messages'] = messages
|
||||
self.fd.write(json.dumps(result))
|
||||
self.fd.close()
|
||||
return pid
|
||||
except OSError as e:
|
||||
sys.exit(1)
|
||||
except OSError as e:
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
class Server():
|
||||
|
||||
def __init__(self, socket_path, play_context):
|
||||
self.socket_path = socket_path
|
||||
self.play_context = play_context
|
||||
|
||||
display.display(
|
||||
'creating new control socket for host %s:%s as user %s' %
|
||||
(play_context.remote_addr, play_context.port, play_context.remote_user),
|
||||
log_only=True
|
||||
)
|
||||
|
||||
display.display('control socket path is %s' % socket_path, log_only=True)
|
||||
display.display('current working directory is %s' % os.getcwd(), log_only=True)
|
||||
|
||||
self._start_time = datetime.datetime.now()
|
||||
|
||||
display.display("using connection plugin %s" % self.play_context.connection, log_only=True)
|
||||
|
||||
self.connection = connection_loader.get(play_context.connection, play_context, sys.stdin)
|
||||
self.connection._connect()
|
||||
|
||||
if not self.connection.connected:
|
||||
raise AnsibleConnectionFailure('unable to connect to remote host %s' % self._play_context.remote_addr)
|
||||
|
||||
connection_time = datetime.datetime.now() - self._start_time
|
||||
display.display('connection established to %s in %s' % (play_context.remote_addr, connection_time), log_only=True)
|
||||
|
||||
self.socket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
|
||||
self.socket.bind(self.socket_path)
|
||||
self.socket.listen(1)
|
||||
display.display('local socket is set to listening', log_only=True)
|
||||
|
||||
def run(self):
|
||||
try:
|
||||
while self.connection.connected:
|
||||
while True:
|
||||
signal.signal(signal.SIGALRM, self.connect_timeout)
|
||||
signal.signal(signal.SIGTERM, self.handler)
|
||||
signal.alarm(C.PERSISTENT_CONNECT_TIMEOUT)
|
||||
|
||||
self.exception = None
|
||||
(s, addr) = self.sock.accept()
|
||||
(s, addr) = self.socket.accept()
|
||||
display.display('incoming request accepted on persistent socket', log_only=True)
|
||||
signal.alarm(0)
|
||||
|
||||
signal.signal(signal.SIGALRM, self.command_timeout)
|
||||
while True:
|
||||
data = recv_data(s)
|
||||
if not data:
|
||||
break
|
||||
|
||||
signal.alarm(self.connection._play_context.timeout)
|
||||
resp = self.srv.handle_request(data)
|
||||
signal.signal(signal.SIGALRM, self.command_timeout)
|
||||
signal.alarm(self.play_context.timeout)
|
||||
|
||||
op = to_text(data.split(b':')[0])
|
||||
display.display('socket operation is %s' % op, log_only=True)
|
||||
|
||||
method = getattr(self, 'do_%s' % op, None)
|
||||
|
||||
rc = 255
|
||||
stdout = stderr = ''
|
||||
|
||||
if not method:
|
||||
stderr = 'Invalid action specified'
|
||||
else:
|
||||
rc, stdout, stderr = method(data)
|
||||
|
||||
signal.alarm(0)
|
||||
|
||||
send_data(s, to_bytes(resp))
|
||||
display.display('socket operation completed with rc %s' % rc, log_only=True)
|
||||
|
||||
send_data(s, to_bytes(rc))
|
||||
send_data(s, to_bytes(stdout))
|
||||
send_data(s, to_bytes(stderr))
|
||||
|
||||
s.close()
|
||||
|
||||
except Exception as e:
|
||||
# socket.accept() will raise EINTR if the socket.close() is called
|
||||
if hasattr(e, 'errno'):
|
||||
if e.errno != errno.EINTR:
|
||||
self.exception = traceback.format_exc()
|
||||
else:
|
||||
self.exception = traceback.format_exc()
|
||||
if e.errno != errno.EINTR:
|
||||
display.display(traceback.format_exc(), log_only=True)
|
||||
|
||||
finally:
|
||||
# when done, close the connection properly and cleanup
|
||||
# the socket file so it can be recreated
|
||||
self.shutdown()
|
||||
end_time = datetime.datetime.now()
|
||||
delta = end_time - self._start_time
|
||||
display.display('shutdown local socket, connection was active for %s secs' % delta, log_only=True)
|
||||
|
||||
def connect_timeout(self, signum, frame):
|
||||
display.display('persistent connection idle timeout triggered, timeout value is %s secs' % C.PERSISTENT_CONNECT_TIMEOUT, log_only=True)
|
||||
@ -136,151 +190,200 @@ class ConnectionProcess(object):
|
||||
self.shutdown()
|
||||
|
||||
def shutdown(self):
|
||||
""" Shuts down the local domain socket
|
||||
"""
|
||||
if os.path.exists(self.socket_path):
|
||||
try:
|
||||
if self.sock:
|
||||
self.sock.close()
|
||||
if self.connection:
|
||||
self.connection.close()
|
||||
except:
|
||||
pass
|
||||
finally:
|
||||
if os.path.exists(self.socket_path):
|
||||
os.remove(self.socket_path)
|
||||
setattr(self.connection, '_socket_path', None)
|
||||
setattr(self.connection, '_connected', False)
|
||||
display.display('shutdown persistent connection requested', log_only=True)
|
||||
|
||||
if not os.path.exists(self.socket_path):
|
||||
display.display('persistent connection is not active', log_only=True)
|
||||
return
|
||||
|
||||
try:
|
||||
if self.socket:
|
||||
display.display('closing local listener', log_only=True)
|
||||
self.socket.close()
|
||||
if self.connection:
|
||||
display.display('closing the connection', log_only=True)
|
||||
self.connection.close()
|
||||
except:
|
||||
pass
|
||||
finally:
|
||||
if os.path.exists(self.socket_path):
|
||||
display.display('removing the local control socket', log_only=True)
|
||||
os.remove(self.socket_path)
|
||||
|
||||
display.display('shutdown complete', log_only=True)
|
||||
|
||||
def do_EXEC(self, data):
|
||||
cmd = data.split(b'EXEC: ')[1]
|
||||
display.display('Command executed: %s' % cmd, log_only=True)
|
||||
return self.connection.exec_command(cmd)
|
||||
|
||||
def do_PUT(self, data):
|
||||
(op, src, dst) = shlex.split(to_native(data))
|
||||
return self.connection.fetch_file(src, dst)
|
||||
|
||||
def do_FETCH(self, data):
|
||||
(op, src, dst) = shlex.split(to_native(data))
|
||||
return self.connection.put_file(src, dst)
|
||||
|
||||
def do_CONTEXT(self, data):
|
||||
pc_data = data.split(b'CONTEXT: ', 1)[1]
|
||||
|
||||
if PY3:
|
||||
pc_data = cPickle.loads(pc_data, encoding='bytes')
|
||||
else:
|
||||
pc_data = cPickle.loads(pc_data)
|
||||
|
||||
pc = PlayContext()
|
||||
pc.deserialize(pc_data)
|
||||
|
||||
try:
|
||||
self.connection.update_play_context(pc)
|
||||
except AttributeError:
|
||||
pass
|
||||
|
||||
return (0, 'ok', '')
|
||||
|
||||
def do_RUN(self, data):
|
||||
timeout = self.play_context.timeout
|
||||
while bool(timeout):
|
||||
if os.path.exists(self.socket_path):
|
||||
break
|
||||
time.sleep(1)
|
||||
timeout -= 1
|
||||
socket_bytes = to_bytes(self.socket_path, errors='surrogate_or_strict')
|
||||
return 0, b'\n#SOCKET_PATH#: %s\n' % socket_bytes, ''
|
||||
|
||||
|
||||
def communicate(sock, data):
|
||||
send_data(sock, data)
|
||||
rc = int(recv_data(sock), 10)
|
||||
stdout = recv_data(sock)
|
||||
stderr = recv_data(sock)
|
||||
return (rc, stdout, stderr)
|
||||
|
||||
|
||||
def main():
|
||||
""" Called to initiate the connect to the remote device
|
||||
"""
|
||||
rc = 0
|
||||
result = {}
|
||||
messages = list()
|
||||
socket_path = None
|
||||
|
||||
# Need stdin as a byte stream
|
||||
if PY3:
|
||||
stdin = sys.stdin.buffer
|
||||
else:
|
||||
stdin = sys.stdin
|
||||
|
||||
# Note: update the below log capture code after Display.display() is refactored.
|
||||
saved_stdout = sys.stdout
|
||||
sys.stdout = StringIO()
|
||||
|
||||
try:
|
||||
# read the play context data via stdin, which means depickling it
|
||||
# FIXME: as noted above, we will probably need to deserialize the
|
||||
# connection loader here as well at some point, otherwise this
|
||||
# won't find role- or playbook-based connection plugins
|
||||
cur_line = stdin.readline()
|
||||
init_data = b''
|
||||
|
||||
while cur_line.strip() != b'#END_INIT#':
|
||||
if cur_line == b'':
|
||||
raise Exception("EOF found before init data was complete")
|
||||
init_data += cur_line
|
||||
cur_line = stdin.readline()
|
||||
|
||||
if PY3:
|
||||
pc_data = cPickle.loads(init_data, encoding='bytes')
|
||||
else:
|
||||
pc_data = cPickle.loads(init_data)
|
||||
|
||||
play_context = PlayContext()
|
||||
play_context.deserialize(pc_data)
|
||||
display.verbosity = play_context.verbosity
|
||||
pc = PlayContext()
|
||||
pc.deserialize(pc_data)
|
||||
|
||||
except Exception as e:
|
||||
rc = 1
|
||||
result.update({
|
||||
'error': to_text(e),
|
||||
'exception': traceback.format_exc()
|
||||
})
|
||||
# FIXME: better error message/handling/logging
|
||||
sys.stderr.write(traceback.format_exc())
|
||||
sys.exit("FAIL: %s" % e)
|
||||
|
||||
if rc == 0:
|
||||
ssh = connection_loader.get('ssh', class_only=True)
|
||||
ansible_playbook_pid = sys.argv[1]
|
||||
cp = ssh._create_control_path(play_context.remote_addr, play_context.port, play_context.remote_user, play_context.connection, ansible_playbook_pid)
|
||||
ssh = connection_loader.get('ssh', class_only=True)
|
||||
cp = ssh._create_control_path(pc.remote_addr, pc.port, pc.remote_user, pc.connection)
|
||||
|
||||
# create the persistent connection dir if need be and create the paths
|
||||
# which we will be using later
|
||||
tmp_path = unfrackpath(C.PERSISTENT_CONTROL_PATH_DIR)
|
||||
makedirs_safe(tmp_path)
|
||||
# create the persistent connection dir if need be and create the paths
|
||||
# which we will be using later
|
||||
tmp_path = unfrackpath(C.PERSISTENT_CONTROL_PATH_DIR)
|
||||
makedirs_safe(tmp_path)
|
||||
lock_path = unfrackpath("%s/.ansible_pc_lock" % tmp_path)
|
||||
socket_path = unfrackpath(cp % dict(directory=tmp_path))
|
||||
|
||||
lock_path = unfrackpath("%s/.ansible_pc_lock" % tmp_path)
|
||||
socket_path = unfrackpath(cp % dict(directory=tmp_path))
|
||||
# if the socket file doesn't exist, spin up the daemon process
|
||||
lock_fd = os.open(lock_path, os.O_RDWR | os.O_CREAT, 0o600)
|
||||
fcntl.lockf(lock_fd, fcntl.LOCK_EX)
|
||||
|
||||
# if the socket file doesn't exist, spin up the daemon process
|
||||
lock_fd = os.open(lock_path, os.O_RDWR | os.O_CREAT, 0o600)
|
||||
fcntl.lockf(lock_fd, fcntl.LOCK_EX)
|
||||
|
||||
if not os.path.exists(socket_path):
|
||||
messages.append('local domain socket does not exist, starting it')
|
||||
original_path = os.getcwd()
|
||||
r, w = os.pipe()
|
||||
pid = fork_process()
|
||||
|
||||
if pid == 0:
|
||||
try:
|
||||
os.close(r)
|
||||
wfd = os.fdopen(w, 'w')
|
||||
process = ConnectionProcess(wfd, play_context, socket_path, original_path, ansible_playbook_pid)
|
||||
process.start()
|
||||
except Exception:
|
||||
messages.append(traceback.format_exc())
|
||||
rc = 1
|
||||
|
||||
fcntl.lockf(lock_fd, fcntl.LOCK_UN)
|
||||
os.close(lock_fd)
|
||||
|
||||
if rc == 0:
|
||||
process.run()
|
||||
|
||||
sys.exit(rc)
|
||||
|
||||
else:
|
||||
os.close(w)
|
||||
rfd = os.fdopen(r, 'r')
|
||||
data = json.loads(rfd.read())
|
||||
messages.extend(data.pop('messages'))
|
||||
result.update(data)
|
||||
|
||||
else:
|
||||
messages.append('found existing local domain socket, using it!')
|
||||
conn = Connection(socket_path)
|
||||
pc_data = to_text(init_data)
|
||||
if not os.path.exists(socket_path):
|
||||
pid = do_fork()
|
||||
if pid == 0:
|
||||
rc = 0
|
||||
try:
|
||||
messages.extend(conn.update_play_context(pc_data))
|
||||
server = Server(socket_path, pc)
|
||||
except AnsibleConnectionFailure as exc:
|
||||
display.display('connecting to host %s returned an error' % pc.remote_addr, log_only=True)
|
||||
display.display(str(exc), log_only=True)
|
||||
rc = 1
|
||||
except Exception as exc:
|
||||
# Only network_cli has update_play context, so missing this is
|
||||
# not fatal e.g. netconf
|
||||
if isinstance(exc, ConnectionError) and getattr(exc, 'code', None) == -32601:
|
||||
pass
|
||||
else:
|
||||
result.update({
|
||||
'error': to_text(exc),
|
||||
'exception': traceback.format_exc()
|
||||
})
|
||||
|
||||
messages.append(sys.stdout.getvalue())
|
||||
result.update({
|
||||
'messages': messages,
|
||||
'socket_path': socket_path
|
||||
})
|
||||
|
||||
sys.stdout = saved_stdout
|
||||
if 'exception' in result:
|
||||
rc = 1
|
||||
sys.stderr.write(json.dumps(result))
|
||||
display.display('failed to create control socket for host %s' % pc.remote_addr, log_only=True)
|
||||
display.display(traceback.format_exc(), log_only=True)
|
||||
rc = 1
|
||||
fcntl.lockf(lock_fd, fcntl.LOCK_UN)
|
||||
os.close(lock_fd)
|
||||
if rc == 0:
|
||||
server.run()
|
||||
sys.exit(rc)
|
||||
else:
|
||||
rc = 0
|
||||
sys.stdout.write(json.dumps(result))
|
||||
display.display('re-using existing socket for %s@%s:%s' % (pc.remote_user, pc.remote_addr, pc.port), log_only=True)
|
||||
|
||||
fcntl.lockf(lock_fd, fcntl.LOCK_UN)
|
||||
os.close(lock_fd)
|
||||
|
||||
timeout = pc.timeout
|
||||
while bool(timeout):
|
||||
if os.path.exists(socket_path):
|
||||
display.vvvv('connected to local socket in %s' % (pc.timeout - timeout), pc.remote_addr)
|
||||
break
|
||||
time.sleep(1)
|
||||
timeout -= 1
|
||||
else:
|
||||
raise AnsibleConnectionFailure('timeout waiting for local socket', pc.remote_addr)
|
||||
|
||||
# now connect to the daemon process
|
||||
# FIXME: if the socket file existed but the daemonized process was killed,
|
||||
# the connection will timeout here. Need to make this more resilient.
|
||||
while True:
|
||||
data = stdin.readline()
|
||||
if data == b'':
|
||||
break
|
||||
if data.strip() == b'':
|
||||
continue
|
||||
|
||||
sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
|
||||
|
||||
connect_retry_timeout = C.PERSISTENT_CONNECT_RETRY_TIMEOUT
|
||||
while bool(connect_retry_timeout):
|
||||
try:
|
||||
sock.connect(socket_path)
|
||||
break
|
||||
except socket.error:
|
||||
time.sleep(1)
|
||||
connect_retry_timeout -= 1
|
||||
else:
|
||||
display.display('connect retry timeout expired, unable to connect to control socket', pc.remote_addr, pc.remote_user, log_only=True)
|
||||
display.display('persistent_connect_retry_timeout is %s secs' % (C.PERSISTENT_CONNECT_RETRY_TIMEOUT), pc.remote_addr, pc.remote_user, log_only=True)
|
||||
sys.stderr.write('failed to connect to control socket')
|
||||
sys.exit(255)
|
||||
|
||||
# send the play_context back into the connection so the connection
|
||||
# can handle any privilege escalation activities
|
||||
pc_data = b'CONTEXT: %s' % init_data
|
||||
communicate(sock, pc_data)
|
||||
|
||||
rc, stdout, stderr = communicate(sock, data.strip())
|
||||
|
||||
sys.stdout.write(to_native(stdout))
|
||||
sys.stderr.write(to_native(stderr))
|
||||
|
||||
sock.close()
|
||||
break
|
||||
|
||||
sys.exit(rc)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
display = Display()
|
||||
main()
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,588 +0,0 @@
|
||||
=======================================================
|
||||
Ansible 2.0 "Over the Hills and Far Away" Release Notes
|
||||
=======================================================
|
||||
2.0.3 "Over the Hills and Far Away"
|
||||
-----------------------------------
|
||||
|
||||
- Backport fix to uri module to return the body of an error response
|
||||
- Backport fix to uri module to handle file:/// uris.
|
||||
- Backport fix to uri module to fix traceback when handling certain
|
||||
server error types.
|
||||
|
||||
2.0.2 "Over the Hills and Far Away"
|
||||
-----------------------------------
|
||||
|
||||
- Backport of the 2.1 feature to ensure per-item callbacks are sent as
|
||||
they occur, rather than all at once at the end of the task.
|
||||
- Fixed bugs related to the iteration of tasks when certain
|
||||
combinations of roles, blocks, and includes were used, especially
|
||||
when handling errors in rescue/always portions of blocks.
|
||||
- Fixed handling of redirects in our helper code, and ported the uri
|
||||
module to use this helper code. This removes the httplib dependency
|
||||
for this module while fixing some bugs related to redirects and SSL
|
||||
certs.
|
||||
- Fixed some bugs related to the incorrect creation of extra temp
|
||||
directories for uploading files, which were not cleaned up properly.
|
||||
- Improved error reporting in certain situations, to provide more
|
||||
information such as the playbook file/line.
|
||||
- Fixed a bug related to the variable precedence of role parameters,
|
||||
especially when a role may be used both as a dependency of a role and
|
||||
directly by itself within the same play.
|
||||
- Fixed some bugs in the 2.0 implementation of do/until.
|
||||
- Fixed some bugs related to run\_once:
|
||||
- Ensure that all hosts are marked as failed if a task marked as
|
||||
run\_once fails.
|
||||
- Show a warning when using the free strategy when a run\_once task is
|
||||
encountered, as there is no way for the free strategy to guarantee
|
||||
the task is not run more than once.
|
||||
- Fixed a bug where the assemble module was not honoring check mode in
|
||||
some situations.
|
||||
- Fixed a bug related to delegate\_to, where we were incorrectly using
|
||||
variables from the inventory host rather than the delegated-to host.
|
||||
- The 'package' meta-module now properly squashes items down to a
|
||||
single execution (as the apt/yum/other package modules do).
|
||||
- Fixed a bug related to the ansible-galaxy CLI command dealing with
|
||||
paged results from the Galaxy server.
|
||||
- Pipelining support is now available for the local and jail connection
|
||||
plugins, which is useful for users who do not wish to have temp
|
||||
files/directories created when running tasks with these connection
|
||||
types.
|
||||
- Improvements in support for additional shell types.
|
||||
- Improvements in the code which is used to calculate checksums for
|
||||
remote files.
|
||||
- Some speed ups and bug fixes related to the variable merging code.
|
||||
- Workaround bug in python subprocess on El Capitan that was making
|
||||
vault fail when attempting to encrypt a file
|
||||
- Fix lxc\_container module having predictable temp file names and
|
||||
setting file permissions on the temporary file too leniently on a
|
||||
temporary file that was executed as a script. Addresses CVE-2016-3096
|
||||
- Fix a bug in the uri module where setting headers via module params
|
||||
that start with ``HEADER_`` were causing a traceback.
|
||||
- Fix bug in the free strategy that was causing it to synchronize its
|
||||
workers after every task (making it a lot more like linear than it
|
||||
should have been).
|
||||
|
||||
2.0.1 "Over the Hills and Far Away"
|
||||
-----------------------------------
|
||||
|
||||
- Fixes a major compatibility break in the synchronize module shipped
|
||||
with 2.0.0.x. That version of synchronize ran sudo on the controller
|
||||
prior to running rsync. In 1.9.x and previous, sudo was run on the
|
||||
host that rsync connected to. 2.0.1 restores the 1.9.x behaviour.
|
||||
- Additionally, several other problems with where synchronize chose to
|
||||
run when combined with delegate\_to were fixed. In particular, if a
|
||||
playbook targetted localhost and then delegated\_to a remote host the
|
||||
prior behavior (in 1.9.x and 2.0.0.x) was to copy files between the
|
||||
src and destination directories on the delegated host. This has now
|
||||
been fixed to copy between localhost and the delegated host.
|
||||
- Fix a regression where synchronize was unable to deal with unicode
|
||||
paths.
|
||||
- Fix a regression where synchronize deals with inventory hosts that
|
||||
use localhost but with an alternate port.
|
||||
- Fixes a regression where the retry files feature was not implemented.
|
||||
- Fixes a regression where the any\_errors\_fatal option was
|
||||
implemented in 2.0 incorrectly, and also adds a feature where
|
||||
any\_errors\_fatal can be set at the block level.
|
||||
- Fix tracebacks when playbooks or ansible itself were located in
|
||||
directories with unicode characters.
|
||||
- Fix bug when sending unicode characters to an external pager for
|
||||
display.
|
||||
- Fix a bug with squashing loops for special modules (mostly package
|
||||
managers). The optimization was squashing when the loop did not apply
|
||||
to the selection of packages. This has now been fixed.
|
||||
- Temp files created when using vault are now "shredded" using the unix
|
||||
shred program which overwrites the file with random data.
|
||||
- Some fixes to cloudstack modules for case sensitivity
|
||||
- Fix non-newstyle modules (non-python modules and old-style modules)
|
||||
to disabled pipelining.
|
||||
- Fix fetch module failing even if fail\_on\_missing is set to False
|
||||
- Fix for cornercase when local connections, sudo, and raw were used
|
||||
together.
|
||||
- Fix dnf module to remove dependent packages when state=absent is
|
||||
specified. This was a feature of the 1.9.x version that was left out
|
||||
by mistake when the module was rewritten for 2.0.
|
||||
- Fix bugs with non-english locales in yum, git, and apt modules
|
||||
- Fix a bug with the dnf module where state=latest could only upgrade,
|
||||
not install.
|
||||
- Fix to make implicit fact gathering task correctly inherit settings
|
||||
from play, this might cause an error if settings environment on play
|
||||
depending on 'ansible\_env' which was previously ignored
|
||||
|
||||
2.0 "Over the Hills and Far Away" - Jan 12, 2016
|
||||
------------------------------------------------
|
||||
|
||||
Major Changes:
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
- Releases are now named after Led Zeppelin songs, 1.9 will be the last
|
||||
Van Halen named release.
|
||||
- The new block/rescue/always directives allow for making task blocks
|
||||
and exception-like semantics
|
||||
- New strategy plugins (e.g. ``free``) allow control over the flow of
|
||||
task execution per play. The default (``linear``) will be the same as
|
||||
before.
|
||||
- Improved error handling, with more detailed parser messages. General
|
||||
exception handling and display has been revamped.
|
||||
- Task includes are now evaluated during execution, allowing more
|
||||
dynamic includes and options. Play includes are unchanged both still
|
||||
use the ``include`` directive.
|
||||
- "with\_" loops can now be used with task includes since they are
|
||||
dynamic.
|
||||
- Callback, connection, cache and lookup plugin APIs have changed.
|
||||
Existing plugins might require modification to work with the new
|
||||
versions.
|
||||
- Callbacks are now shipped in the active directory and don't need to
|
||||
be copied, just whitelisted in ansible.cfg.
|
||||
- Many API changes. Those integrating directly with Ansible's API will
|
||||
encounter breaking changes, but the new API is much easier to use and
|
||||
test.
|
||||
- Settings are now more inheritable; what you set at play, block or
|
||||
role will be automatically inherited by the contained tasks. This
|
||||
allows for new features to automatically be settable at all levels,
|
||||
previously we had to manually code this.
|
||||
- Vars are now settable at play, block, role and task level with the
|
||||
``vars`` directive and scoped to the tasks contained.
|
||||
- Template code now retains types for bools and numbers instead of
|
||||
turning them into strings. If you need the old behaviour, quote the
|
||||
value and it will get passed around as a string
|
||||
- Empty variables and variables set to null in yaml will no longer be
|
||||
converted to empty strings. They will retain the value of ``None``.
|
||||
To go back to the old behaviour, you can override the
|
||||
``null_representation`` setting to an empty string in your config
|
||||
file or by setting the ``ANSIBLE_NULL_REPRESENTATION`` environment
|
||||
variable.
|
||||
- Added ``meta: refresh_inventory`` to force rereading the inventory in
|
||||
a play. This re-executes inventory scripts, but does not force them
|
||||
to ignore any cache they might use.
|
||||
- New delegate\_facts directive, a boolean that allows you to apply
|
||||
facts to the delegated host (true/yes) instead of the
|
||||
inventory\_hostname (no/false) which is the default and previous
|
||||
behaviour.
|
||||
- local connections now work with 'su' as a privilege escalation method
|
||||
- Ansible 2.0 has deprecated the "ssh" from ansible\_ssh\_user,
|
||||
ansible\_ssh\_host, and ansible\_ssh\_port to become ansible\_user,
|
||||
ansible\_host, and ansible\_port.
|
||||
- New ssh configuration variables (``ansible_ssh_common_args``,
|
||||
``ansible_ssh_extra_args``) can be used to configure a per-group or
|
||||
per-host ssh ProxyCommand or set any other ssh options.
|
||||
``ansible_ssh_extra_args`` is used to set options that are accepted
|
||||
only by ssh (not sftp or scp, which have their own analogous
|
||||
settings).
|
||||
- ansible-pull can now verify the code it runs when using git as a
|
||||
source repository, using git's code signing and verification
|
||||
features.
|
||||
- Backslashes used when specifying parameters in jinja2 expressions in
|
||||
YAML dicts sometimes needed to be escaped twice. This has been fixed
|
||||
so that escaping once works. Here's an example of how playbooks need
|
||||
to be modified:
|
||||
|
||||
.. code:: yaml
|
||||
|
||||
# Syntax in 1.9.x
|
||||
- debug:
|
||||
msg: "{{ 'test1_junk 1\\\\3' | regex_replace('(.*)_junk (.*)', '\\\\1 \\\\2') }}"
|
||||
# Syntax in 2.0.x
|
||||
- debug:
|
||||
msg: "{{ 'test1_junk 1\\3' | regex_replace('(.*)_junk (.*)', '\\1 \\2') }}"
|
||||
|
||||
# Output:
|
||||
"msg": "test1 1\\3"
|
||||
|
||||
- When a string with a trailing newline was specified in the playbook
|
||||
via yaml dict format, the trailing newline was stripped. When
|
||||
specified in key=value format the trailing newlines were kept. In v2,
|
||||
both methods of specifying the string will keep the trailing
|
||||
newlines. If you relied on the trailing newline being stripped you
|
||||
can change your playbook like this:
|
||||
|
||||
.. code:: yaml
|
||||
|
||||
# Syntax in 1.9.2
|
||||
vars:
|
||||
message: >
|
||||
Testing
|
||||
some things
|
||||
tasks:
|
||||
- debug:
|
||||
msg: "{{ message }}"
|
||||
|
||||
# Syntax in 2.0.x
|
||||
vars:
|
||||
old_message: >
|
||||
Testing
|
||||
some things
|
||||
message: "{{ old_messsage[:-1] }}"
|
||||
- debug:
|
||||
msg: "{{ message }}"
|
||||
# Output
|
||||
"msg": "Testing some things"
|
||||
|
||||
- In 1.9.x, newlines in templates were converted to Unix EOL
|
||||
conventions. If someone wanted a templated file to end up with
|
||||
Windows or Mac EOL conventions, this could cause problems for them.
|
||||
In 2.x newlines now remain as specified in the template file.
|
||||
|
||||
- When specifying complex args as a variable, the variable must use the
|
||||
full jinja2 variable syntax ('{{var\_name}}') - bare variable names
|
||||
there are no longer accepted. In fact, even specifying args with
|
||||
variables has been deprecated, and will not be allowed in future
|
||||
versions:
|
||||
|
||||
.. code:: yaml
|
||||
|
||||
---
|
||||
- hosts: localhost
|
||||
connection: local
|
||||
gather_facts: false
|
||||
vars:
|
||||
my_dirs:
|
||||
- { path: /tmp/3a, state: directory, mode: 0755 }
|
||||
- { path: /tmp/3b, state: directory, mode: 0700 }
|
||||
tasks:
|
||||
- file:
|
||||
args: "{{item}}"
|
||||
with_items: my_dirs
|
||||
|
||||
- The bigip\* networking modules have a new parameter, validate\_certs.
|
||||
When True (the default) the module will validate any hosts it
|
||||
connects to against the TLS certificates it presents when run on new
|
||||
enough python versions. If the python version is too old to validate
|
||||
certificates or you used certificates that cannot be validated
|
||||
against available CAs you will need to add validate\_certs=no to your
|
||||
playbook for those tasks.
|
||||
|
||||
Plugins
|
||||
~~~~~~~
|
||||
|
||||
- Rewritten dnf module that should be faster and less prone to
|
||||
encountering bugs in cornercases
|
||||
- WinRM connection plugin passes all vars named ``ansible_winrm_*`` to
|
||||
the underlying pywinrm client. This allows, for instance,
|
||||
``ansible_winrm_server_cert_validation=ignore`` to be used with newer
|
||||
versions of pywinrm to disable certificate validation on Python
|
||||
2.7.9+.
|
||||
- WinRM connection plugin put\_file is significantly faster and no
|
||||
longer has file size limitations.
|
||||
|
||||
Deprecated Modules (new ones in parens):
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
- ec2\_ami\_search (ec2\_ami\_find)
|
||||
- quantum\_network (os\_network)
|
||||
- glance\_image
|
||||
- nova\_compute (os\_server)
|
||||
- quantum\_floating\_ip (os\_floating\_ip)
|
||||
- quantum\_router (os\_router)
|
||||
- quantum\_router\_gateway (os\_router)
|
||||
- quantum\_router\_interface (os\_router)
|
||||
|
||||
New Modules:
|
||||
^^^^^^^^^^^^
|
||||
|
||||
- amazon: ec2\_ami\_copy
|
||||
- amazon: ec2\_ami\_find
|
||||
- amazon: ec2\_elb\_facts
|
||||
- amazon: ec2\_eni
|
||||
- amazon: ec2\_eni\_facts
|
||||
- amazon: ec2\_remote\_facts
|
||||
- amazon: ec2\_vpc\_igw
|
||||
- amazon: ec2\_vpc\_net
|
||||
- amazon: ec2\_vpc\_net\_facts
|
||||
- amazon: ec2\_vpc\_route\_table
|
||||
- amazon: ec2\_vpc\_route\_table\_facts
|
||||
- amazon: ec2\_vpc\_subnet
|
||||
- amazon: ec2\_vpc\_subnet\_facts
|
||||
- amazon: ec2\_win\_password
|
||||
- amazon: ecs\_cluster
|
||||
- amazon: ecs\_task
|
||||
- amazon: ecs\_taskdefinition
|
||||
- amazon: elasticache\_subnet\_group\_facts
|
||||
- amazon: iam
|
||||
- amazon: iam\_cert
|
||||
- amazon: iam\_policy
|
||||
- amazon: route53\_facts
|
||||
- amazon: route53\_health\_check
|
||||
- amazon: route53\_zone
|
||||
- amazon: sts\_assume\_role
|
||||
- amazon: s3\_bucket
|
||||
- amazon: s3\_lifecycle
|
||||
- amazon: s3\_logging
|
||||
- amazon: sqs\_queue
|
||||
- amazon: sns\_topic
|
||||
- amazon: sts\_assume\_role
|
||||
- apk
|
||||
- bigip\_gtm\_wide\_ip
|
||||
- bundler
|
||||
- centurylink: clc\_aa\_policy
|
||||
- centurylink: clc\_alert\_policy
|
||||
- centurylink: clc\_blueprint\_package
|
||||
- centurylink: clc\_firewall\_policy
|
||||
- centurylink: clc\_group
|
||||
- centurylink: clc\_loadbalancer
|
||||
- centurylink: clc\_modify\_server
|
||||
- centurylink: clc\_publicip
|
||||
- centurylink: clc\_server
|
||||
- centurylink: clc\_server\_snapshot
|
||||
- circonus\_annotation
|
||||
- consul
|
||||
- consul\_acl
|
||||
- consul\_kv
|
||||
- consul\_session
|
||||
- cloudtrail
|
||||
- cloudstack: cs\_account
|
||||
- cloudstack: cs\_affinitygroup
|
||||
- cloudstack: cs\_domain
|
||||
- cloudstack: cs\_facts
|
||||
- cloudstack: cs\_firewall
|
||||
- cloudstack: cs\_iso
|
||||
- cloudstack: cs\_instance
|
||||
- cloudstack: cs\_instancegroup
|
||||
- cloudstack: cs\_ip\_address
|
||||
- cloudstack: cs\_loadbalancer\_rule
|
||||
- cloudstack: cs\_loadbalancer\_rule\_member
|
||||
- cloudstack: cs\_network
|
||||
- cloudstack: cs\_portforward
|
||||
- cloudstack: cs\_project
|
||||
- cloudstack: cs\_sshkeypair
|
||||
- cloudstack: cs\_securitygroup
|
||||
- cloudstack: cs\_securitygroup\_rule
|
||||
- cloudstack: cs\_staticnat
|
||||
- cloudstack: cs\_template
|
||||
- cloudstack: cs\_user
|
||||
- cloudstack: cs\_vmsnapshot
|
||||
- cronvar
|
||||
- datadog\_monitor
|
||||
- deploy\_helper
|
||||
- docker: docker\_login
|
||||
- dpkg\_selections
|
||||
- elasticsearch\_plugin
|
||||
- expect
|
||||
- find
|
||||
- google: gce\_tag
|
||||
- hall
|
||||
- ipify\_facts
|
||||
- iptables
|
||||
- libvirt: virt\_net
|
||||
- libvirt: virt\_pool
|
||||
- maven\_artifact
|
||||
- openstack: os\_auth
|
||||
- openstack: os\_client\_config
|
||||
- openstack: os\_image
|
||||
- openstack: os\_image\_facts
|
||||
- openstack: os\_floating\_ip
|
||||
- openstack: os\_ironic
|
||||
- openstack: os\_ironic\_node
|
||||
- openstack: os\_keypair
|
||||
- openstack: os\_network
|
||||
- openstack: os\_network\_facts
|
||||
- openstack: os\_nova\_flavor
|
||||
- openstack: os\_object
|
||||
- openstack: os\_port
|
||||
- openstack: os\_project
|
||||
- openstack: os\_router
|
||||
- openstack: os\_security\_group
|
||||
- openstack: os\_security\_group\_rule
|
||||
- openstack: os\_server
|
||||
- openstack: os\_server\_actions
|
||||
- openstack: os\_server\_facts
|
||||
- openstack: os\_server\_volume
|
||||
- openstack: os\_subnet
|
||||
- openstack: os\_subnet\_facts
|
||||
- openstack: os\_user
|
||||
- openstack: os\_user\_group
|
||||
- openstack: os\_volume
|
||||
- openvswitch\_db.
|
||||
- osx\_defaults
|
||||
- pagerduty\_alert
|
||||
- pam\_limits
|
||||
- pear
|
||||
- profitbricks: profitbricks
|
||||
- profitbricks: profitbricks\_datacenter
|
||||
- profitbricks: profitbricks\_nic
|
||||
- profitbricks: profitbricks\_volume
|
||||
- profitbricks: profitbricks\_volume\_attachments
|
||||
- profitbricks: profitbricks\_snapshot
|
||||
- proxmox: proxmox
|
||||
- proxmox: proxmox\_template
|
||||
- puppet
|
||||
- pushover
|
||||
- pushbullet
|
||||
- rax: rax\_clb\_ssl
|
||||
- rax: rax\_mon\_alarm
|
||||
- rax: rax\_mon\_check
|
||||
- rax: rax\_mon\_entity
|
||||
- rax: rax\_mon\_notification
|
||||
- rax: rax\_mon\_notification\_plan
|
||||
- rabbitmq\_binding
|
||||
- rabbitmq\_exchange
|
||||
- rabbitmq\_queue
|
||||
- selinux\_permissive
|
||||
- sendgrid
|
||||
- sensu\_check
|
||||
- sensu\_subscription
|
||||
- seport
|
||||
- slackpkg
|
||||
- solaris\_zone
|
||||
- taiga\_issue
|
||||
- vertica\_configuration
|
||||
- vertica\_facts
|
||||
- vertica\_role
|
||||
- vertica\_schema
|
||||
- vertica\_user
|
||||
- vmware: vca\_fw
|
||||
- vmware: vca\_nat
|
||||
- vmware: vmware\_cluster
|
||||
- vmware: vmware\_datacenter
|
||||
- vmware: vmware\_dns\_config
|
||||
- vmware: vmware\_dvs\_host
|
||||
- vmware: vmware\_dvs\_portgroup
|
||||
- vmware: vmware\_dvswitch
|
||||
- vmware: vmware\_host
|
||||
- vmware: vmware\_migrate\_vmk
|
||||
- vmware: vmware\_portgroup
|
||||
- vmware: vmware\_target\_canonical\_facts
|
||||
- vmware: vmware\_vm\_facts
|
||||
- vmware: vmware\_vm\_vss\_dvs\_migrate
|
||||
- vmware: vmware\_vmkernel
|
||||
- vmware: vmware\_vmkernel\_ip\_config
|
||||
- vmware: vmware\_vsan\_cluster
|
||||
- vmware: vmware\_vswitch
|
||||
- vmware: vsphere\_copy
|
||||
- webfaction\_app
|
||||
- webfaction\_db
|
||||
- webfaction\_domain
|
||||
- webfaction\_mailbox
|
||||
- webfaction\_site
|
||||
- win\_acl
|
||||
- win\_dotnet\_ngen
|
||||
- win\_environment
|
||||
- win\_firewall\_rule
|
||||
- win\_iis\_virtualdirectory
|
||||
- win\_iis\_webapplication
|
||||
- win\_iis\_webapppool
|
||||
- win\_iis\_webbinding
|
||||
- win\_iis\_website
|
||||
- win\_lineinfile
|
||||
- win\_nssm
|
||||
- win\_package
|
||||
- win\_regedit
|
||||
- win\_scheduled\_task
|
||||
- win\_unzip
|
||||
- win\_updates
|
||||
- win\_webpicmd
|
||||
- xenserver\_facts
|
||||
- zabbix\_host
|
||||
- zabbix\_hostmacro
|
||||
- zabbix\_screen
|
||||
- znode
|
||||
|
||||
New Inventory scripts:
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
- cloudstack
|
||||
- fleetctl
|
||||
- openvz
|
||||
- nagios\_ndo
|
||||
- nsot
|
||||
- proxmox
|
||||
- rudder
|
||||
- serf
|
||||
|
||||
New Lookups:
|
||||
^^^^^^^^^^^^
|
||||
|
||||
- credstash
|
||||
- hashi\_vault
|
||||
- ini
|
||||
- shelvefile
|
||||
|
||||
New Filters:
|
||||
^^^^^^^^^^^^
|
||||
|
||||
- combine
|
||||
|
||||
New Connection:
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
- docker: for talking to docker containers on the ansible controller
|
||||
machine without using ssh.
|
||||
|
||||
New Callbacks:
|
||||
^^^^^^^^^^^^^^
|
||||
|
||||
- logentries: plugin to send play data to logentries service
|
||||
- skippy: same as default but does not display skip messages
|
||||
|
||||
Minor changes:
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
- Many more tests. The new API makes things more testable and we took
|
||||
advantage of it.
|
||||
- big\_ip modules now support turning off ssl certificate validation
|
||||
(use only for self-signed certificates).
|
||||
- Consolidated code from modules using urllib2 to normalize features,
|
||||
TLS and SNI support.
|
||||
- synchronize module's dest\_port parameter now takes precedence over
|
||||
the ansible\_ssh\_port inventory setting.
|
||||
- Play output is now dynamically sized to terminal with a minimum of 80
|
||||
coluumns (old default).
|
||||
- vars\_prompt and pause are now skipped with a warning if the play is
|
||||
called noninteractively (i.e. pull from cron).
|
||||
- Support for OpenBSD's 'doas' privilege escalation method.
|
||||
- Most vault operations can now be done over multilple files.
|
||||
- ansible-vault encrypt/decrypt read from stdin if no other input file
|
||||
is given, and can write to a given ``--output file`` (including
|
||||
stdout, '-'). This lets you avoid ever writing sensitive plaintext to
|
||||
disk.
|
||||
- ansible-vault rekey accepts the --new-vault-password-file option.
|
||||
- ansible-vault now preserves file permissions on edit and rekey and
|
||||
defaults to restrictive permissions for other options.
|
||||
- Configuration items defined as paths (local only) now all support
|
||||
shell style interpolations.
|
||||
- Many fixes and new options added to modules, too many to list here.
|
||||
- Now you can see task file and line number when using verbosity of 3
|
||||
or above.
|
||||
- The ``[x-y]`` host range syntax is no longer supported. Note that
|
||||
``[0:1]`` matches two hosts, i.e. the range is inclusive of its
|
||||
endpoints.
|
||||
- We now recommend the use of ``pattern1,pattern2`` to combine host
|
||||
matching patterns.
|
||||
- The use of ':' as a separator conflicts with IPv6 addresses and host
|
||||
ranges. It will be deprecated in the future.
|
||||
- The undocumented use of ';' as a separator is now deprecated.
|
||||
- modules and callbacks have been extended to support no\_log to avoid
|
||||
data disclosure.
|
||||
- new managed\_syslog option has been added to control output to syslog
|
||||
on managed machines, no\_log supersedes this settings.
|
||||
- Lookup, vars and action plugin pathing has been normalized, all now
|
||||
follow the same sequence to find relative files.
|
||||
- We do not ignore the explicitly set login user for ssh when it
|
||||
matches the 'current user' anymore, this allows overriding
|
||||
.ssh/config when it is set explicitly. Leaving it unset will still
|
||||
use the same user and respect .ssh/config. This also means
|
||||
ansible\_ssh\_user can now return a None value.
|
||||
- environment variables passed to remote shells now default to
|
||||
'controller' settings, with fallback to en\_US.UTF8 which was the
|
||||
previous default.
|
||||
- add\_hosts is much stricter about host name and will prevent invalid
|
||||
names from being added.
|
||||
- ansible-pull now defaults to doing shallow checkouts with git, use
|
||||
``--full`` to return to previous behaviour.
|
||||
- random cows are more random
|
||||
- when: now gets the registered var after the first iteration, making
|
||||
it possible to break out of item loops
|
||||
- Handling of undefined variables has changed. In most places they will
|
||||
now raise an error instead of silently injecting an empty string. Use
|
||||
the default filter if you want to approximate the old behaviour:
|
||||
|
||||
::
|
||||
|
||||
- debug: msg="The error message was: {{error_code |default('') }}"
|
||||
|
||||
- The yum module's detection of installed packages has been made more
|
||||
robust by using /usr/bin/rpm in cases where it woud have used
|
||||
repoquery before.
|
||||
- The pip module now properly reports changes when packages are coming
|
||||
from a VCS.
|
||||
- Fixes for retrieving files over https when a CONNECT-only proxy is in
|
||||
the middle.
|
||||
@ -1,394 +0,0 @@
|
||||
=====================================================
|
||||
Ansible 2.1 "The Song Remains the Same" Release Notes
|
||||
=====================================================
|
||||
2.1.6 "The Song Remains the Same" - 06-01-2017
|
||||
----------------------------------------------
|
||||
|
||||
- Security fix for CVE-2017-7481 - data for lookup plugins used as
|
||||
variables was not being correctly marked as "unsafe".
|
||||
|
||||
2.1.5 "The Song Remains the Same" - 03-27-2017
|
||||
----------------------------------------------
|
||||
|
||||
- Security continued fix for CVE-2016-9587 - Handle some additional
|
||||
corner cases in the way conditionals are parsed and evaluated.
|
||||
|
||||
2.1.4 "The Song Remains the Same" - 2017-01-16
|
||||
----------------------------------------------
|
||||
|
||||
- Security fix for CVE-2016-9587 - An attacker with control over a
|
||||
client system being managed by Ansible and the ability to send facts
|
||||
back to the Ansible server could use this flaw to execute arbitrary
|
||||
code on the Ansible server as the user and group Ansible is running
|
||||
as.
|
||||
- Fixed a bug with conditionals in loops, where undefined variables and
|
||||
other errors will defer raising the error until the conditional has
|
||||
been evaluated.
|
||||
- Added a version check for jinja2-2.9, which does not fully work with
|
||||
Ansible currently.
|
||||
|
||||
2.1.3 "The Song Remains the Same" - 2016-11-04
|
||||
----------------------------------------------
|
||||
|
||||
- Security fix for CVE-2016-8628 - Command injection by compromised
|
||||
server via fact variables. In some situations, facts returned by
|
||||
modules could overwrite connection-based facts or some other special
|
||||
variables, leading to injected commands running on the Ansible
|
||||
controller as the user running Ansible (or via escalated
|
||||
permissions).
|
||||
- Security fix for CVE-2016-8614 - apt\_key module not properly
|
||||
validating keys in some situations.
|
||||
|
||||
Minor Changes:
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
- The subversion module from core now marks its password parameter as
|
||||
no\_log so the password is obscured when logging.
|
||||
- The postgresql\_lang and postgresql\_ext modules from extras now mark
|
||||
login\_password as no\_log so the password is obscured when logging.
|
||||
- Fixed several bugs related to locating files relative to
|
||||
role/playbook directories.
|
||||
- Fixed a bug in the way hosts were tested for failed states, resulting
|
||||
in incorrectly skipped block sessions.
|
||||
- Fixed a bug in the way our custom JSON encoder is used for the
|
||||
``to_json*`` filters.
|
||||
- Fixed some bugs related to the use of non-ascii characters in become
|
||||
passwords.
|
||||
- Fixed a bug with Azure modules which may be using the latest rc6
|
||||
library.
|
||||
- Backported some docker\_common fixes.
|
||||
|
||||
2.1.2 "The Song Remains the Same" - 2016-09-29
|
||||
----------------------------------------------
|
||||
|
||||
Minor Changes
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
- Fixed a bug related to creation of retry files (#17456)
|
||||
- Fixed a bug in the way include params are used when an include task
|
||||
is dynamic (#17064)
|
||||
- Fixed a bug related to including blocks in an include task (#15963)
|
||||
- Fixed a bug related to the use of hostvars internally when creating
|
||||
the connection plugin. This prevents things like variables using
|
||||
lookups from being evaluated unnecessarily (#17024)
|
||||
- Fixed a bug where using a variable containing a list for the
|
||||
``hosts`` of a play resulted in an list of lists (#16583)
|
||||
- Fixed a bug where integer values would cause an error if a module
|
||||
param was of type ``float`` (no issue)
|
||||
- Fixed a bug with net\_template failing if src was not specified
|
||||
(#17726)
|
||||
- Fixed a bug in "ansible-galaxy import" (#17417)
|
||||
- Fixed a bug in which INI files incorrectly treated a hosts range as a
|
||||
section header (#15331)
|
||||
- Fixed a bug in which the max\_fail\_percentage calculation
|
||||
erroneously caused a series of plays to stop executing (#15954)
|
||||
- Fixed a bug in which the task names were not properly templated
|
||||
(#16295)
|
||||
- Fixed a bug causing "squashed" loops (ie. yum, apt) to incorrectly
|
||||
report results (ansible-modules-core#4214)
|
||||
- Fixed several bugs related to includes:
|
||||
- when including statically, make sure that all parents were also
|
||||
included statically (issue #16990)
|
||||
- properly resolve nested static include paths
|
||||
- print a message when a file is statically included
|
||||
- Fixed a bug in which module params expected to be float types were
|
||||
not converted from integers (only strings) (#17325)
|
||||
- Fixed a bug introduced by static includes in 2.1, which prevented
|
||||
notifications from going to the "top level" handler name.
|
||||
- Fixed a bug where a group\_vars or host\_vars directory in the
|
||||
current working directory would be used (and would take precedence)
|
||||
over those in the inventory and/or playbook directory.
|
||||
- Fixed a bug which could occur when the result of an async task did
|
||||
not parse as valid JSON.
|
||||
- (re)-allowed the use of ansible\_python\_interpreter lines with more
|
||||
than one argument.
|
||||
- Fixed several bugs related to the creation of the implicit localhost
|
||||
in inventory.
|
||||
- Fixed a bug related to an unspecified number of retries when using
|
||||
until.
|
||||
- Fixed a race-condition bug when creating temp directories before the
|
||||
worker process is forked.
|
||||
- Fix a bug with async's poll keyword not making use of
|
||||
ansible\_python\_interpreter to run (and thus breaking when
|
||||
/usr/bin/python is not present on the remote machine.)
|
||||
- Fix a bug where hosts that started with a range in inventory were
|
||||
being treated as an invalid section header.
|
||||
|
||||
Module fixes: \* Fixed a bug where the temporary CA files created by the
|
||||
module helper code were not being deleted properly in some situations
|
||||
(#17073) \* Fixed many bugs in the unarchive module \* Fixes for module
|
||||
ec2: - Fixed a bug related to source\_dest\_check when used with non-vpc
|
||||
instances (core#3243) - Fixed a bug in ec2 where instances were not
|
||||
powering of when referenced via tags only (core#4765) - Fixed a bug
|
||||
where instances with multiple interfaces were not powering up/down
|
||||
correctly (core#3234) \* Fixes for module get\_url: - Fixed a bug in
|
||||
get\_url module to force a download if there is a checksum mismatch
|
||||
regardless of the last modified time (core#4262) - Fixed a bug in
|
||||
get\_url module to properly process FTP results (core#3661 and
|
||||
core#4601) \* Fixed a bug in win\_user related to users with disabled
|
||||
accounts/expired passwords (core#4369) \* ini\_file: - Fixed a bug where
|
||||
option lines are now inserted before blank lines. - Fixed a bug where
|
||||
leading whitespace prevented matches on options. \* Fixed a bug in
|
||||
iam\_cert when dup\_ok is used as a string. \* Fixed a bug in
|
||||
postgresql\_db related to the changed logic when state=absent. \* Fixed
|
||||
a bug where single\_transaction and quick were not passed into db\_dump
|
||||
for the mysql\_db module. \* Fixed a bug where the fetch module was not
|
||||
idempotent when retrieving the target of a symlink. \* Many minor fixes
|
||||
for bugs in extras modules.
|
||||
|
||||
Deprecations
|
||||
~~~~~~~~~~~~
|
||||
|
||||
- Deprecated the use of ``_fixup_perms``. Use ``_fixup_perms2``
|
||||
instead. This change only impacts custom action plugins using
|
||||
``_fixup_perms``.
|
||||
|
||||
Incompatible Changes
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
- Use of ``_fixup_perms`` with ``recursive=True`` (the default) is no
|
||||
longer supported. Custom action plugins using ``_fixup_perms`` will
|
||||
require changes unless they already use ``recursive=False``. Use
|
||||
``_fixup_perms2`` if support for previous releases is not required.
|
||||
Otherwise use ``_fixup_perms`` with ``recursive=False``.
|
||||
|
||||
2.1 "The Song Remains the Same"
|
||||
-------------------------------
|
||||
|
||||
Major Changes:
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
- Official support for the networking modules, originally available in
|
||||
2.0 as a tech preview.
|
||||
- Refactored and expanded support for Docker with new modules and many
|
||||
improvements to existing modules, as well as a new Kubernetes module.
|
||||
- Added new modules for Azure (see below for the full list)
|
||||
- Added the ability to specify includes as "static" (either through a
|
||||
configuration option or on a per-include basis). When includes are
|
||||
static, they are loaded at compile time and cannot contain dynamic
|
||||
features like loops.
|
||||
- Added a new strategy ``debug``, which allows per-task debugging of
|
||||
playbooks, for more details see
|
||||
https://docs.ansible.com/ansible/playbooks\_debugger.html
|
||||
- Added a new option for tasks: ``loop_control``. This currently only
|
||||
supports one option - ``loop_var``, which allows a different loop
|
||||
variable from ``item`` to be used.
|
||||
- Added the ability to filter facts returned by the fact gathering
|
||||
setup step using the ``gather_subset`` option on the play or in the
|
||||
ansible.cfg configuration file. See
|
||||
http://docs.ansible.com/ansible/intro\_configuration.html#gathering
|
||||
for details on the format of the option.
|
||||
- Added the ability to send per-item callbacks, rather than a batch
|
||||
update (this more closely resembles the behavior of Ansible 1.x).
|
||||
- Added facility for modules to send back 'diff' for display when
|
||||
ansible is called with --diff, updated several modules to return this
|
||||
info
|
||||
- Added ansible-console tool, a REPL shell that allows running adhoc
|
||||
tasks against a chosen inventory (based on
|
||||
https://github.com/dominis/ansible-shell)
|
||||
- Added two new variables, which are set when the ``rescue`` portion of
|
||||
a ``block`` is started:
|
||||
- ``ansible_failed_task``, which contains the serialized version of the
|
||||
failed task.
|
||||
- ``ansible_failed_result``, which contains the result of the failed
|
||||
task.
|
||||
- New meta action, ``meta: clear_host_errors`` which will clear any
|
||||
hosts which were marked as failed (but not unreachable hosts).
|
||||
- New meta action, ``meta: clear_facts`` which will remove existing
|
||||
facts for the current host from current memory and facts cache.
|
||||
- copy module can now transparently use a vaulted file as source, if
|
||||
vault passwords were provided it will decrypt and copy on the fly.
|
||||
- The way new-style python modules (which include all of the
|
||||
non-windows modules shipped with Ansible) are assembled before
|
||||
execution on the remote machine has been changed. The new way stays
|
||||
closer to how python imports modules which will make it easier to
|
||||
write modules which rely heavily on shared code.
|
||||
- Reduce the situations in which a module can end up as world readable.
|
||||
For details, see:
|
||||
https://docs.ansible.com/ansible/become.html#becoming-an-unprivileged-user
|
||||
- Re-implemented the retry file feature, which had been left out of 2.0
|
||||
(fix was backported to 2.0.1 originally).
|
||||
- Improved winrm argument validation and feature sniffing (for upcoming
|
||||
pywinrm NTLM support).
|
||||
- Improved winrm error handling: basic parsing of stderr from CLIXML
|
||||
stream.
|
||||
|
||||
New Modules
|
||||
^^^^^^^^^^^
|
||||
|
||||
- aws
|
||||
- ec2\_vol\_facts
|
||||
- ec2\_vpc\_dhcp\_options
|
||||
- ec2\_vpc\_net\_facts
|
||||
- ec2\_snapshot\_facts
|
||||
- azure:
|
||||
- azure\_rm\_deployment
|
||||
- azure\_rm\_networkinterface
|
||||
- azure\_rm\_networkinterface\_facts (TECH PREVIEW)
|
||||
- azure\_rm\_publicipaddress
|
||||
- azure\_rm\_publicipaddress\_facts (TECH PREVIEW)
|
||||
- azure\_rm\_resourcegroup
|
||||
- azure\_rm\_resourcegroup\_facts (TECH PREVIEW)
|
||||
- azure\_rm\_securitygroup
|
||||
- azure\_rm\_securitygroup\_facts (TECH PREVIEW)
|
||||
- azure\_rm\_storageaccount
|
||||
- azure\_rm\_storageaccount\_facts (TECH PREVIEW)
|
||||
- azure\_rm\_storageblob
|
||||
- azure\_rm\_subnet
|
||||
- azure\_rm\_virtualmachine
|
||||
- azure\_rm\_virtualmachineimage\_facts (TECH PREVIEW)
|
||||
- azure\_rm\_virtualnetwork
|
||||
- azure\_rm\_virtualnetwork\_facts (TECH PREVIEW)
|
||||
- cloudflare\_dns
|
||||
- cloudstack
|
||||
- cs\_cluster
|
||||
- cs\_configuration
|
||||
- cs\_instance\_facts
|
||||
- cs\_pod
|
||||
- cs\_resourcelimit
|
||||
- cs\_volume
|
||||
- cs\_zone
|
||||
- cs\_zone\_facts
|
||||
- clustering
|
||||
- kubernetes
|
||||
- cumulus
|
||||
- cl\_bond
|
||||
- cl\_bridge
|
||||
- cl\_img\_install
|
||||
- cl\_interface
|
||||
- cl\_interface\_policy
|
||||
- cl\_license
|
||||
- cl\_ports
|
||||
- eos
|
||||
- eos\_command
|
||||
- eos\_config
|
||||
- eos\_eapi
|
||||
- eos\_template
|
||||
- gitlab
|
||||
- gitlab\_group
|
||||
- gitlab\_project
|
||||
- gitlab\_user
|
||||
- ios
|
||||
- ios\_command
|
||||
- ios\_config
|
||||
- ios\_template
|
||||
- iosxr
|
||||
- iosxr\_command
|
||||
- iosxr\_config
|
||||
- iosxr\_template
|
||||
- junos
|
||||
- junos\_command
|
||||
- junos\_config
|
||||
- junos\_facts
|
||||
- junos\_netconf
|
||||
- junos\_package
|
||||
- junos\_template
|
||||
- make
|
||||
- mongodb\_parameter
|
||||
- nxos
|
||||
- nxos\_command
|
||||
- nxos\_config
|
||||
- nxos\_facts
|
||||
- nxos\_feature
|
||||
- nxos\_interface
|
||||
- nxos\_ip\_interface
|
||||
- nxos\_nxapi
|
||||
- nxos\_ping
|
||||
- nxos\_switchport
|
||||
- nxos\_template
|
||||
- nxos\_vlan
|
||||
- nxos\_vrf
|
||||
- nxos\_vrf\_interface
|
||||
- nxos\_vrrp
|
||||
- openstack
|
||||
- os\_flavor\_facts
|
||||
- os\_group
|
||||
- os\_ironic\_inspect
|
||||
- os\_keystone\_domain\_facts
|
||||
- os\_keystone\_role
|
||||
- os\_port\_facts
|
||||
- os\_project\_facts
|
||||
- os\_user\_facts
|
||||
- os\_user\_role
|
||||
- openswitch
|
||||
- ops\_command
|
||||
- ops\_config
|
||||
- ops\_facts
|
||||
- ops\_template
|
||||
- softlayer
|
||||
- sl\_vm
|
||||
- vmware
|
||||
- vmware\_maintenancemode
|
||||
- vmware\_vm\_shell
|
||||
- windows
|
||||
- win\_acl\_inheritance
|
||||
- win\_owner
|
||||
- win\_reboot
|
||||
- win\_regmerge
|
||||
- win\_timezone
|
||||
- yum\_repository
|
||||
|
||||
New Strategies
|
||||
^^^^^^^^^^^^^^
|
||||
|
||||
- debug
|
||||
|
||||
New Filters
|
||||
^^^^^^^^^^^
|
||||
|
||||
- extract
|
||||
- ip4\_hex
|
||||
- regex\_search
|
||||
- regex\_findall
|
||||
|
||||
New Callbacks
|
||||
^^^^^^^^^^^^^
|
||||
|
||||
- actionable (only shows changed and failed)
|
||||
- slack
|
||||
- json
|
||||
|
||||
New Tests
|
||||
^^^^^^^^^
|
||||
|
||||
- issubset
|
||||
- issuperset
|
||||
|
||||
New Inventory scripts:
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
- brook
|
||||
- rackhd
|
||||
- azure\_rm
|
||||
|
||||
Minor Changes:
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
- Added support for pipelining mode to more connection plugins, which
|
||||
helps prevent module data from being written to disk.
|
||||
- Added a new '!unsafe' YAML decorator, which can be used in playbooks
|
||||
to ensure a string is not templated. For example:
|
||||
``foo: !unsafe "Don't template {{me}}"``.
|
||||
- Callbacks now have access to the options with which the CLI was
|
||||
called
|
||||
- Debug now has verbosity option to control when to display by matching
|
||||
number of -v in command line
|
||||
- Modules now get verbosity, diff and other flags as passed to ansible
|
||||
- Mount facts now also show 'network mounts' that use the pattern
|
||||
``<host>:/<mount>``
|
||||
- Plugins are now sorted before loading. This means, for instance, if
|
||||
you want two custom callback plugins to run in a certain order you
|
||||
can name them 10-first-callback.py and 20-second-callback.py.
|
||||
- Added (alpha) Centirfy's dzdo as another become meethod (privilege
|
||||
escalation)
|
||||
|
||||
Deprecations:
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
- Deprecated the use of "bare" variables in loops (ie.
|
||||
``with_items: foo``, where ``foo`` is a variable). The full jinja2
|
||||
variable syntax of ``{{foo}}`` should always be used instead. This
|
||||
warning will be removed completely in 2.3, after which time it will
|
||||
be an error.
|
||||
- play\_hosts magic variable, use ansible\_play\_batch or
|
||||
ansible\_play\_hosts instead.
|
||||
@ -1,515 +0,0 @@
|
||||
==================================================
|
||||
Ansible 2.2 "The Battle of Evermore" Release Notes
|
||||
==================================================
|
||||
2.2.4 "The Battle of Evermore" - TBD
|
||||
------------------------------------
|
||||
|
||||
- avoid vault view writing to logs
|
||||
- moved htpasswd module to use LooseVersion vs StrictVersion to make
|
||||
usable on Debian
|
||||
- fix for adhoc not obeying callback options
|
||||
|
||||
2.2.3 "The Battle of Evermore" - 05-09-2017
|
||||
-------------------------------------------
|
||||
|
||||
Major Changes:
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
- [SECURITY] (HIGH): fix for CVE-2017-7466, which was caused by an
|
||||
incomplete cherry-picking of commits related to CVE-2016-9587. This
|
||||
can lead to some jinja2 syntax not being stripped out of templated
|
||||
results.
|
||||
- [SECURITY] (MODERATE): fix for CVE-2017-7481, in which data for
|
||||
lookup plugins used as variables was not being correctly marked as
|
||||
"unsafe".
|
||||
|
||||
Minor Changes:
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
- Fixes a bug when using YAML inventory where hosts were not put in the
|
||||
'all' group, and some other 'ungrouped' issues in inventory.
|
||||
- Fixes a bug when using ansible commands without a tty for stdin.
|
||||
- Split on newlines when searching for become prompt.
|
||||
- Fix crash upon pass prompt in py3 when using the paramiko connection
|
||||
type.
|
||||
|
||||
2.2.2 "The Battle of Evermore" - 03-27-2017
|
||||
-------------------------------------------
|
||||
|
||||
Major Changes:
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
- [SECURITY] (HIGH): (continued fix for CVE-2016-9587) Handle some
|
||||
additional corner cases in the way conditionals are parsed and
|
||||
evaluated.
|
||||
- [SECURITY] (LOW): properly filter passwords out of URLs when
|
||||
displaying output from some modules.
|
||||
|
||||
Minor Changes:
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
- Fix azure\_rm version checks (#22270).
|
||||
- Fix for traceback when we encounter non-utf8 characters when using
|
||||
--diff.
|
||||
- Ensure ssh hostkey checks respect server port.
|
||||
- Use proper PyYAML classes for safe loading YAML files.
|
||||
- Fix for bug related to when statements for older jinja2 versions.
|
||||
- Fix a bug/traceback when using to\_yaml/to\_nice\_yaml.
|
||||
- Properly clean data of jinja2-like syntax, even if that data came
|
||||
from an unsafe source.
|
||||
- Fix bug regarding undefined entries in HostVars.
|
||||
- Skip fact gathering if the entire play was included via conditional
|
||||
which evaluates to False.
|
||||
- Fixed a performance regression when using a large number of items in
|
||||
a with loop.
|
||||
- Fixed a bug in the way the end of role was detected, which in some
|
||||
cases could cause a role to be run more than once.
|
||||
- Add jinja2 groupby filter override to cast namedtuple to tuple to
|
||||
handle a non-compatible change in jinja2 2.9.4-2.9.5.
|
||||
- Fixed several bugs related to temp directory creation on remote
|
||||
systems when using shell expansions and become privilege escalation.
|
||||
- Fixed a bug related to spliting/parsing the output of a become
|
||||
privilege escalation when looking for a password prompt.
|
||||
- Several unicode/bytes fixes.
|
||||
|
||||
2.2.1 "The Battle of Evermore" - 01-16-2017
|
||||
-------------------------------------------
|
||||
|
||||
Major Changes:
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
- Security fix for CVE-2016-9587 - An attacker with control over a
|
||||
client system being managed by Ansible and the ability to send facts
|
||||
back to the Ansible server could use this flaw to execute arbitrary
|
||||
code on the Ansible server as the user and group Ansible is running
|
||||
as.
|
||||
|
||||
Minor Changes
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
- Fixes a bug where undefined variables in with\_\* loops would cause a
|
||||
task failure even if the when condition would cause the task to be
|
||||
skipped.
|
||||
- Fixed a bug related to roles where in certain situations a role may
|
||||
be run more than once despite not allowing duplicates.
|
||||
- Fixed some additional bugs related to atomic\_move for modules.
|
||||
- Fixes multiple bugs related to field/attribute inheritance in nested
|
||||
blocks and includes, as well as task iteration logic during failures.
|
||||
- Fixed pip installing packages into virtualenvs using the system pip
|
||||
instead of the virtualenv pip.
|
||||
- Fixed dnf on systems with dnf-2.0.x (some changes in the API).
|
||||
- Fixed traceback with dnf install of groups.
|
||||
- Fixes a bug in which include\_vars was not working with failed\_when.
|
||||
- Fix for include\_vars only loading files with .yml, .yaml, and .json
|
||||
extensions. This was only supposed to apply to loading a directory of
|
||||
vars files.
|
||||
- Fixes several bugs related to properly incrementing the failed count
|
||||
in the host statistics.
|
||||
- Fixes a bug with listening handlers which did not specify a ``name``
|
||||
field.
|
||||
- Fixes a bug with the ``play_hosts`` internal variable, so that it
|
||||
properly reflects the current list of hosts.
|
||||
- Fixes a bug related to the v2\_playbook\_on\_start callback method
|
||||
and legacy (v1) plugins.
|
||||
- Fixes an openssh related process exit race condition, related to the
|
||||
fact that connections using ControlPersist do not close stderr.
|
||||
- Improvements and fixes to OpenBSD fact gathering.
|
||||
- Updated ``make deb`` to use pbuilder. Use ``make local_deb`` for the
|
||||
previous non-pbuilder build.
|
||||
- Fixed Windows async to avoid blocking due to handle inheritance.
|
||||
- Fixed bugs in the mount module on older Linux kernels and \*BSDs
|
||||
- Fix regression in jinja2 include search path.
|
||||
- Various minor fixes for Python 3
|
||||
- Inserted some checks for jinja2-2.9, which can cause some issues with
|
||||
Ansible currently.
|
||||
|
||||
2.2 "The Battle of Evermore" - 11-01-2016
|
||||
-----------------------------------------
|
||||
|
||||
Major Changes:
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
- Security fix for CVE-2016-8628 - Command injection by compromised
|
||||
server via fact variables. In some situations, facts returned by
|
||||
modules could overwrite connection-based facts or some other special
|
||||
variables, leading to injected commands running on the Ansible
|
||||
controller as the user running Ansible (or via escalated
|
||||
permissions).
|
||||
- Security fix for CVE-2016-8614 - apt\_key module not properly
|
||||
validating keys in some situations.
|
||||
- Added the ``listen`` feature for modules. This feature allows tasks
|
||||
to more easily notify multiple handlers, as well as making it easier
|
||||
for handlers from decoupled roles to be notified.
|
||||
- Major performance improvements.
|
||||
- Added support for binary modules
|
||||
- Added the ability to specify serial batches as a list
|
||||
(``serial: [1, 5, 10]``), which allows for so-called "canary" actions
|
||||
in one play.
|
||||
- Fixed 'local type' plugins and actions to have a more predictable
|
||||
relative path. Fixes a regression of 1.9 (PR #16805). Existing users
|
||||
of 2.x will need to adjust related tasks.
|
||||
- ``meta`` tasks can now use conditionals.
|
||||
- ``raw`` now returns ``changed: true`` to be consistent with
|
||||
shell/command/script modules. Add ``changed_when: false`` to ``raw``
|
||||
tasks to restore the pre-2.2 behavior if necessary.
|
||||
- New privilege escalation become method ``ksu``
|
||||
- Windows ``async:`` support for long-running or background tasks.
|
||||
- Windows ``environment:`` support for setting module environment vars
|
||||
in play/task.
|
||||
- Added a new ``meta`` option: ``end_play``, which can be used to skip
|
||||
to the end of a play.
|
||||
- roles can now be included in the middle of a task list via the new
|
||||
``include_role`` module, this also allows for making the role import
|
||||
'loopable' and/or conditional.
|
||||
- The service module has been changed to use system specific modules if
|
||||
they exist and fall back to the old service module if they cannot be
|
||||
found or detected.
|
||||
- Add ability to specify what ssh client binary to use on the
|
||||
controller. This can be configured via ssh\_executable in the ansible
|
||||
config file or by setting ansible\_ssh\_executable as an inventory
|
||||
variable if different ones are needed for different hosts.
|
||||
- Windows:
|
||||
- several facts were modified or renamed for consistency with their
|
||||
Unix counterparts, and many new facts were added. If your playbooks
|
||||
rely on any of the following keys, please ensure they are using the
|
||||
correct key names and/or values:
|
||||
|
||||
- ansible\_date\_time.date (changed to use yyyy-mm-dd format instead
|
||||
of default system-locale format)
|
||||
- ansible\_date\_time.iso8601 (changed to UTC instead of local time)
|
||||
- ansible\_distribution (now uses OS caption string, e.g.:
|
||||
"Microsoft Windows Server 2012 R2 Standard", version is still
|
||||
available on ansible\_distribution\_version)
|
||||
- ansible\_totalmem (renamed to ansible\_memtotal\_mb, units changed
|
||||
to MB instead of bytes)
|
||||
|
||||
- ``async:`` support for long-running or background tasks.
|
||||
- ``environment:`` support for setting module environment vars in
|
||||
play/task.
|
||||
- Tech Preview: Work has been done to get Ansible running under
|
||||
Python3. This work is not complete enough to depend upon in
|
||||
production environments but it is enough to begin testing it.
|
||||
- Most of the controller side should now work. Users should be able to
|
||||
run python3 /usr/bin/ansible and python3 /usr/bin/ansible-playbook
|
||||
and have core features of ansible work.
|
||||
- A few of the most essential modules have been audited and are known
|
||||
to work. Others work out of the box.
|
||||
- We are using unit and integration tests to help us port code and not
|
||||
regress later. Even if you are not familiar with python you can still
|
||||
help by contributing integration tests (just ansible roles) that
|
||||
exercise more of the code to make sure it continues to run on both
|
||||
Python2 and Python3.
|
||||
- scp\_if\_ssh now supports True, False and "smart". "smart" is the
|
||||
default and will retry failed sftp transfers with scp.
|
||||
- Network:
|
||||
- Refactored all network modules to remove duplicate code and take
|
||||
advantage of Ansiballz implementation
|
||||
- All functionality from \*\_template network modules have been
|
||||
combined into \*\_config module
|
||||
- Network \*\_command modules not longer allow configuration mode
|
||||
statements
|
||||
|
||||
New Modules
|
||||
^^^^^^^^^^^
|
||||
|
||||
- apache2\_mod\_proxy
|
||||
- asa
|
||||
- asa\_acl
|
||||
- asa\_command
|
||||
- asa\_config
|
||||
- atomic
|
||||
- atomic\_host
|
||||
- atomic\_image
|
||||
- aws
|
||||
- cloudformation\_facts
|
||||
- ec2\_asg\_facts
|
||||
- ec2\_customer\_gateway
|
||||
- ec2\_lc\_find
|
||||
- ec2\_vpc\_dhcp\_options\_facts
|
||||
- ec2\_vpc\_nacl
|
||||
- ec2\_vpc\_nacl\_facts
|
||||
- ec2\_vpc\_nat\_gateway
|
||||
- ec2\_vpc\_peer
|
||||
- ec2\_vpc\_vgw
|
||||
- efs
|
||||
- efs\_facts
|
||||
- execute\_lambda
|
||||
- iam\_mfa\_device\_facts
|
||||
- iam\_server\_certificate\_facts
|
||||
- kinesis\_stream
|
||||
- lambda
|
||||
- lambda\_alias
|
||||
- lambda\_event
|
||||
- lambda\_facts
|
||||
- redshift
|
||||
- redshift\_subnet\_group
|
||||
- s3\_website
|
||||
- sts\_session\_token
|
||||
- cloudstack
|
||||
- cs\_router
|
||||
- cs\_snapshot\_policy
|
||||
- dellos6
|
||||
- dellos6\_command
|
||||
- dellos6\_config
|
||||
- dellos6\_facts
|
||||
- dellos9
|
||||
- dellos9\_command
|
||||
- dellos9\_config
|
||||
- dellos9\_facts
|
||||
- dellos10
|
||||
- dellos10\_command
|
||||
- dellos10\_config
|
||||
- dellos10\_facts
|
||||
- digital\_ocean\_block\_storage
|
||||
- docker
|
||||
- docker\_network
|
||||
- eos
|
||||
- eos\_facts
|
||||
- exoscale:
|
||||
- exo\_dns\_domain
|
||||
- exo\_dns\_record
|
||||
- f5:
|
||||
- bigip\_device\_dns
|
||||
- bigip\_device\_ntp
|
||||
- bigip\_device\_sshd
|
||||
- bigip\_gtm\_datacenter
|
||||
- bigip\_gtm\_virtual\_server
|
||||
- bigip\_irule
|
||||
- bigip\_routedomain
|
||||
- bigip\_selfip
|
||||
- bigip\_ssl\_certificate
|
||||
- bigip\_sys\_db
|
||||
- bigip\_vlan
|
||||
- github
|
||||
- github\_key
|
||||
- github\_release
|
||||
- google
|
||||
- gcdns\_record
|
||||
- gcdns\_zone
|
||||
- gce\_mig
|
||||
- honeybadger\_deployment
|
||||
- illumos
|
||||
- dladm\_etherstub
|
||||
- dladm\_vnic
|
||||
- flowadm
|
||||
- ipadm\_if
|
||||
- ipadm\_prop
|
||||
- ipmi
|
||||
- ipmi\_boot
|
||||
- ipmi\_power
|
||||
- ios
|
||||
- ios\_facts
|
||||
- iosxr
|
||||
- iosxr\_facts
|
||||
- include\_role
|
||||
- jenkins
|
||||
- jenkins\_job
|
||||
- jenkins\_plugin
|
||||
- kibana\_plugin
|
||||
- letsencrypt
|
||||
- logicmonitor
|
||||
- logicmonitor\_facts
|
||||
- lxd
|
||||
- lxd\_profile
|
||||
- lxd\_container
|
||||
- netapp
|
||||
- netapp\_e\_amg
|
||||
- netapp\_e\_amg\_role
|
||||
- netapp\_e\_amg\_sync
|
||||
- netapp\_e\_auth
|
||||
- netapp\_e\_facts
|
||||
- netapp\_e\_flashcache
|
||||
- netapp\_e\_hostgroup
|
||||
- netapp\_e\_host
|
||||
- netapp\_e\_lun\_mapping
|
||||
- netapp\_e\_snapshot\_group
|
||||
- netapp\_e\_snapshot\_images
|
||||
- netapp\_e\_snapshot\_volume
|
||||
- netapp\_e\_storage\_system
|
||||
- netapp\_e\_storagepool
|
||||
- netapp\_e\_volume
|
||||
- netapp\_e\_volume\_copy
|
||||
- netconf\_config
|
||||
- netvisor
|
||||
- pn\_cluster
|
||||
- pn\_ospfarea
|
||||
- pn\_ospf
|
||||
- pn\_show
|
||||
- pn\_trunk
|
||||
- pn\_vlag
|
||||
- pn\_vlan
|
||||
- pn\_vrouterbgp
|
||||
- pn\_vrouterif
|
||||
- pn\_vrouterlbif
|
||||
- pn\_vrouter
|
||||
- nxos
|
||||
- nxos\_aaa\_server\_host
|
||||
- nxos\_aaa\_server
|
||||
- nxos\_acl\_interface
|
||||
- nxos\_acl
|
||||
- nxos\_bgp\_af
|
||||
- nxos\_bgp\_neighbor\_af
|
||||
- nxos\_bgp\_neighbor
|
||||
- nxos\_bgp
|
||||
- nxos\_evpn\_global
|
||||
- nxos\_evpn\_vni
|
||||
- nxos\_file\_copy
|
||||
- nxos\_gir\_profile\_management
|
||||
- nxos\_gir
|
||||
- nxos\_hsrp
|
||||
- nxos\_igmp\_interface
|
||||
- nxos\_igmp
|
||||
- nxos\_igmp\_snooping
|
||||
- nxos\_install\_os
|
||||
- nxos\_interface\_ospf
|
||||
- nxos\_mtu
|
||||
- nxos\_ntp\_auth
|
||||
- nxos\_ntp\_options
|
||||
- nxos\_ntp
|
||||
- nxos\_ospf
|
||||
- nxos\_ospf\_vrf
|
||||
- nxos\_overlay\_global
|
||||
- nxos\_pim\_interface
|
||||
- nxos\_pim
|
||||
- nxos\_pim\_rp\_address
|
||||
- nxos\_portchannel
|
||||
- nxos\_rollback
|
||||
- nxos\_smu
|
||||
- nxos\_snapshot
|
||||
- nxos\_snmp\_community
|
||||
- nxos\_snmp\_contact
|
||||
- nxos\_snmp\_host
|
||||
- nxos\_snmp\_location
|
||||
- nxos\_snmp\_traps
|
||||
- nxos\_snmp\_user
|
||||
- nxos\_static\_route
|
||||
- nxos\_udld\_interface
|
||||
- nxos\_udld
|
||||
- nxos\_vpc\_interface
|
||||
- nxos\_vpc
|
||||
- nxos\_vrf\_af
|
||||
- nxos\_vtp\_domain
|
||||
- nxos\_vtp\_password
|
||||
- nxos\_vtp\_version
|
||||
- nxos\_vxlan\_vtep
|
||||
- nxos\_vxlan\_vtep\_vni
|
||||
- mssql\_db
|
||||
- ovh\_ip\_loadbalancing\_backend
|
||||
- opendj\_backendprop
|
||||
- openstack
|
||||
- os\_keystone\_service
|
||||
- os\_recordset
|
||||
- os\_server\_group
|
||||
- os\_stack
|
||||
- os\_zone
|
||||
- ovirt
|
||||
- ovirt\_auth
|
||||
- ovirt\_disks
|
||||
- ovirt\_vms
|
||||
- rhevm
|
||||
- rocketchat
|
||||
- sefcontext
|
||||
- sensu\_subscription
|
||||
- smartos
|
||||
- smartos\_image\_facts
|
||||
- sros
|
||||
- sros\_command
|
||||
- sros\_config
|
||||
- sros\_rollback
|
||||
- statusio\_maintenance
|
||||
- systemd
|
||||
- telegram
|
||||
- univention
|
||||
- udm\_dns\_record
|
||||
- udm\_dns\_zone
|
||||
- udm\_group
|
||||
- udm\_share
|
||||
- udm\_user
|
||||
- vmware
|
||||
- vmware\_guest
|
||||
- vmware\_local\_user\_manager
|
||||
- vmware\_vmotion
|
||||
- vyos
|
||||
- vyos\_command
|
||||
- vyos\_config
|
||||
- vyos\_facts
|
||||
- wakeonlan
|
||||
- windows
|
||||
- win\_command
|
||||
- win\_robocopy
|
||||
- win\_shell
|
||||
|
||||
New Callbacks
|
||||
^^^^^^^^^^^^^
|
||||
|
||||
- foreman
|
||||
|
||||
Minor Changes
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
- now -vvv shows exact path from which 'currently executing module' was
|
||||
picked up from.
|
||||
- loop\_control now has a label option to allow fine grained control
|
||||
what gets displayed per item
|
||||
- loop\_control now has a pause option to allow pausing for N seconds
|
||||
between loop iterations of a task.
|
||||
- New privilege escalation become method ``ksu``
|
||||
- ``raw`` now returns ``changed: true`` to be consistent with
|
||||
shell/command/script modules. Add ``changed_when: false`` to ``raw``
|
||||
tasks to restore the pre-2.2 behavior if necessary.
|
||||
- removed previously deprecated ';' as host list separator.
|
||||
- Only check if the default ssh client supports ControlPersist once
|
||||
instead of once for each host + task combination.
|
||||
- Fix a problem with the pip module updating the python pip package
|
||||
itself.
|
||||
- ansible\_play\_hosts is a new magic variable to provide a list of
|
||||
hosts in scope for the current play. Unlike play\_hosts it is not
|
||||
subject to the 'serial' keyword.
|
||||
- ansible\_play\_batch is a new magic variable meant to substitute the
|
||||
current play\_hosts.
|
||||
- The subversion module from core now marks its password parameter as
|
||||
no\_log so the password is obscured when logging.
|
||||
- The postgresql\_lang and postgresql\_ext modules from extras now mark
|
||||
login\_password as no\_log so the password is obscured when logging.
|
||||
- Fix for yum module incorrectly thinking it succeeded in installing
|
||||
packages
|
||||
- Make the default ansible\_managed template string into a static
|
||||
string since all of the replacable values lead to non-idempotent
|
||||
behaviour.
|
||||
|
||||
For custom front ends using the API:
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
- ansible.parsing.vault:
|
||||
- VaultLib.is\_encrypted() has been deprecated. It will be removed in
|
||||
2.4. Use ansible.parsing.vault.is\_encrypted() instead
|
||||
- VaultFile has been removed. This unfinished code was never used
|
||||
inside of Ansible. The feature it was intended to support has now
|
||||
been implemented without using this.
|
||||
- VaultAES, the older, insecure encrypted format that debuted in
|
||||
Ansible-1.5 and was replaced by VaultAES256 less than a week later,
|
||||
now has a deprecation warning. **It will be removed in 2.3**. In the
|
||||
unlikely event that you wrote a vault file in that 1 week window and
|
||||
have never modified the file since (ansible-vault automatically
|
||||
re-encrypts the file using VaultAES256 whenever it is written to but
|
||||
not read), run ``ansible-vault rekey [filename]`` to move to
|
||||
VaultAES256.
|
||||
|
||||
Removed Deprecated
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
- ';' as host list separator.
|
||||
- with\_ 'bare variable' handling, now loop items must always be
|
||||
templated ``{{ }}`` or they will be considered as plain strings.
|
||||
- skipping task on 'missing attribute' in loop variable, now in a loop
|
||||
an undefined attribute will return an error instead of skipping the
|
||||
task.
|
||||
- skipping on undefined variables in loop, now loops will have to
|
||||
define a variable or use ``|default`` to avoid errors.
|
||||
|
||||
Deprecations
|
||||
~~~~~~~~~~~~
|
||||
|
||||
Notice given that the following will be removed in Ansible 2.4: \*
|
||||
Modules \* eos\_template \* ios\_template \* iosxr\_template \*
|
||||
junos\_template \* nxos\_template \* ops\_template
|
||||
@ -1,581 +0,0 @@
|
||||
=====================================
|
||||
Ansible 2.3 "Ramble On" Release Notes
|
||||
=====================================
|
||||
2.3.4 "Ramble On" - TBD
|
||||
-----------------------
|
||||
|
||||
- Flush stdin when passing the become password. Fixes some cases of
|
||||
timeout on Python3 with the ssh connection plugin:
|
||||
https://github.com/ansible/ansible/pull/35049
|
||||
|
||||
Bugfixes
|
||||
~~~~~~~~
|
||||
|
||||
- Fix setting of environment in a task that uses a loop:
|
||||
https://github.com/ansible/ansible/issues/32685
|
||||
- Fix https retrieval with TLSv1.2:
|
||||
https://github.com/ansible/ansible/pull/32053
|
||||
|
||||
2.3.3 "Ramble On" - TBD
|
||||
-----------------------
|
||||
|
||||
Bugfixes
|
||||
~~~~~~~~
|
||||
|
||||
- Security fix for CVE-2017-7550 the jenkins\_plugin module was logging
|
||||
the jenkins server password if the url\_password was passed via the
|
||||
params field: https://github.com/ansible/ansible/pull/30875
|
||||
- Fix alternatives module handlling of non existing options
|
||||
- Fix synchronize traceback with the docker connection plugin
|
||||
- Do not escape backslashes in the template lookup plugin to mirror
|
||||
what the template module does
|
||||
- Fix the expires option of the postgresq\_user module
|
||||
- Fix for win\_acl when settings permissions on registry objects that
|
||||
use ``ALL APPLICATION PACKAGES`` and
|
||||
``ALL RESTRICTED APPLICATION PACKAGES``
|
||||
- Python3 fixes
|
||||
- asorted azure modules
|
||||
- pause module
|
||||
- hacking/env-setup script
|
||||
- Fix traceback when checking for passwords in logged strings when
|
||||
logging executed commands.
|
||||
- docker\_login module
|
||||
- Workaround python-libselinux API change in the seboolean module
|
||||
- digital\_ocean\_tag module
|
||||
- Fix the zip filter
|
||||
- Fix user module combining bytes and text
|
||||
- Fix for security groups in the amazon efs module
|
||||
- Fix for the jail connection plugin not finding the named jail
|
||||
- Fix for blockinfile's parameters insertbefore and insertafter
|
||||
- ios\_config: Fix traceback when the efaults parameter is not set
|
||||
- iosxr\_config: Fixed unicode error when UTF-8 characters are in
|
||||
configs
|
||||
- Fix check mode in archive module
|
||||
- Fix UnboundLocalError in check mode in cs\_role module
|
||||
- Fix to always use lowercase hostnames for host keys in known\_hosts
|
||||
module
|
||||
- Added missing return results for win\_stat
|
||||
- Fix rabbitmq modules to give a helpful error if requests is not
|
||||
installed
|
||||
- Fix yum module not deleting rpms that it downloaded
|
||||
- Fix yum module failing with a URL to an rpm
|
||||
- Fix file module inappropriately expanding literal dollar signs in a
|
||||
path read from the filesystem as an environment variable.
|
||||
- Fix the ssh "smart" transport setting which automatically selects the
|
||||
best means of transferring files over ssh (sftp, ssh, piped).
|
||||
- Fix authentication by api\_key parameter in exoscale modules.
|
||||
- vmware module\_utils shared code ssl/validate\_certs fixes in
|
||||
connection logic
|
||||
- allow 'bridge' facts to work for certain containers that create
|
||||
conflicting ones with connection plugins
|
||||
- Fix for win\_get\_url to use TLS 1.2/1.1 if it is available on the
|
||||
host
|
||||
- Fix for the filetree lookup with non-ascii group names
|
||||
- Better message for invalid keywords/options in task due to undefined
|
||||
expressions
|
||||
- Fixed check mode for enable on Solaris for service module
|
||||
- Fix cloudtrail module to allow AWS profiles other than the default
|
||||
- Fix an encoding issue with secret (password) vars\_prompts
|
||||
- Fix for Windows become to show the stdout and stderr strings on a
|
||||
failure
|
||||
- Fix the issue SSL verification can not be disabled for Tower modules
|
||||
- Use safe\_load instead on load to read a yaml document
|
||||
- Fix for win\_file to respect check mode when deleting directories
|
||||
- Include\_role now complains about invalid arguments
|
||||
- Added socket conditions to ignore for wait\_for, no need to error for
|
||||
closing already closed connection
|
||||
- Updated hostname module to work on newer RHEL7 releases
|
||||
- Security fix to avoid provider password leaking in logs for network
|
||||
modules
|
||||
|
||||
\* Python3 fixes for azure modules
|
||||
|
||||
2.3.2 "Ramble On" - 2017-08-04
|
||||
------------------------------
|
||||
|
||||
Bugfixes
|
||||
~~~~~~~~
|
||||
|
||||
- Fix partend i18n issues
|
||||
- fixed handling of extra vars for tower\_job\_template (#25272)
|
||||
- Python3 bugfixes
|
||||
- Fix sorting of ec2 policies
|
||||
- Fix digital\_ocean dynamic inventory script
|
||||
- Fix for the docker connection plugin
|
||||
- Fix pip module when using python3's pyvenv and python3 -m venv to
|
||||
create virtualenvs
|
||||
- Fix for the AnsiBallZ wrapper so that it gives a better error message
|
||||
when there's not enough disk space to create its tempdir.
|
||||
- Fix so ansilbe-galaxy install --force with unversioned roles will
|
||||
once again overwrite old versions.
|
||||
- Fix for RabbitMQ 3.6.7 endpoint return code changing.
|
||||
- Fix for Foreman organization creation
|
||||
- fixed incorrect fail\_json ref in rpm\_key
|
||||
- Corrected requried on hash\_name for dynamodb\_table
|
||||
- Fix for fetch action plugin not validating correctly
|
||||
- Avoid vault view writing display to logs
|
||||
- htpasswd: fix passlib module version comparison
|
||||
- Fix for flowdock error message when external\_user\_name is missing
|
||||
- fixed corner case for delegate\_to, loops and delegate\_facts
|
||||
- fixed wait\_for python2.4/2.5 compatibility (this is last version
|
||||
this is needed)
|
||||
- fix for adhoc not obeying callback options
|
||||
- fix for win\_find where it fails to recursively scan empty nested
|
||||
directories
|
||||
- fix non-pipelined code paths for Windows (eg,
|
||||
ANSIBLE\_KEEP\_REMOTE\_FILES, non-pipelined connection plugins)
|
||||
- fix for win\_updates where args and check mode were ignored due to
|
||||
common code change
|
||||
- fix for unprivileged users to Windows runas become method
|
||||
- fix starttls code path for mail module
|
||||
- fix missing LC\_TYPE in parted module
|
||||
- fix CN parsing with OpenSSL 1.1 in letsencrypt module
|
||||
- fix params assignment in jabber module
|
||||
- fix TXT record type handling in exo\_dns\_record module
|
||||
- fix message queue message ttl can't be 0 in rabbitmq\_queue module
|
||||
- CloudStack bugfixes:
|
||||
- fix template upload for users in cs\_template module, change default
|
||||
to is\_routing=None
|
||||
- several fixes in cs\_host module fixes hypervisor handling
|
||||
- fix network param ignored due typo in cs\_nic module
|
||||
- fix missing type bool in module cs\_zone
|
||||
- fix KeyError: 'sshkeypair' in cs\_instance module for CloudStack v4.5
|
||||
and before
|
||||
- fix for win\_chocolatey where trying to upgrade all the packages as
|
||||
per the example docs fails
|
||||
- fix for win\_chocolatey where it did not fail if the version set did
|
||||
not exist
|
||||
- fix for win\_regedit always changing a reg key if the dword values
|
||||
set is a hex
|
||||
- fix for wait\_for on non-Linux systems with newer versions of psutil
|
||||
- fix eos\_banner code and test issues
|
||||
- run tearup and teardown of EAPI service only on EAPI tests
|
||||
- fix eos\_config tests so only Eth1 and Eth2 are used
|
||||
- Fix for potential bug when using legacy inventory vars for
|
||||
configuring the su password.
|
||||
- Fix crash in file module when directories contain non-utf8 filenames
|
||||
- Fix for dnf groupinstall with dnf-2.x
|
||||
- Fix seboolean module for incompatibility in newer Python3 selinux
|
||||
bindings
|
||||
- Optimization for inventory, no need to dedup at every stage, its
|
||||
redundant and slow
|
||||
- Fix fact gathering for package and service action plugins
|
||||
- make random\_choice more error resilient (#27380)
|
||||
- ensure prefix in plugin loading to avoid conflicts
|
||||
- fix for a small number of modules (tempfile, possibly copy) which
|
||||
could fail if the tempdir on the remote box was a symlink
|
||||
- fix non-pipelined code paths for Windows (eg,
|
||||
ANSIBLE\_KEEP\_REMOTE\_FILES, non-pipelined connection plugins)
|
||||
- fix for win\_updates where args and check mode were ignored due to
|
||||
common code change
|
||||
|
||||
2.3.1 "Ramble On" - 2017-06-01
|
||||
------------------------------
|
||||
|
||||
Bugfixes
|
||||
~~~~~~~~
|
||||
|
||||
- Security fix for CVE-2017-7481 - data for lookup plugins used as
|
||||
variables was not being correctly marked as "unsafe".
|
||||
- Fix default value of fetch module's validate\_checksum to be True
|
||||
- Added fix for "meta: refresh\_connection" not working with default
|
||||
'smart' connection.
|
||||
- Fix template so that the --diff command line option works when the
|
||||
destination is a directory
|
||||
- Fix python3 bugs in pam\_limits
|
||||
- Fix unbound error when using module deprecation as a single string
|
||||
- Several places in which error handling was broken due to bad
|
||||
conversions or just typos
|
||||
- Fix to user module for appending/setting groups on OpenBSD (flags
|
||||
were reversed)
|
||||
- assemble fix to use safer os.join.path, avoids charset issues
|
||||
- fixed issue with solaris facts and i18n
|
||||
- added python2.4 compatiblity fix to sysctl module
|
||||
- Fix comparison of exisiting container security opts in the
|
||||
docker\_container module
|
||||
- fixed service module invocation of insserv on certain platforms
|
||||
- Fix traceback in os\_user in an error case.
|
||||
- Fix docker container to restart a container when changing to fewer
|
||||
exposed ports
|
||||
- Fix tracebacks in docker\_network
|
||||
- Fixes to detection of updated docker images
|
||||
- Handle detection of docker image changes when published ports is
|
||||
changed
|
||||
- Fix for docker\_container restarting images when links list is empty.
|
||||
|
||||
2.3 "Ramble On" - 2017-04-12
|
||||
----------------------------
|
||||
|
||||
Moving to Ansible 2.3 guide
|
||||
http://docs.ansible.com/ansible/porting\_guide\_2.3.html
|
||||
|
||||
Major Changes
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
- Documented and renamed the previously released 'single var vaulting'
|
||||
feature, allowing user to use vault encryption for single variables
|
||||
in a normal YAML vars file.
|
||||
- Allow module\_utils for custom modules to be placed in site-specific
|
||||
directories and shipped in roles
|
||||
- On platforms that support it, use more modern system polling API
|
||||
instead of select in the ssh connection plugin. This removes one
|
||||
limitation on how many parallel forks are feasible on these systems.
|
||||
- Windows/WinRM supports (experimental) become method "runas" to run
|
||||
modules and scripts as a different user, and to transparently access
|
||||
network resources.
|
||||
- The WinRM connection plugin now uses pipelining when executing
|
||||
modules, resulting in significantly faster execution for small tasks.
|
||||
- The WinRM connection plugin can now manage Kerberos tickets
|
||||
automatically when ``ansible_winrm_transport=kerberos`` and
|
||||
``ansible_user``/``ansible_password`` are specified.
|
||||
- Refactored/standardized most Windows modules, adding check-mode and
|
||||
diff support where possible.
|
||||
- Extended Windows module API with parameter-type support, helper
|
||||
functions. (i.e. Expand-Environment, Add-Warning,
|
||||
Add-DeprecatationWarning)
|
||||
- restructured how async works to allow it to apply to action plugins
|
||||
that choose to support it.
|
||||
|
||||
Minor Changes
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
- The version and release facts for OpenBSD hosts were reversed. This
|
||||
has been changed so that version has the numeric portion and release
|
||||
has the name of the release.
|
||||
- removed 'package' from default squash actions as not all package
|
||||
managers support it and it creates errors when using loops, any user
|
||||
can add back via config options if they don't use those package
|
||||
managers or otherwise avoid the errors.
|
||||
- Blocks can now have a ``name`` field, to aid in playbook readability.
|
||||
- default strategy is now configurable via ansible.cfg or environment
|
||||
variable.
|
||||
- Added 'ansible\_playbook\_python' which contains 'current python
|
||||
executable', it can be blank in some cases in which Ansible is not
|
||||
invoked via the standard CLI (sys.executable limitation).
|
||||
- Added 'metadata' to modules to enable classification
|
||||
- ansible-doc now displays path to module and existing 'metadata'
|
||||
- added optional 'piped' transfer method to ssh plugin for when scp and
|
||||
sftp are missing, ssh plugin is also now 'smarter' when using these
|
||||
options
|
||||
- default controlpersist path is now a custom hash of host-port-user to
|
||||
avoid the socket path length errors for long hostnames
|
||||
- Various fixes for Python3 compatibility
|
||||
- Fixed issues with inventory formats not handling 'all' and
|
||||
'ungrouped' in an uniform way.
|
||||
- 'service' tasks can now use async again, we had lost this capability
|
||||
when changed into an action plugin.
|
||||
- made any\_errors\_fatal inheritable from play to task and all other
|
||||
objects in between.
|
||||
- many small performance improvements in inventory and variable
|
||||
handling and in task execution.
|
||||
- Added a retry class to the ec2\_asg module since customers were
|
||||
running into throttling errors (AWSRetry is a solution for modules
|
||||
using boto3 which isn't applicable here).
|
||||
|
||||
Deprecations
|
||||
~~~~~~~~~~~~
|
||||
|
||||
- Specifying --tags (or --skip-tags) multiple times on the command line
|
||||
currently leads to the last one overriding all the previous ones.
|
||||
This behaviour is deprecated. In the future, if you specify --tags
|
||||
multiple times the tags will be merged together. From now on, using
|
||||
--tags multiple times on one command line will emit a deprecation
|
||||
warning. Setting the merge\_multiple\_cli\_tags option to True in the
|
||||
ansible.cfg file will enable the new behaviour. In 2.4, the default
|
||||
will be to merge and you can enable the old overwriting behaviour via
|
||||
the config option. In 2.5, multiple --tags options will be merged
|
||||
with no way to go back to the old behaviour.
|
||||
|
||||
- Modules (scheduled for removal in 2.5)
|
||||
- ec2\_vpc
|
||||
- cl\_bond
|
||||
- cl\_bridge
|
||||
- cl\_img\_install
|
||||
- cl\_interface
|
||||
- cl\_interface\_policy
|
||||
- cl\_license
|
||||
- cl\_ports
|
||||
- nxos\_mtu, use nxos\_system instead
|
||||
|
||||
New: Callbacks
|
||||
^^^^^^^^^^^^^^
|
||||
|
||||
- dense: minimal stdout output with fallback to default when verbose
|
||||
|
||||
New: lookups
|
||||
^^^^^^^^^^^^
|
||||
|
||||
- keyring: allows getting password from the 'controller' system's
|
||||
keyrings
|
||||
|
||||
New: cache
|
||||
^^^^^^^^^^
|
||||
|
||||
- pickle (uses python's own serializer)
|
||||
- yaml
|
||||
|
||||
New: inventory scripts
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
- oVirt/RHV
|
||||
|
||||
New: filters
|
||||
^^^^^^^^^^^^
|
||||
|
||||
- combinations
|
||||
- permutations
|
||||
- zip
|
||||
- zip\_longest
|
||||
|
||||
Module Notes
|
||||
~~~~~~~~~~~~
|
||||
|
||||
- AWS lambda: previously ignored changes that only affected one
|
||||
parameter. Existing deployments may have outstanding changes that
|
||||
this bugfix will apply.
|
||||
- oVirt/RHV: Added support for 4.1 features and the following:
|
||||
- data centers, clusters, hosts, storage domains and networks
|
||||
management.
|
||||
- hosts and virtual machines affinity groups and labels.
|
||||
- users, groups and permissions management.
|
||||
- Improved virtual machines and disks management.
|
||||
- Mount: Some fixes so bind mounts are not mounted each time the
|
||||
playbook runs.
|
||||
|
||||
New Modules
|
||||
~~~~~~~~~~~
|
||||
|
||||
- a10\_server\_axapi3
|
||||
- amazon:
|
||||
- aws\_kms
|
||||
- cloudfront\_facts
|
||||
- ec2\_group\_facts
|
||||
- ec2\_lc\_facts
|
||||
- ec2\_vpc\_igw\_facts
|
||||
- ec2\_vpc\_nat\_gateway\_facts
|
||||
- ec2\_vpc\_vgw\_facts
|
||||
- ecs\_ecr
|
||||
- elasticache\_parameter\_group
|
||||
- elasticache\_snapshot
|
||||
- iam\_role
|
||||
- s3\_sync
|
||||
- archive
|
||||
- beadm
|
||||
- bigswitch:
|
||||
- bigmon\_chain
|
||||
- bigmon\_policy
|
||||
- cloudengine:
|
||||
- ce\_command
|
||||
- cloudscale\_server
|
||||
- cloudstack:
|
||||
- cs\_host
|
||||
- cs\_nic
|
||||
- cs\_region
|
||||
- cs\_role
|
||||
- cs\_vpc
|
||||
- dimensiondata\_network
|
||||
- eos:
|
||||
- eos\_banner
|
||||
- eos\_system
|
||||
- eos\_user
|
||||
- f5:
|
||||
- bigip\_gtm\_facts
|
||||
- bigip\_hostname
|
||||
- bigip\_snat\_pool
|
||||
- bigip\_sys\_global
|
||||
- foreman:
|
||||
- foreman
|
||||
- katello
|
||||
- fortios
|
||||
- fortios\_config
|
||||
- gconftool2
|
||||
- google:
|
||||
- gce\_eip
|
||||
- gce\_snapshot
|
||||
- gcpubsub
|
||||
- gcpubsub\_facts
|
||||
- hpilo:
|
||||
- hpilo\_boot
|
||||
- hpilo\_facts
|
||||
- hponcfg
|
||||
- icinga2\_feature
|
||||
- illumos:
|
||||
- dladm\_iptun
|
||||
- dladm\_linkprop
|
||||
- dladm\_vlan
|
||||
- ipadm\_addr
|
||||
- ipadm\_addrprop
|
||||
- ipadm\_ifprop
|
||||
- infinidat:
|
||||
- infini\_export
|
||||
- infini\_export\_client
|
||||
- infini\_fs
|
||||
- infini\_host
|
||||
- infini\_pool
|
||||
- infini\_vol
|
||||
- ipa:
|
||||
- ipa\_group
|
||||
- ipa\_hbacrule
|
||||
- ipa\_host
|
||||
- ipa\_hostgroup
|
||||
- ipa\_role
|
||||
- ipa\_sudocmd
|
||||
- ipa\_sudocmdgroup
|
||||
- ipa\_sudorule
|
||||
- ipa\_user
|
||||
- ipinfoio\_facts
|
||||
- ios:
|
||||
- ios\_banner
|
||||
- ios\_system
|
||||
- ios\_vrf
|
||||
- iosxr\_system
|
||||
- iso\_extract
|
||||
- java\_cert
|
||||
- jenkins\_script
|
||||
- ldap:
|
||||
- ldap\_attr
|
||||
- ldap\_entry
|
||||
- logstash\_plugin
|
||||
- mattermost
|
||||
- net\_command
|
||||
- netapp:
|
||||
- sf\_account\_manager
|
||||
- sf\_snapshot\_schedule\_manager
|
||||
- sf\_volume\_manager
|
||||
- sf\_volume\_access\_group\_manager
|
||||
- nginx\_status\_facts
|
||||
- nsupdate
|
||||
- omapi\_host
|
||||
- openssl:
|
||||
- openssl\_privatekey
|
||||
- openssl\_publickey
|
||||
- openstack:
|
||||
- os\_nova\_host\_aggregate
|
||||
- os\_quota
|
||||
- openwrt\_init
|
||||
- ordnance:
|
||||
- ordnance\_config
|
||||
- ordnance\_facts
|
||||
- ovirt:
|
||||
- ovirt\_affinity\_groups
|
||||
- ovirt\_affinity\_labels
|
||||
- ovirt\_affinity\_labels\_facts
|
||||
- ovirt\_clusters
|
||||
- ovirt\_clusters\_facts
|
||||
- ovirt\_datacenters
|
||||
- ovirt\_datacenters\_facts
|
||||
- ovirt\_external\_providers
|
||||
- ovirt\_external\_providers\_facts
|
||||
- ovirt\_groups
|
||||
- ovirt\_groups\_facts
|
||||
- ovirt\_host\_networks
|
||||
- ovirt\_host\_pm
|
||||
- ovirt\_hosts
|
||||
- ovirt\_hosts\_facts
|
||||
- ovirt\_mac\_pools
|
||||
- ovirt\_networks
|
||||
- ovirt\_networks\_facts
|
||||
- ovirt\_nics
|
||||
- ovirt\_nics\_facts
|
||||
- ovirt\_permissions
|
||||
- ovirt\_permissions\_facts
|
||||
- ovirt\_quotas
|
||||
- ovirt\_quotas\_facts
|
||||
- ovirt\_snapshots
|
||||
- ovirt\_snapshots\_facts
|
||||
- ovirt\_storage\_domains
|
||||
- ovirt\_storage\_domains\_facts
|
||||
- ovirt\_tags
|
||||
- ovirt\_tags\_facts
|
||||
- ovirt\_templates
|
||||
- ovirt\_templates\_facts
|
||||
- ovirt\_users
|
||||
- ovirt\_users\_facts
|
||||
- ovirt\_vmpools
|
||||
- ovirt\_vmpools\_facts
|
||||
- ovirt\_vms\_facts
|
||||
- pacemaker\_cluster
|
||||
- packet:
|
||||
- packet\_device
|
||||
- packet\_sshkey
|
||||
- pamd
|
||||
- panos:
|
||||
- panos\_address
|
||||
- panos\_admin
|
||||
- panos\_admpwd
|
||||
- panos\_cert\_gen\_ssh
|
||||
- panos\_check
|
||||
- panos\_commit
|
||||
- panos\_dag
|
||||
- panos\_import
|
||||
- panos\_interface
|
||||
- panos\_lic
|
||||
- panos\_loadcfg
|
||||
- panos\_mgtconfig
|
||||
- panos\_nat\_policy
|
||||
- panos\_pg
|
||||
- panos\_restart
|
||||
- panos\_security\_policy
|
||||
- panos\_service
|
||||
- postgresql\_schema
|
||||
- proxmox\_kvm
|
||||
- proxysql:
|
||||
- proxysql\_backend\_servers
|
||||
- proxysql\_global\_variables
|
||||
- proxysql\_manage\_config
|
||||
- proxysql\_mysql\_users
|
||||
- proxysql\_query\_rules
|
||||
- proxysql\_replication\_hostgroups
|
||||
- proxysql\_scheduler
|
||||
- pubnub\_blocks
|
||||
- pulp\_repo
|
||||
- runit
|
||||
- serverless
|
||||
- set\_stats
|
||||
- panos:
|
||||
- panos\_security\_policy
|
||||
- smartos:
|
||||
- imgadm
|
||||
- vmadm
|
||||
- sorcery
|
||||
- stacki\_host
|
||||
- swupd
|
||||
- tempfile
|
||||
- tower:
|
||||
- tower\_credential
|
||||
- tower\_group
|
||||
- tower\_host
|
||||
- tower\_inventory
|
||||
- tower\_job\_template
|
||||
- tower\_label
|
||||
- tower\_organization
|
||||
- tower\_project
|
||||
- tower\_role
|
||||
- tower\_team
|
||||
- tower\_user
|
||||
- vmware:
|
||||
- vmware\_guest\_facts
|
||||
- vmware\_guest\_snapshot
|
||||
- web\_infrastructure:
|
||||
- jenkins\_script
|
||||
- system
|
||||
- parted
|
||||
- windows:
|
||||
- win\_disk\_image
|
||||
- win\_dns\_client
|
||||
- win\_domain
|
||||
- win\_domain\_controller
|
||||
- win\_domain\_membership
|
||||
- win\_find
|
||||
- win\_msg
|
||||
- win\_path
|
||||
- win\_psexec
|
||||
- win\_reg\_stat
|
||||
- win\_region
|
||||
- win\_say
|
||||
- win\_shortcut
|
||||
- win\_tempfile
|
||||
- xbps
|
||||
- zfs:
|
||||
- zfs\_facts
|
||||
- zpool\_facts
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,949 +0,0 @@
|
||||
===================================
|
||||
Ansible 2.5 "Kashmir" Release Notes
|
||||
===================================
|
||||
|
||||
v2.5.1
|
||||
======
|
||||
|
||||
Release Summary
|
||||
---------------
|
||||
|
||||
| Release Date: 2018-04-18
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`_
|
||||
|
||||
|
||||
Minor Changes
|
||||
-------------
|
||||
|
||||
- Updated example in vcenter_license module.
|
||||
|
||||
- Updated virtual machine facts with instanceUUID which is unique for each VM irrespective of name and BIOS UUID.
|
||||
|
||||
|
||||
Bugfixes
|
||||
--------
|
||||
|
||||
- EOS can not check configuration without use of config session (ANSIBLE_EOS_USE_SESSIONS=0). Fix is to throw error when hiting into this exception case. Configs would neither be checked nor be played on the eos device.
|
||||
|
||||
- Adds exception handling which is raised when user does not have correct set of permissions/privileges to read virtual machine facts.
|
||||
|
||||
- onyx_pfc_interface - Add support for changes in pfc output in onyx 3.6.6000 https://github.com/ansible/ansible/pull/37651
|
||||
|
||||
- Fix mlag summary json parsing for onyx version 3.6.6000 and above https://github.com/ansible/ansible/pull/38191
|
||||
|
||||
- Update documentation related to datacenter in vmware_guest_find module. Mark datacenter as optional.
|
||||
|
||||
- Set default network type as 'dhcp' if user has not specified any.
|
||||
|
||||
- nmcli change default value of autoconnect
|
||||
|
||||
- azure_rm_image - Allow Azure images to be created with tags, bug was introduced in Ansible v2.5.0
|
||||
|
||||
- azure_rm_networkinterface - fixed examples in module documentation and added fix to allow an IP configuration with no public IP (https://github.com/ansible/ansible/pull/36824)
|
||||
|
||||
- azure_rm_virtualmachine - removed docs note that says on marketplace images can be used, custom images were added in 2.5
|
||||
|
||||
- Improve keyed groups for complex inventory
|
||||
|
||||
- Made separator configurable
|
||||
|
||||
- Fixed some exception types
|
||||
|
||||
- Better error messages
|
||||
|
||||
- backup options doc change to reflect backup directory location in case playbook is run from a role
|
||||
|
||||
- filters - Don't overwrite builtin jinja2 filters with tests (https://github.com/ansible/ansible/pull/37881)
|
||||
|
||||
- edgeos_command - add action plugin to backup config (https://github.com/ansible/ansible/pull/37619)
|
||||
|
||||
- eos_vlan - fixed eos_vlan not working when having more than 6 interfaces (https://github.com/ansible/ansible/pull/38347)
|
||||
|
||||
- Various grafana_* modules - Port away from the deprecated b64encodestring function to the b64encode function instead. (https://github.com/ansible/ansible/pull/38388)
|
||||
|
||||
- include_role - Fix parameter templating (https://github.com/ansible/ansible/pull/36372)
|
||||
|
||||
- include_vars - Call DataLoader.load with the correct signature to prevent hang on error processing (https://github.com/ansible/ansible/pull/38194)
|
||||
|
||||
- ios_interface - neighbors option now include CDP neighbors (https://github.com/ansible/ansible/pull/37667)
|
||||
|
||||
- ios_l2_interface - fix removal of trunk vlans (https://github.com/ansible/ansible/pull/37389)
|
||||
|
||||
- Add supported connection in junos module documentation (https://github.com/ansible/ansible/pull/38813)
|
||||
|
||||
- _nxos_switchport - fix removal of trunk vlans (https://github.com/ansible/ansible/pull/37328)
|
||||
|
||||
- nxos_l2_interface - fix removal of trunk vlans (https://github.com/ansible/ansible/pull/37336)
|
||||
|
||||
- nxos_snapshot - fix documentation and add required parameter logic (https://github.com/ansible/ansible/pull/37232, https://github.com/ansible/ansible/pull/37248)
|
||||
|
||||
- Improve integration test - Ensure each transport test runs only once (https://github.com/ansible/ansible/pull/37462)
|
||||
|
||||
- nxos_user - Integration test (https://github.com/ansible/ansible/pull/37852)
|
||||
|
||||
- nxos_bgp_af - Fix UnboundLocalError (https://github.com/ansible/ansible/pull/37610)
|
||||
|
||||
- nxos_vrf - Fix nxos_vrf issues (https://github.com/ansible/ansible/pull/37092)
|
||||
|
||||
- nxos_vrf_af - Fix nxos_vrf_af issues (https://github.com/ansible/ansible/pull/37211)
|
||||
|
||||
- nxos_udld - Fix nxos_udld issues (https://github.com/ansible/ansible/pull/37418)
|
||||
|
||||
- nxos_vlan - Fix nxos_vlan issues (https://github.com/ansible/ansible/pull/38008)
|
||||
|
||||
- nxos_vlan - nxos_vlan purge (https://github.com/ansible/ansible/pull/38202)
|
||||
|
||||
- nxos_aaa_server - Fix nxos_aaa_server (https://github.com/ansible/ansible/pull/38117)
|
||||
|
||||
- nxos_aaa_server_host - Fix nxos_aaa_server_host (https://github.com/ansible/ansible/pull/38188)
|
||||
|
||||
- nxos_acl - Fix nxos_acl (https://github.com/ansible/ansible/pull/38283)
|
||||
|
||||
- nxos_static_route - Fix nxos_static_route (https://github.com/ansible/ansible/pull/37614)
|
||||
|
||||
- nxos_acl_interface test - Fix nxos_acl_interface test (https://github.com/ansible/ansible/pull/38230)
|
||||
|
||||
- nxos_igmp - Fix nxos_igmp (https://github.com/ansible/ansible/pull/38496)
|
||||
|
||||
- nxos_hsrp - Fix nxos_hsrp (https://github.com/ansible/ansible/pull/38410)
|
||||
|
||||
- nxos_igmp_snooping - Fix nxos_igmp_snooping (https://github.com/ansible/ansible/pull/38566)
|
||||
|
||||
- nxos_ntp_auth - Fix nxos_ntp_auth issues (https://github.com/ansible/ansible/pull/38824)
|
||||
|
||||
- nxos_ntp_options - Fix nxos_ntp_options issues (https://github.com/ansible/ansible/pull/38695)
|
||||
|
||||
- Fix onyx_config action plugin when used on Python 3 https://github.com/ansible/ansible/pull/38343
|
||||
|
||||
- openssl_certificate - Handle dump() in check_mode https://github.com/ansible/ansible/pull/38386
|
||||
|
||||
- Fix traceback when creating or stopping ovirt vms (https://github.com/ansible/ansible/pull/37249)
|
||||
|
||||
- Fix for consul_kv idempotence on Python3 https://github.com/ansible/ansible/issues/35893
|
||||
|
||||
- Fix csvfile lookup plugin when used on Python3 https://github.com/ansible/ansible/pull/37625
|
||||
|
||||
- ec2 - Fix ec2 user_data parameter to properly convert to base64 on python3 (https://github.com/ansible/ansible/pull/37628)
|
||||
|
||||
- Fix to send and receive bytes over a socket in the haproxy module which was causing tracebacks on Python3 https://github.com/ansible/ansible/pull/35176
|
||||
|
||||
- jira module - Fix bytes/text handling for base64 encoding authentication tokens (https://github.com/ansible/ansible/pull/33862)
|
||||
|
||||
- ansible-pull - fixed a bug checking for changes when we've pulled from the git repository on python3 https://github.com/ansible/ansible/issues/36962
|
||||
|
||||
- Fix bytes/text handling in vagrant dynamic inventory https://github.com/ansible/ansible/pull/37631
|
||||
|
||||
- wait_for_connection - Fix python3 compatibility bug (https://github.com/ansible/ansible/pull/37646)
|
||||
|
||||
- restore stderr ouput even if script module run is successful (https://github.com/ansible/ansible/pull/38177)
|
||||
|
||||
- ec2_asg - no longer terminates an instance before creating a replacement (https://github.com/ansible/ansible/pull/36679)
|
||||
|
||||
- ec2_group - security groups in default VPCs now have a default egress rule (https://github.com/ansible/ansible/pull/38018)
|
||||
|
||||
- inventory correctly removes hosts from 'ungrouped' group (https://github.com/ansible/ansible/pull/37617)
|
||||
|
||||
- letsencrypt - fixed domain matching authorization (https://github.com/ansible/ansible/pull/37558)
|
||||
|
||||
- letsencrypt - improved elliptic curve account key parsing (https://github.com/ansible/ansible/pull/37275)
|
||||
|
||||
- facts are no longer processed more than once for each action (https://github.com/ansible/ansible/issues/37535)
|
||||
|
||||
- cs_vpc_offering - only return VPC offferings matching name arg (https://github.com/ansible/ansible/pull/37783)
|
||||
|
||||
- cs_configuration - filter names inside the module instead of relying on API (https://github.com/ansible/ansible/pull/37910)
|
||||
|
||||
- various fixes to networking module connection subsystem (https://github.com/ansible/ansible/pull/37529)
|
||||
|
||||
- ios_* - fixed netconf issues (https://github.com/ansible/ansible/pull/38155)
|
||||
|
||||
- ovirt_* - various bugfixes (https://github.com/ansible/ansible/pull/38341)
|
||||
|
||||
- ansible-vault no longer requires '--encrypt-vault-id' with edit (https://github.com/ansible/ansible/pull/35923)
|
||||
|
||||
- k8s lookup plugin now uses same auth method as other k8s modules (https://github.com/ansible/ansible/pull/37533)
|
||||
|
||||
- ansible-inventory now properly displays group_var graph (https://github.com/ansible/ansible/pull/38744)
|
||||
|
||||
- setup - FreeBSD fact gathering no longer fails on missing dmesg, sysctl, etc (https://github.com/ansible/ansible/pull/37194)
|
||||
|
||||
- inventory scripts now read passwords without byte interpolation (https://github.com/ansible/ansible/pull/35582)
|
||||
|
||||
- user - fixed password expiration support in FreeBSD
|
||||
|
||||
- meta - inventory_refresh now works properly on YAML inventory plugins (https://github.com/ansible/ansible/pull/38242)
|
||||
|
||||
- foreman callback plugin - fixed API options (https://github.com/ansible/ansible/pull/38138)
|
||||
|
||||
- win_certificate_store - fixed a typo that stopped it from getting the key_storage values
|
||||
|
||||
- win_copy - Preserve the local tmp folder instead of deleting it so future tasks can use it (https://github.com/ansible/ansible/pull/37964)
|
||||
|
||||
- powershell - fixed issue with passing in a bool and int to the Windows environment block, also allow special chars in the env key name (https://github.com/ansible/ansible/pull/37215)
|
||||
|
||||
- Ansible.ModuleUtils.FileUtil - Catch DirectoryNotFoundException with Test-AnsiblePath (https://github.com/ansible/ansible/pull/37968)
|
||||
|
||||
- win_exec_wrapper - support loading of Windows modules different different line endings than the core modules (https://github.com/ansible/ansible/pull/37291)
|
||||
|
||||
- win_reboot - fix deprecated warning message to show version in correct spot (https://github.com/ansible/ansible/pull/37898)
|
||||
|
||||
- win_regedit - wait for garbage collection to finish before trying to unload the hive in case handles didn't unload in time (https://github.com/ansible/ansible/pull/38912)
|
||||
|
||||
- win_service - Fix bug with win_service not being able to handle special chars like '[' (https://github.com/ansible/ansible/pull/37897)
|
||||
|
||||
- win_setup - Use connection name for network interfaces as interface name isn't helpful (https://github.com/ansible/ansible/pull/37327)
|
||||
|
||||
- win_setup - fix bug where getting the machine SID would take a long time in large domain environments (https://github.com/ansible/ansible/pull/38646)
|
||||
|
||||
- win_updates - handle if the module fails to load and return the error message (https://github.com/ansible/ansible/pull/38363)
|
||||
|
||||
- win_uri - do not override existing header when using the ``headers`` key. (https://github.com/ansible/ansible/pull/37845)
|
||||
|
||||
- win_uri - convert status code values to an int before validating them in server response (https://github.com/ansible/ansible/pull/38080)
|
||||
|
||||
- windows - display UTF-8 characters correctly in Windows return json (https://github.com/ansible/ansible/pull/37229)
|
||||
|
||||
- winrm - when managing Kerberos tickets in Ansible, get a forwardable ticket if delegation is set (https://github.com/ansible/ansible/pull/37815)
|
||||
|
||||
|
||||
v2.5.0
|
||||
======
|
||||
|
||||
Major Changes
|
||||
-------------
|
||||
|
||||
- Ansible Network improvements
|
||||
|
||||
* Created new connection plugins ``network_cli`` and ``netconf`` to replace ``connection=local``. ``connection=local`` will continue to work for a number of Ansible releases.
|
||||
* No more ``unable to open shell``. A clear and descriptive message will be displayed in normal ansible-playbook output without needing to enable debug mode
|
||||
* Loads of documentation, see `Ansible for Network Automation Documentation <http://docs.ansible.com/ansible/2.5/network/>`_.
|
||||
* Refactor common network shared code into package under ``module_utils/network/``
|
||||
* Filters: Add a filter to convert XML response from a network device to JSON object.
|
||||
* Loads of bug fixes.
|
||||
* Plus lots more.
|
||||
|
||||
- New simpler and more intuitive 'loop' keyword for task loops. The ``with_<lookup>`` loops will likely be deprecated in the near future and eventually removed.
|
||||
|
||||
- Added fact namespacing; from now on facts will be available under ``ansible_facts`` namespace (for example: ``ansible_facts.os_distribution``)
|
||||
without the ``ansible_`` prefix. They will continue to be added into the main namespace directly, but now with a configuration toggle to
|
||||
enable this. This is currently on by default, but in the future it will default to off.
|
||||
|
||||
- Added a configuration file that a site administrator can use to specify modules to exclude from being used.
|
||||
|
||||
|
||||
Minor Changes
|
||||
-------------
|
||||
|
||||
- ansible-inventory - now supports a ``--export`` option to preserve group_var data (https://github.com/ansible/ansible/pull/36188)
|
||||
|
||||
- Added a few new magic vars corresponding to configuration/command
|
||||
line options: ``ansible_diff_mode``, ``ansible_inventory_sources``,
|
||||
``ansible_limit``, ``ansible_run_tags`` , ``ansible_forks`` and
|
||||
``ansible_skip_tags``
|
||||
|
||||
- Updated the bundled copy of the six library to 1.11.0
|
||||
|
||||
- Added support to ``become`` ``NT AUTHORITY\System``,
|
||||
``NT AUTHORITY\LocalService``, and ``NT AUTHORITY\NetworkService`` on Windows hosts
|
||||
|
||||
- Fixed ``become`` to work with async on Windows hosts
|
||||
|
||||
- Improved ``become`` elevation process to work on standard
|
||||
Administrator users without disabling UAC on Windows hosts
|
||||
|
||||
- The jenkins\_plugin and yum\_repository plugins had their ``params``
|
||||
option removed because they circumvented Ansible's option processing.
|
||||
|
||||
- The combine filter now accepts a list of dicts as well as dicts directly
|
||||
|
||||
- New CLI options for ansible-inventory, ansible-console and ansible to
|
||||
allow specifying a playbook\_dir to be used for relative search
|
||||
paths.
|
||||
|
||||
- `The `stat`` and ``win_stat`` modules have changed the default value of
|
||||
``get_md5`` to ``False`` which will result in the ``md5`` return
|
||||
value not being returned. This option will be removed altogether in
|
||||
Ansible 2.9. Use ``get_checksum: True`` with
|
||||
``checksum_algorithm: md5`` to return an md5 hash of the file under
|
||||
the ``checksum`` return value.
|
||||
|
||||
- The ``osx_say`` module was renamed into ``say``.
|
||||
|
||||
- Task debugger functionality was moved into ``StrategyBase``, and
|
||||
extended to allow explicit invocation from use of the ``debugger``
|
||||
keyword. The ``debug`` strategy is still functional, and is now just
|
||||
a trigger to enable this functionality.
|
||||
|
||||
- The documentation has undergone a major overhaul. Content has been moved into
|
||||
targeted guides; the table of contents has been cleaned up and streamlined;
|
||||
the CSS theme has been updated to a custom version of the most recent
|
||||
ReadTheDocs theme, and the underlying directory structure for the RST files
|
||||
has been reorganized.
|
||||
|
||||
- The ANSIBLE\_REMOTE\_TMP environment variable has been added to
|
||||
supplement (and override) ANSIBLE\_REMOTE\_TEMP. This matches with
|
||||
the spelling of the config value. ANSIBLE\_REMOTE\_TEMP will be
|
||||
deprecated in the future.
|
||||
|
||||
- aci_* modules - added signature based authentication
|
||||
|
||||
- aci_* modules - included dedicated ACI documentation
|
||||
|
||||
- aci_* modules - improved ACI return values
|
||||
|
||||
|
||||
Deprecated Features
|
||||
-------------------
|
||||
|
||||
- Apstra's ``aos_*`` modules are deprecated as they do not work with AOS 2.1 or higher. See new modules at `https://github.com/apstra <https://github.com/apstra>`_.
|
||||
|
||||
- Previously deprecated 'hostfile' config settings have been
|
||||
're-deprecated' because previously code did not warn about deprecated
|
||||
configuration settings.
|
||||
|
||||
- Using Ansible-provided Jinja tests as filters is deprecated and will
|
||||
be removed in Ansible 2.9.
|
||||
|
||||
- The ``stat`` and ``win_stat`` modules have deprecated ``get_md5`` and the ``md5``
|
||||
return values. These options will become undocumented in Ansible
|
||||
2.9 and removed in a later version.
|
||||
|
||||
- The ``redis_kv`` lookup has been deprecated in favor of new ``redis`` lookup
|
||||
|
||||
- Passing arbitrary parameters that begin with ``HEADER_`` to the uri
|
||||
module, used for passing http headers, is deprecated. Use the
|
||||
``headers`` parameter with a dictionary of header names to value
|
||||
instead. This will be removed in Ansible 2.9
|
||||
|
||||
- Passing arbitrary parameters to the zfs module to set zfs properties
|
||||
is deprecated. Use the ``extra_zfs_properties`` parameter with a
|
||||
dictionary of property names to values instead. This will be removed
|
||||
in Ansible 2.9.
|
||||
|
||||
- Use of the AnsibleModule parameter ``check\_invalid\_arguments`` in custom modules is deprecated. In the future, all parameters will be
|
||||
checked to see whether they are listed in the arg spec and an error raised if they are not listed. This behaviour is the current and
|
||||
future default so most custom modules can simply remove ``check\_invalid\_arguments`` if they set it to the default value of True.
|
||||
The ``check\_invalid\_arguments`` parameter will be removed in Ansible 2.9.
|
||||
|
||||
- The nxos\_ip\_interface module is deprecated in Ansible 2.5. Use nxos\_l3\_interface module instead.
|
||||
|
||||
- The nxos\_portchannel module is deprecated in Ansible 2.5. Use nxos\_linkagg module instead.
|
||||
|
||||
- The nxos\_switchport module is deprecated in Ansible 2.5. Use nxos\_l2\_interface module instead.
|
||||
|
||||
- The ec2\_ami\_find has been deprecated; use ec2\_ami\_facts instead.
|
||||
|
||||
- panos\_security\_policy: Use panos\_security\_rule - the old module uses deprecated API calls
|
||||
|
||||
- vsphere\_guest is deprecated in Ansible 2.5 and will be removed in Ansible-2.9. Use vmware\_guest module instead.
|
||||
|
||||
|
||||
Removed Features (previously deprecated)
|
||||
----------------------------------------
|
||||
|
||||
- accelerate.
|
||||
|
||||
- boundary\_meter: There was no deprecation period for this but the
|
||||
hosted service it relied on has gone away so the module has been
|
||||
removed. `#29387 <https://github.com/ansible/ansible/issues/29387>`__
|
||||
|
||||
- cl\_ : cl\_interface, cl\_interface\_policy, cl\_bridge,
|
||||
cl\_img\_install, cl\_ports, cl\_license, cl\_bond. Use ``nclu``
|
||||
instead
|
||||
|
||||
- docker. Use docker\_container and docker\_image instead.
|
||||
|
||||
- ec2\_vpc.
|
||||
|
||||
- ec2\_ami\_search, use ec2\_ami\_facts instead.
|
||||
|
||||
- nxos\_mtu. Use nxos\_system's ``system_mtu`` option instead. To specify an interface's MTU use nxos\_interface.
|
||||
|
||||
- panos\_nat\_policy: Use panos\_nat\_rule the old module uses deprecated API calls
|
||||
|
||||
|
||||
New Lookup Plugins
|
||||
------------------
|
||||
|
||||
- aws\_account\_attribute: Query AWS account attributes such as EC2-Classic availability
|
||||
|
||||
- aws\_service\_ip\_ranges: Query AWS IP ranges for services such as EC2/S3
|
||||
|
||||
- aws\_ssm: Query AWS ssm data
|
||||
|
||||
- config: Lookup Ansible settings
|
||||
|
||||
- conjur\_variable: Fetch credentials from CyberArk Conjur
|
||||
|
||||
- k8s: Query the K8s API
|
||||
|
||||
- nios: Query Infoblox NIOS objects
|
||||
|
||||
- openshift: Return info from Openshift installation
|
||||
|
||||
- redis: look up date from Redis DB, deprecates the redis\_kv one.
|
||||
|
||||
|
||||
New Callback Plugins
|
||||
--------------------
|
||||
|
||||
- null
|
||||
|
||||
- unixy
|
||||
|
||||
- yaml
|
||||
|
||||
|
||||
New Connection Plugins
|
||||
----------------------
|
||||
|
||||
- kubectl
|
||||
|
||||
- oc
|
||||
|
||||
- netconf
|
||||
|
||||
- network\_cli
|
||||
- The existing network\_cli and netconf connection plugins can now be used directly with network modules. See
|
||||
`Network Best Practices for Ansible 2.5 <http://docs.ansible.com/ansible/devel/network_best_practices_2.5.html>`_ for more details.
|
||||
|
||||
|
||||
New Filter Plugins
|
||||
------------------
|
||||
|
||||
- parse\_xml
|
||||
|
||||
|
||||
New Modules
|
||||
-----------
|
||||
|
||||
- Cloud (amazon)
|
||||
- aws\_acm\_facts
|
||||
- aws\_application\_scaling\_policy
|
||||
- aws\_az\_facts
|
||||
- aws\_batch\_compute\_environment
|
||||
- aws\_batch\_job\_definition
|
||||
- aws\_batch\_job\_queue
|
||||
- aws\_direct\_connect\_gateway
|
||||
- aws\_direct\_connect\_virtual\_interface
|
||||
- aws\_elasticbeanstalk\_app
|
||||
- aws\_kms\_facts
|
||||
- aws\_region\_facts
|
||||
- aws\_s3\_cors
|
||||
- aws\_ses\_identity
|
||||
- aws\_ssm\_parameter\_store
|
||||
- aws\_waf\_condition
|
||||
- aws\_waf\_rule
|
||||
- aws\_waf\_web\_acl
|
||||
- cloudfront\_distribution
|
||||
- cloudfront\_invalidation
|
||||
- cloudfront\_origin\_access\_identity
|
||||
- cloudwatchlogs\_log\_group
|
||||
- cloudwatchlogs\_log\_group\_facts
|
||||
- ec2\_ami\_facts
|
||||
- ec2\_asg\_lifecycle\_hook
|
||||
- ec2\_customer\_gateway\_facts
|
||||
- ec2\_instance
|
||||
- ec2\_placement\_group
|
||||
- ec2\_placement\_group\_facts
|
||||
- ec2\_vpc\_egress\_igw
|
||||
- ecs\_taskdefinition\_facts
|
||||
- elasticache\_facts
|
||||
- elb\_target
|
||||
- iam\_role\_facts
|
||||
- iam\_user
|
||||
|
||||
- Cloud (azure)
|
||||
- azure\_rm\_containerinstance
|
||||
- azure\_rm\_containerregistry
|
||||
- azure\_rm\_image
|
||||
- azure\_rm\_keyvault
|
||||
- azure\_rm\_keyvaultkey
|
||||
- azure\_rm\_keyvaultsecret
|
||||
- azure\_rm\_mysqldatabase
|
||||
- azure\_rm\_mysqlserve
|
||||
- azure\_rm\_postgresqldatabase
|
||||
- azure\_rm\_postgresqlserver
|
||||
- azure\_rm\_sqldatabase
|
||||
- azure\_rm\_sqlserver
|
||||
- azure\_rm\_sqlserver\_facts
|
||||
|
||||
- Cloud (cloudstack)
|
||||
- cs\_network\_offering
|
||||
- cs\_service\_offering
|
||||
- cs\_vpc\_offering
|
||||
- cs\_vpn\_connection
|
||||
- cs\_vpn\_customer\_gateway
|
||||
|
||||
- Cloud (digital\_ocean)
|
||||
- digital\_ocean\_certificate
|
||||
- digital\_ocean\_floating\_ip\_facts
|
||||
- digital\_ocean\_sshkey\_facts
|
||||
|
||||
- Cloud (google)
|
||||
- gcp\_dns\_managed\_zone
|
||||
|
||||
- Cloud (misc)
|
||||
- cloudscale\_floating\_ip
|
||||
- spotinst\_aws\_elastigroup
|
||||
- terraform
|
||||
|
||||
- Cloud (oneandone)
|
||||
- oneandone\_firewall\_policy
|
||||
- oneandone\_load\_balancer
|
||||
- oneandone\_monitoring\_policy
|
||||
- oneandone\_private\_network
|
||||
- oneandone\_public\_ip
|
||||
- oneandone\_server
|
||||
|
||||
- Cloud (openstack)
|
||||
- os\_keystone\_endpoint
|
||||
- os\_project\_access
|
||||
|
||||
- Cloud (ovirt)
|
||||
- ovirt\_api\_facts
|
||||
- ovirt\_disk\_facts
|
||||
|
||||
- Cloud (vmware)
|
||||
- vcenter\_folder
|
||||
- vmware\_cfg\_backup
|
||||
- vmware\_datastore\_facts
|
||||
- vmware\_drs\_rule\_facts
|
||||
- vmware\_guest\_file\_operation
|
||||
- vmware\_guest\_powerstate
|
||||
- vmware\_host\_acceptance
|
||||
- vmware\_host\_config\_facts
|
||||
- vmware\_host\_config\_manager
|
||||
- vmware\_host\_datastore
|
||||
- vmware\_host\_dns\_facts
|
||||
- vmware\_host\_facts
|
||||
- vmware\_host\_firewall\_facts
|
||||
- vmware\_host\_firewall\_manager
|
||||
- vmware\_host\_lockdown
|
||||
- vmware\_host\_ntp
|
||||
- vmware\_host\_package\_facts
|
||||
- vmware\_host\_service\_facts
|
||||
- vmware\_host\_service\_manager
|
||||
- vmware\_host\_vmnic\_facts
|
||||
- vmware\_local\_role\_manager
|
||||
- vmware\_vm\_vm\_drs\_rule
|
||||
- vmware\_vmkernel\_facts
|
||||
|
||||
- Cloud (vultr)
|
||||
- vr\_account\_facts
|
||||
- vr\_dns\_domain
|
||||
- vr\_dns\_record
|
||||
- vr\_firewall\_group
|
||||
- vr\_firewall\_rule
|
||||
- vr\_server
|
||||
- vr\_ssh\_key
|
||||
- vr\_startup\_script
|
||||
- vr\_user
|
||||
|
||||
- Clustering
|
||||
- etcd3
|
||||
- k8s
|
||||
- k8s\_raw
|
||||
- k8s\_scale
|
||||
- openshift
|
||||
- openshift\_raw
|
||||
- openshift\_scale
|
||||
|
||||
- Crypto
|
||||
- openssl\_dhparam
|
||||
|
||||
- Database
|
||||
- influxdb
|
||||
- influxdb\_query
|
||||
- influxdb\_user
|
||||
- influxdb\_write
|
||||
|
||||
- Identity
|
||||
- ipa
|
||||
- ipa\_dnszone
|
||||
- ipa\_service
|
||||
- ipa\_subca
|
||||
- keycloak
|
||||
- keycloak\_client
|
||||
- keycloak\_clienttemplate
|
||||
|
||||
- Monitoring
|
||||
- grafana\_dashboard
|
||||
- grafana\_datasource
|
||||
- grafana\_plugin
|
||||
- icinga2\_host
|
||||
- zabbix
|
||||
- zabbix\_proxy
|
||||
- zabbix\_template
|
||||
|
||||
- Net Tools
|
||||
- ip\_netns
|
||||
- nios
|
||||
- nios\_dns\_view
|
||||
- nios\_host\_record
|
||||
- nios\_network
|
||||
- nios\_network\_view
|
||||
- nios\_zone
|
||||
|
||||
- Network (aci)
|
||||
- aci\_aaa\_user
|
||||
- aci\_aaa\_user\_certificate
|
||||
- aci\_access\_port\_to\_interface\_policy\_leaf\_profile
|
||||
- aci\_aep\_to\_domain
|
||||
- aci\_domain
|
||||
- aci\_domain\_to\_encap\_pool
|
||||
- aci\_domain\_to\_vlan\_pool
|
||||
- aci\_encap\_pool
|
||||
- aci\_encap\_pool\_range
|
||||
- aci\_fabric\_node
|
||||
- aci\_firmware\_source
|
||||
- aci\_interface\_policy\_leaf\_policy\_group
|
||||
- aci\_interface\_policy\_leaf\_profile
|
||||
- aci\_interface\_selector\_to\_switch\_policy\_leaf\_profile
|
||||
- aci\_static\_binding\_to\_epg
|
||||
- aci\_switch\_leaf\_selector
|
||||
- aci\_switch\_policy\_leaf\_profile
|
||||
- aci\_switch\_policy\_vpc\_protection\_group
|
||||
- aci\_vlan\_pool
|
||||
- aci\_vlan\_pool\_encap\_block
|
||||
|
||||
- Network (avi)
|
||||
- avi\_api\_version
|
||||
- avi\_clusterclouddetails
|
||||
- avi\_customipamdnsprofile
|
||||
- avi\_errorpagebody
|
||||
- avi\_errorpageprofile
|
||||
- avi\_gslbservice\_patch\_member
|
||||
- avi\_wafpolicy
|
||||
- avi\_wafprofile
|
||||
|
||||
- Network (dimension data)
|
||||
- dimensiondata\_vlan
|
||||
|
||||
- Network (edgeos)
|
||||
- edgeos\_command
|
||||
- edgeos\_config
|
||||
- edgeos\_facts
|
||||
|
||||
- Network (enos)
|
||||
- enos\_command
|
||||
- enos\_config
|
||||
- enos\_facts
|
||||
|
||||
- Network (eos)
|
||||
- eos\_interface
|
||||
- eos\_l2\_interface
|
||||
- eos\_l3\_interface
|
||||
- eos\_linkagg
|
||||
- eos\_lldp
|
||||
- eos\_static\_route
|
||||
|
||||
- Network (f5)
|
||||
- bigip\_asm\_policy
|
||||
- bigip\_device\_connectivity
|
||||
- bigip\_device\_group
|
||||
- bigip\_device\_group\_member
|
||||
- bigip\_device\_httpd
|
||||
- bigip\_device\_trust
|
||||
- bigip\_gtm\_server
|
||||
- bigip\_iapplx\_package
|
||||
- bigip\_monitor\_http
|
||||
- bigip\_monitor\_https
|
||||
- bigip\_monitor\_snmp\_dca
|
||||
- bigip\_monitor\_udp
|
||||
- bigip\_partition
|
||||
- bigip\_policy
|
||||
- bigip\_policy\_rule
|
||||
- bigip\_profile\_client\_ssl
|
||||
- bigip\_remote\_syslog
|
||||
- bigip\_security\_address\_list
|
||||
- bigip\_security\_port\_list
|
||||
- bigip\_software\_update
|
||||
- bigip\_ssl\_key
|
||||
- bigip\_static\_route
|
||||
- bigip\_traffic\_group
|
||||
- bigip\_ucs\_fetch
|
||||
- bigip\_vcmp\_guest
|
||||
- bigip\_wait
|
||||
- bigiq\_regkey\_license
|
||||
- bigiq\_regkey\_pool
|
||||
|
||||
- Network (fortimanager)
|
||||
- fmgr\_script
|
||||
|
||||
- Network (ios)
|
||||
- ios\_l2\_interface
|
||||
- ios\_l3\_interface
|
||||
- ios\_linkagg
|
||||
- ios\_lldp
|
||||
- ios\_vlan
|
||||
|
||||
- Network (iosxr)
|
||||
- iosxr\_netconf
|
||||
|
||||
- Network (ironware)
|
||||
- ironware\_command
|
||||
- ironware\_config
|
||||
- ironware\_facts
|
||||
|
||||
- Network (junos)
|
||||
- junos\_l2\_interface
|
||||
- junos\_scp
|
||||
|
||||
- Network (netact)
|
||||
- netact\_cm\_command
|
||||
|
||||
- Network (netscaler)
|
||||
- netscaler\_nitro\_request
|
||||
|
||||
- Network (nso)
|
||||
- nso\_action
|
||||
- nso\_config
|
||||
- nso\_query
|
||||
- nso\_show
|
||||
- nso\_verify
|
||||
|
||||
- Network (nxos)
|
||||
- nxos\_l2\_interface
|
||||
- nxos\_l3\_interface
|
||||
- nxos\_linkagg
|
||||
- nxos\_lldp
|
||||
|
||||
- Network (onyx)
|
||||
- onyx\_bgp
|
||||
- onyx\_command
|
||||
- onyx\_config
|
||||
- onyx\_facts
|
||||
- onyx\_interface
|
||||
- onyx\_l2\_interface
|
||||
- onyx\_l3\_interface
|
||||
- onyx\_linkagg
|
||||
- onyx\_lldp
|
||||
- onyx\_lldp\_interface
|
||||
- onyx\_magp
|
||||
- onyx\_mlag\_ipl
|
||||
- onyx\_mlag\_vip
|
||||
- onyx\_ospf
|
||||
- onyx\_pfc\_interface
|
||||
- onyx\_protocol
|
||||
- onyx\_vlan
|
||||
|
||||
- Network (panos)
|
||||
- panos\_dag\_tags
|
||||
- panos\_match\_rule
|
||||
- panos\_op
|
||||
- panos\_query\_rules
|
||||
|
||||
- Network (radware)
|
||||
- vdirect\_commit
|
||||
- vdirect\_runnable
|
||||
|
||||
- Network (vyos)
|
||||
- vyos\_vlan
|
||||
|
||||
- Notification
|
||||
- logentries\_msg
|
||||
- say
|
||||
- snow\_record
|
||||
|
||||
- Packaging
|
||||
- os
|
||||
- package\_facts
|
||||
- rhsm\_repository
|
||||
|
||||
- Remote Management (manageiq)
|
||||
- manageiq\_alert\_profiles
|
||||
- manageiq\_alerts
|
||||
- manageiq\_policies
|
||||
- manageiq\_tags
|
||||
|
||||
- Remote Management (oneview)
|
||||
- oneview\_datacenter\_facts
|
||||
- oneview\_enclosure\_facts
|
||||
- oneview\_logical\_interconnect\_group
|
||||
- oneview\_logical\_interconnect\_group\_facts
|
||||
- oneview\_san\_manager\_facts
|
||||
|
||||
- Remote Management (ucs)
|
||||
- ucs\_ip\_pool
|
||||
- ucs\_lan\_connectivity
|
||||
- ucs\_mac\_pool
|
||||
- ucs\_san\_connectivity
|
||||
- ucs\_vhba\_template
|
||||
- ucs\_vlans
|
||||
- ucs\_vnic\_template
|
||||
- ucs\_vsans
|
||||
- ucs\_wwn\_pool
|
||||
|
||||
- System
|
||||
- mksysb
|
||||
- nosh
|
||||
- service\_facts
|
||||
- vdo
|
||||
|
||||
- Web Infrastructure
|
||||
- jenkins\_job\_facts
|
||||
|
||||
- Windows
|
||||
- win\_audit\_policy\_system
|
||||
- win\_audit\_rule
|
||||
- win\_certificate\_store
|
||||
- win\_disk\_facts
|
||||
- win\_product\_facts
|
||||
- win\_scheduled\_task\_stat
|
||||
- win\_whoami
|
||||
|
||||
|
||||
Bugfixes
|
||||
--------
|
||||
|
||||
- tower_* modules - fix credentials to work with v1 and v2 of Ansible Tower API
|
||||
|
||||
- azure_rm modules - updated with internal changes to use API profiles and kwargs for future Azure Stack support and better stability between SDK updates. (https://github.com/ansible/ansible/pull/35538)
|
||||
|
||||
- fixed memory bloat on nested includes by preventing blocks from self-parenting (https://github.com/ansible/ansible/pull/36075)
|
||||
|
||||
- updated to ensure displayed messages under peristent connections are returned to the controller (https://github.com/ansible/ansible/pull/36064)
|
||||
|
||||
- docker_container, docker_image, docker_network modules - Update to work with Docker SDK 3.1
|
||||
|
||||
- edgeos_facts - fix error when there are no commit revisions (https://github.com/ansible/ansible/issues/37123)
|
||||
|
||||
- eos_vrf and eos_eapi - fixed vrf parsing (https://github.com/ansible/ansible/pull/35791)
|
||||
|
||||
- include_role - improved performance and recursion depth (https://github.com/ansible/ansible/pull/36470)
|
||||
|
||||
- interface_file - now accepts interfaces without address family or method (https://github.com/ansible/ansible/pull/34200)
|
||||
|
||||
- lineinfile - fixed insertion if pattern already exists (https://github.com/ansible/ansible/pull/33393)
|
||||
|
||||
- lineinfile - fixed regexp used with insert(before|after) inserting duplicate lines (https://github.com/ansible/ansible/pull/36156)
|
||||
|
||||
- Connection error messages may contain characters that jinja2 would interpret as a template. Wrap the error string so this doesn't happen (https://github.com/ansible/ansible/pull/37329)
|
||||
|
||||
- nxos_evpn_vni - fixed a number of issues (https://github.com/ansible/ansible/pull/35930)
|
||||
|
||||
- nxos_igmp_interface - fixed response handling for different nxos versions (https://github.com/ansible/ansible/pull/35959)
|
||||
|
||||
- nxos_interface_ospf - added various bugfixes (https://github.com/ansible/ansible/pull/35988)
|
||||
|
||||
- Fix onyx_linkagg module writing debugging information to a tempfile on the remote machine (https://github.com/ansible/ansible/pull/37308)
|
||||
|
||||
- openshift modules - updated to client version 0.4.0 (https://github.com/ansible/ansible/pull/35127)
|
||||
|
||||
- setup.py - Ensure we install ansible-config and ansible-inventory with `pip install -e` (https://github.com/ansible/ansible/pull/37151)
|
||||
|
||||
- Fix for ansible_*_interpreter on Python3 when using non-newstyle modules. Those include old-style ansible modules and Ansible modules written in non-python scripting languages (https://github.com/ansible/ansible/pull/36541)
|
||||
|
||||
- Fix bytes/text handling in maven_artifact that was causing tracebacks on Python3
|
||||
|
||||
- znode - fixed a bug calling the zookeeper API under Python3 https://github.com/ansible/ansible/pull/36999
|
||||
|
||||
- Fix for unarchive when users use the --strip-components extra_opt to tar causing ansible to set permissions on the wrong directory. (https://github.com/ansible/ansible/pull/37048)
|
||||
|
||||
- fixed templating issues in loop_control (https://github.com/ansible/ansible/pull/36124)
|
||||
|
||||
- ansible-config - fixed traceback when no config file is present (https://github.com/ansible/ansible/issues/35965)
|
||||
|
||||
- added various fixes to Linux virtualization facts (https://github.com/ansible/ansible/issues/36038)
|
||||
|
||||
- fixed failure when remote_tmp is a subdir of a system tempdir (https://github.com/ansible/ansible/pull/36143)
|
||||
|
||||
- ios_ping - updated to allow for count > 70 (https://github.com/ansible/ansible/pull/36142)
|
||||
|
||||
- fix for ansible-vault always requesting passwords (https://github.com/ansible/ansible/issues/33027)
|
||||
|
||||
- ios CLI - fixed prompt detection (https://github.com/ansible/ansible/issues/35662)
|
||||
|
||||
- nxos_user - fixed structured output issue (https://github.com/ansible/ansible/pull/36193)
|
||||
|
||||
- nxos_* modules - various fixes (https://github.com/ansible/ansible/pull/36340)
|
||||
|
||||
- nxos_* modules - various fixes (https://github.com/ansible/ansible/pull/36374)
|
||||
|
||||
- nxos_install_os - kickstart_image_file is no longer required (https://github.com/ansible/ansible/pull/36319)
|
||||
|
||||
- script/patch - fixed tempfile ownership issues (https://github.com/ansible/ansible/issues/36398)
|
||||
|
||||
- nxos_bgp_neighbor - fixed various module arg issues (https://github.com/ansible/ansible/pull/36318)
|
||||
|
||||
- vyos_l3_interface - fixed issues with multiple addresses on an interface (https://github.com/ansible/ansible/pull/36377)
|
||||
|
||||
- nxos_banner - fixed issues with unstructured output (https://github.com/ansible/ansible/pull/36411)
|
||||
|
||||
- nxos_bgp_neighbor_af - fixed various issues (https://github.com/ansible/ansible/pull/36472)
|
||||
|
||||
- vyos_config - fixed IndexError in sanitize_config (https://github.com/ansible/ansible/pull/36375)
|
||||
|
||||
- cs_user - fixed user_api_secret return for ACS 4.10+ (https://github.com/ansible/ansible/pull/36447)
|
||||
|
||||
- nxos_* modules - various fixes (https://github.com/ansible/ansible/pull/36514)
|
||||
|
||||
- fix cases where INVENTORY_UNPARSED_IS_FAILED didn't fail (https://github.com/ansible/ansible/issues/36034)
|
||||
|
||||
- aws_ses_identity - fixed failure on missing identity info (https://github.com/ansible/ansible/issues/36065)
|
||||
|
||||
- ec2_vpc_net_facts - fixed traceback for regions other than us-east-1 (https://github.com/ansible/ansible/pull/35302)
|
||||
|
||||
- aws_waf_* - fixed traceback on WAFStaleDataException (https://github.com/ansible/ansible/pull/36405)
|
||||
|
||||
- ec2_group - fixed check_mode when using tags (https://github.com/ansible/ansible/pull/36503)
|
||||
|
||||
- loop item labels will now update if templated (https://github.com/ansible/ansible/pull/36430)
|
||||
|
||||
- (network)_vlan / (network)_vrf - decouple config/state check (https://github.com/ansible/ansible/pull/36704)
|
||||
|
||||
- nxos_vlan / nxos_linkagg - fixed various issues (https://github.com/ansible/ansible/pull/36711)
|
||||
|
||||
- nios - allow ib_spec attrs to be filtered in update (https://github.com/ansible/ansible/pull/36673)
|
||||
|
||||
- nso_config / nso_verify - fixed various issues (https://github.com/ansible/ansible/pull/36583)
|
||||
|
||||
- cs_sshkeypair - fixed ssh key rename (https://github.com/ansible/ansible/pull/36726)
|
||||
|
||||
- cliconf - fixed get_config traceback (https://github.com/ansible/ansible/pull/36682)
|
||||
|
||||
- impi_boot - added floppy option (https://github.com/ansible/ansible/pull/36174)
|
||||
|
||||
- nso_config - fixed ordering issues (https://github.com/ansible/ansible/pull/36774)
|
||||
|
||||
- nxos_facts - fixed ipv6 parsing issues on new nxos releases (https://github.com/ansible/ansible/pull/36796)
|
||||
|
||||
- nso_config - fixed dependency sort cycle issue (https://github.com/ansible/ansible/pull/36828)
|
||||
|
||||
- ovirt_* - various fixes (https://github.com/ansible/ansible/pull/36828)
|
||||
|
||||
- aws_ssm_parameter_store - added no_log to value arg (https://github.com/ansible/ansible/pull/36828)
|
||||
|
||||
- openshift_raw - fixed creation of RoleBinding resources (https://github.com/ansible/ansible/pull/36887)
|
||||
|
||||
- nxos_interface - fixed multiple issues (https://github.com/ansible/ansible/pull/36827)
|
||||
|
||||
- junos_command - fixed Python3 issues (https://github.com/ansible/ansible/pull/36782)
|
||||
|
||||
- ios_static_route - fixed idempotence issue (https://github.com/ansible/ansible/pull/35912)
|
||||
|
||||
- terraform - fixed typo in module result stdout value (https://github.com/ansible/ansible/pull/37253)
|
||||
|
||||
- setup - ensure that `ansible_lo` is properly nested under ansible_facts (https://github.com/ansible/ansible/pull/37360)
|
||||
|
||||
- vmware_guest_snapshot - updated to always check for root snapshot (https://github.com/ansible/ansible/pull/36001)
|
||||
|
||||
- vyos - added fixes to check mode support (https://github.com/ansible/ansible/pull/35977)
|
||||
|
||||
- vyos_l3_interface - added support for localhost (https://github.com/ansible/ansible/pull/36141)
|
||||
|
||||
- win_domain_controller - updated to only specify ReadOnlyReplica when necessary (https://github.com/ansible/ansible/pull/36017)
|
||||
|
||||
- win_feature - will display a more helpful error when it fails during execution (https://github.com/ansible/ansible/pull/36491)
|
||||
|
||||
- win_lineinfile - fixed issue where \r and \n as a string was converted to newline (https://github.com/ansible/ansible/pull/35100)
|
||||
|
||||
- win_updates - fixed regression with string category names (https://github.com/ansible/ansible/pull/36015)
|
||||
|
||||
- win_uri - return response info and content on a non 200 message
|
||||
|
||||
- win_uri - fixed issues with the creates and removes options (https://github.com/ansible/ansible/pull/36016)
|
||||
|
||||
- win_wait_for - fixed issue when trying to check a localport when the port is not available externally
|
||||
|
||||
@ -1,18 +0,0 @@
|
||||
---
|
||||
release_tag_re: '(v(?:[\d.ab\-]|rc)+)'
|
||||
pre_release_tag_re: '(?P<pre_release>(?:[ab]|rc)+\d*)$'
|
||||
notesdir: fragments
|
||||
prelude_section_name: release_summary
|
||||
sections:
|
||||
- ['major_changes', 'Major Changes']
|
||||
- ['minor_changes', 'Minor Changes']
|
||||
- ['deprecated_features', 'Deprecated Features']
|
||||
- ['removed_features', 'Removed Features (previously deprecated)']
|
||||
- ['new_lookup_plugins', 'New Lookup Plugins']
|
||||
- ['new_callback_plugins', 'New Callback Plugins']
|
||||
- ['new_connection_plugins', 'New Connection Plugins']
|
||||
- ['new_test_plugins', 'New Test Plugins']
|
||||
- ['new_filter_plugins', 'New Filter Plugins']
|
||||
- ['new_modules', 'New Modules']
|
||||
- ['bugfixes', 'Bugfixes']
|
||||
- ['known_issues', 'Known Issues']
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- EOS can not check configuration without use of config session (ANSIBLE_EOS_USE_SESSIONS=0). Fix is to throw error when hiting into this exception case. Configs would neither be checked nor be played on the eos device.
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- Adds exception handling which is raised when user does not have correct set of permissions/privileges to read virtual machine facts.
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- onyx_pfc_interface - Add support for changes in pfc output in onyx 3.6.6000 https://github.com/ansible/ansible/pull/37651
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- Fix mlag summary json parsing for onyx version 3.6.6000 and above https://github.com/ansible/ansible/pull/38191
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- Update documentation related to datacenter in vmware_guest_find module. Mark datacenter as optional.
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- Set default network type as 'dhcp' if user has not specified any.
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- Changed hostname variable in order for the esxi host to be found when authentication against a vcenter was done.
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- nmcli change default value of autoconnect
|
||||
@ -1,2 +0,0 @@
|
||||
minor_changes:
|
||||
- ansible-inventory - now supports a ``--export`` option to preserve group_var data (https://github.com/ansible/ansible/pull/36188)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- tower_* modules - fix credentials to work with v1 and v2 of Ansible Tower API
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- azure_rm modules - updated with internal changes to use API profiles and kwargs for future Azure Stack support and better stability between SDK updates. (https://github.com/ansible/ansible/pull/35538)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- azure_rm_image - Allow Azure images to be created with tags, bug was introduced in Ansible v2.5.0
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- azure_rm_networkinterface - fixed examples in module documentation and added fix to allow an IP configuration with no public IP (https://github.com/ansible/ansible/pull/36824)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- azure_rm_virtualmachine - removed docs note that says on marketplace images can be used, custom images were added in 2.5
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- fixed memory bloat on nested includes by preventing blocks from self-parenting (https://github.com/ansible/ansible/pull/36075)
|
||||
@ -1,5 +0,0 @@
|
||||
bugfixes:
|
||||
- Improve keyed groups for complex inventory
|
||||
- Made separator configurable
|
||||
- Fixed some exception types
|
||||
- Better error messages
|
||||
@ -1,2 +0,0 @@
|
||||
deprecated_features:
|
||||
- Apstra's ``aos_*`` modules are deprecated as they do not work with AOS 2.1 or higher. See new modules at `https://github.com/apstra <https://github.com/apstra>`_.
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- updated to ensure displayed messages under peristent connections are returned to the controller (https://github.com/ansible/ansible/pull/36064)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- backup options doc change to reflect backup directory location in case playbook is run from a role
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- docker_container, docker_image, docker_network modules - Update to work with Docker SDK 3.1
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- filters - Don't overwrite builtin jinja2 filters with tests (https://github.com/ansible/ansible/pull/37881)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- edgeos_command - add action plugin to backup config (https://github.com/ansible/ansible/pull/37619)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- edgeos_facts - fix error when there are no commit revisions (https://github.com/ansible/ansible/issues/37123)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- eos cliconf get_config() format type fix (https://github.com/ansible/ansible/pull/38682)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- eos_vlan - fixed eos_vlan not working when having more than 6 interfaces (https://github.com/ansible/ansible/pull/38347)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- eos_vrf and eos_eapi - fixed vrf parsing (https://github.com/ansible/ansible/pull/35791)
|
||||
@ -1,3 +0,0 @@
|
||||
---
|
||||
bugfixes:
|
||||
- Various grafana_* modules - Port away from the deprecated b64encodestring function to the b64encode function instead. (https://github.com/ansible/ansible/pull/38388)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- include_role - improved performance and recursion depth (https://github.com/ansible/ansible/pull/36470)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- include_role - Fix parameter templating (https://github.com/ansible/ansible/pull/36372)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- include_vars - Call DataLoader.load with the correct signature to prevent hang on error processing (https://github.com/ansible/ansible/pull/38194)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- interface_file - now accepts interfaces without address family or method (https://github.com/ansible/ansible/pull/34200)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- ios_interface - neighbors option now include CDP neighbors (https://github.com/ansible/ansible/pull/37667)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- ios_l2_interface - fix removal of trunk vlans (https://github.com/ansible/ansible/pull/37389)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- Add supported connection in junos module documentation (https://github.com/ansible/ansible/pull/38813)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- junos_netconf - Report error is wrong connection type is used for junos_netconf (https://github.com/ansible/ansible/pull/38527)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- lineinfile - fixed insertion if pattern already exists (https://github.com/ansible/ansible/pull/33393)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- lineinfile - fixed regexp used with insert(before|after) inserting duplicate lines (https://github.com/ansible/ansible/pull/36156)
|
||||
@ -1,11 +0,0 @@
|
||||
major_changes:
|
||||
- |
|
||||
Ansible Network improvements
|
||||
|
||||
* Created new connection plugins ``network_cli`` and ``netconf`` to replace ``connection=local``. ``connection=local`` will continue to work for a number of Ansible releases.
|
||||
* No more ``unable to open shell``. A clear and descriptive message will be displayed in normal ansible-playbook output without needing to enable debug mode
|
||||
* Loads of documentation, see `Ansible for Network Automation Documentation <http://docs.ansible.com/ansible/2.5/network/>`_.
|
||||
* Refactor common network shared code into package under ``module_utils/network/``
|
||||
* Filters: Add a filter to convert XML response from a network device to JSON object.
|
||||
* Loads of bug fixes.
|
||||
* Plus lots more.
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- Connection error messages may contain characters that jinja2 would interpret as a template. Wrap the error string so this doesn't happen (https://github.com/ansible/ansible/pull/37329)
|
||||
@ -1,22 +0,0 @@
|
||||
bugfixes:
|
||||
- _nxos_switchport - fix removal of trunk vlans (https://github.com/ansible/ansible/pull/37328)
|
||||
- nxos_l2_interface - fix removal of trunk vlans (https://github.com/ansible/ansible/pull/37336)
|
||||
- nxos_snapshot - fix documentation and add required parameter logic (https://github.com/ansible/ansible/pull/37232, https://github.com/ansible/ansible/pull/37248)
|
||||
- Improve integration test - Ensure each transport test runs only once (https://github.com/ansible/ansible/pull/37462)
|
||||
- nxos_user - Integration test (https://github.com/ansible/ansible/pull/37852)
|
||||
- nxos_bgp_af - Fix UnboundLocalError (https://github.com/ansible/ansible/pull/37610)
|
||||
- nxos_vrf - Fix nxos_vrf issues (https://github.com/ansible/ansible/pull/37092)
|
||||
- nxos_vrf_af - Fix nxos_vrf_af issues (https://github.com/ansible/ansible/pull/37211)
|
||||
- nxos_udld - Fix nxos_udld issues (https://github.com/ansible/ansible/pull/37418)
|
||||
- nxos_vlan - Fix nxos_vlan issues (https://github.com/ansible/ansible/pull/38008)
|
||||
- nxos_vlan - nxos_vlan purge (https://github.com/ansible/ansible/pull/38202)
|
||||
- nxos_aaa_server - Fix nxos_aaa_server (https://github.com/ansible/ansible/pull/38117)
|
||||
- nxos_aaa_server_host - Fix nxos_aaa_server_host (https://github.com/ansible/ansible/pull/38188)
|
||||
- nxos_acl - Fix nxos_acl (https://github.com/ansible/ansible/pull/38283)
|
||||
- nxos_static_route - Fix nxos_static_route (https://github.com/ansible/ansible/pull/37614)
|
||||
- nxos_acl_interface test - Fix nxos_acl_interface test (https://github.com/ansible/ansible/pull/38230)
|
||||
- nxos_igmp - Fix nxos_igmp (https://github.com/ansible/ansible/pull/38496)
|
||||
- nxos_hsrp - Fix nxos_hsrp (https://github.com/ansible/ansible/pull/38410)
|
||||
- nxos_igmp_snooping - Fix nxos_igmp_snooping (https://github.com/ansible/ansible/pull/38566)
|
||||
- nxos_ntp_auth - Fix nxos_ntp_auth issues (https://github.com/ansible/ansible/pull/38824)
|
||||
- nxos_ntp_options - Fix nxos_ntp_options issues (https://github.com/ansible/ansible/pull/38695)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- nxos_evpn_vni - fixed a number of issues (https://github.com/ansible/ansible/pull/35930)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- nxos_igmp_interface - fixed response handling for different nxos versions (https://github.com/ansible/ansible/pull/35959)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- nxos_interface_ospf - added various bugfixes (https://github.com/ansible/ansible/pull/35988)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- Fix onyx_linkagg module writing debugging information to a tempfile on the remote machine (https://github.com/ansible/ansible/pull/37308)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- Fix onyx_config action plugin when used on Python 3 https://github.com/ansible/ansible/pull/38343
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- openshift modules - updated to client version 0.4.0 (https://github.com/ansible/ansible/pull/35127)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- openssl_certificate - Handle dump() in check_mode https://github.com/ansible/ansible/pull/38386
|
||||
@ -1,3 +0,0 @@
|
||||
---
|
||||
bugfixes:
|
||||
- Fix traceback when creating or stopping ovirt vms (https://github.com/ansible/ansible/pull/37249)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- Add url to troubleshoot persistent socket path related issues https://github.com/ansible/ansible/pull/38542
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- setup.py - Ensure we install ansible-config and ansible-inventory with `pip install -e` (https://github.com/ansible/ansible/pull/37151)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- Fix for ansible_*_interpreter on Python3 when using non-newstyle modules. Those include old-style ansible modules and Ansible modules written in non-python scripting languages (https://github.com/ansible/ansible/pull/36541)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- Fix for consul_kv idempotence on Python3 https://github.com/ansible/ansible/issues/35893
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- Fix csvfile lookup plugin when used on Python3 https://github.com/ansible/ansible/pull/37625
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- ec2 - Fix ec2 user_data parameter to properly convert to base64 on python3 (https://github.com/ansible/ansible/pull/37628)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- Fix to send and receive bytes over a socket in the haproxy module which was causing tracebacks on Python3 https://github.com/ansible/ansible/pull/35176
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- jira module - Fix bytes/text handling for base64 encoding authentication tokens (https://github.com/ansible/ansible/pull/33862)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- Fix bytes/text handling in maven_artifact that was causing tracebacks on Python3
|
||||
@ -1,3 +0,0 @@
|
||||
---
|
||||
bugfixes:
|
||||
- ansible-pull - fixed a bug checking for changes when we've pulled from the git repository on python3 https://github.com/ansible/ansible/issues/36962
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- Fix bytes/text handling in vagrant dynamic inventory https://github.com/ansible/ansible/pull/37631
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- wait_for_connection - Fix python3 compatibility bug (https://github.com/ansible/ansible/pull/37646)
|
||||
@ -1,3 +0,0 @@
|
||||
---
|
||||
bugfixes:
|
||||
- znode - fixed a bug calling the zookeeper API under Python3 https://github.com/ansible/ansible/pull/36999
|
||||
@ -1,5 +0,0 @@
|
||||
bugfixes:
|
||||
- restore stderr ouput even if script module run is successful (https://github.com/ansible/ansible/pull/38177)
|
||||
|
||||
minor_features:
|
||||
- add option to script module to toggle stderr display on module success (https://github.com/ansible/ansible/pull/38177)
|
||||
@ -1,3 +0,0 @@
|
||||
---
|
||||
bugfixes:
|
||||
- Fix for unarchive when users use the --strip-components extra_opt to tar causing ansible to set permissions on the wrong directory. (https://github.com/ansible/ansible/pull/37048)
|
||||
@ -1,2 +0,0 @@
|
||||
release_summary: |
|
||||
| Release Date: 2018-03-22
|
||||
@ -1,529 +0,0 @@
|
||||
major_changes:
|
||||
- New simpler and more intuitive 'loop' keyword for task loops. The ``with_<lookup>`` loops will likely be deprecated in the near future and eventually removed.
|
||||
- |
|
||||
Added fact namespacing; from now on facts will be available under ``ansible_facts`` namespace (for example: ``ansible_facts.os_distribution``)
|
||||
without the ``ansible_`` prefix. They will continue to be added into the main namespace directly, but now with a configuration toggle to
|
||||
enable this. This is currently on by default, but in the future it will default to off.
|
||||
- Added a configuration file that a site administrator can use to specify modules to exclude from being used.
|
||||
minor_changes:
|
||||
- |
|
||||
Added a few new magic vars corresponding to configuration/command
|
||||
line options: ``ansible_diff_mode``, ``ansible_inventory_sources``,
|
||||
``ansible_limit``, ``ansible_run_tags`` , ``ansible_forks`` and
|
||||
``ansible_skip_tags``
|
||||
- Updated the bundled copy of the six library to 1.11.0
|
||||
- |
|
||||
Added support to ``become`` ``NT AUTHORITY\System``,
|
||||
``NT AUTHORITY\LocalService``, and ``NT AUTHORITY\NetworkService`` on Windows hosts
|
||||
- Fixed ``become`` to work with async on Windows hosts
|
||||
- |
|
||||
Improved ``become`` elevation process to work on standard
|
||||
Administrator users without disabling UAC on Windows hosts
|
||||
- |
|
||||
The jenkins\_plugin and yum\_repository plugins had their ``params``
|
||||
option removed because they circumvented Ansible's option processing.
|
||||
- The combine filter now accepts a list of dicts as well as dicts directly
|
||||
- |
|
||||
New CLI options for ansible-inventory, ansible-console and ansible to
|
||||
allow specifying a playbook\_dir to be used for relative search
|
||||
paths.
|
||||
- |
|
||||
`The `stat`` and ``win_stat`` modules have changed the default value of
|
||||
``get_md5`` to ``False`` which will result in the ``md5`` return
|
||||
value not being returned. This option will be removed altogether in
|
||||
Ansible 2.9. Use ``get_checksum: True`` with
|
||||
``checksum_algorithm: md5`` to return an md5 hash of the file under
|
||||
the ``checksum`` return value.
|
||||
- |
|
||||
The ``osx_say`` module was renamed into ``say``.
|
||||
- |
|
||||
Task debugger functionality was moved into ``StrategyBase``, and
|
||||
extended to allow explicit invocation from use of the ``debugger``
|
||||
keyword. The ``debug`` strategy is still functional, and is now just
|
||||
a trigger to enable this functionality.
|
||||
- |
|
||||
The documentation has undergone a major overhaul. Content has been moved into
|
||||
targeted guides; the table of contents has been cleaned up and streamlined;
|
||||
the CSS theme has been updated to a custom version of the most recent
|
||||
ReadTheDocs theme, and the underlying directory structure for the RST files
|
||||
has been reorganized.
|
||||
|
||||
- |
|
||||
The ANSIBLE\_REMOTE\_TMP environment variable has been added to
|
||||
supplement (and override) ANSIBLE\_REMOTE\_TEMP. This matches with
|
||||
the spelling of the config value. ANSIBLE\_REMOTE\_TEMP will be
|
||||
deprecated in the future.
|
||||
deprecated_features:
|
||||
- |
|
||||
Previously deprecated 'hostfile' config settings have been
|
||||
're-deprecated' because previously code did not warn about deprecated
|
||||
configuration settings.
|
||||
- |
|
||||
Using Ansible-provided Jinja tests as filters is deprecated and will
|
||||
be removed in Ansible 2.9.
|
||||
- |
|
||||
The ``stat`` and ``win_stat`` modules have deprecated ``get_md5`` and the ``md5``
|
||||
return values. These options will become undocumented in Ansible
|
||||
2.9 and removed in a later version.
|
||||
- The ``redis_kv`` lookup has been deprecated in favor of new ``redis`` lookup
|
||||
- |
|
||||
Passing arbitrary parameters that begin with ``HEADER_`` to the uri
|
||||
module, used for passing http headers, is deprecated. Use the
|
||||
``headers`` parameter with a dictionary of header names to value
|
||||
instead. This will be removed in Ansible 2.9
|
||||
- |
|
||||
Passing arbitrary parameters to the zfs module to set zfs properties
|
||||
is deprecated. Use the ``extra_zfs_properties`` parameter with a
|
||||
dictionary of property names to values instead. This will be removed
|
||||
in Ansible 2.9.
|
||||
- |
|
||||
Use of the AnsibleModule parameter ``check\_invalid\_arguments`` in custom modules is deprecated. In the future, all parameters will be
|
||||
checked to see whether they are listed in the arg spec and an error raised if they are not listed. This behaviour is the current and
|
||||
future default so most custom modules can simply remove ``check\_invalid\_arguments`` if they set it to the default value of True.
|
||||
The ``check\_invalid\_arguments`` parameter will be removed in Ansible 2.9.
|
||||
- The nxos\_ip\_interface module is deprecated in Ansible 2.5. Use nxos\_l3\_interface module instead.
|
||||
- The nxos\_portchannel module is deprecated in Ansible 2.5. Use nxos\_linkagg module instead.
|
||||
- The nxos\_switchport module is deprecated in Ansible 2.5. Use nxos\_l2\_interface module instead.
|
||||
- The ec2\_ami\_find has been deprecated; use ec2\_ami\_facts instead.
|
||||
- |
|
||||
panos\_security\_policy: Use panos\_security\_rule - the old module uses deprecated API calls
|
||||
- vsphere\_guest is deprecated in Ansible 2.5 and will be removed in Ansible-2.9. Use vmware\_guest module instead.
|
||||
removed_features:
|
||||
- accelerate.
|
||||
- |
|
||||
boundary\_meter: There was no deprecation period for this but the
|
||||
hosted service it relied on has gone away so the module has been
|
||||
removed. `#29387 <https://github.com/ansible/ansible/issues/29387>`__
|
||||
- |
|
||||
cl\_ : cl\_interface, cl\_interface\_policy, cl\_bridge,
|
||||
cl\_img\_install, cl\_ports, cl\_license, cl\_bond. Use ``nclu``
|
||||
instead
|
||||
- docker. Use docker\_container and docker\_image instead.
|
||||
- ec2\_vpc.
|
||||
- ec2\_ami\_search, use ec2\_ami\_facts instead.
|
||||
- nxos\_mtu. Use nxos\_system's ``system_mtu`` option instead. To specify an interface's MTU use nxos\_interface.
|
||||
- |
|
||||
panos\_nat\_policy: Use panos\_nat\_rule the old module uses deprecated API calls
|
||||
new_lookup_plugins:
|
||||
- |
|
||||
aws\_account\_attribute: Query AWS account attributes such as EC2-Classic availability
|
||||
- |
|
||||
aws\_service\_ip\_ranges: Query AWS IP ranges for services such as EC2/S3
|
||||
- |
|
||||
aws\_ssm: Query AWS ssm data
|
||||
- |
|
||||
config: Lookup Ansible settings
|
||||
- |
|
||||
conjur\_variable: Fetch credentials from CyberArk Conjur
|
||||
- |
|
||||
k8s: Query the K8s API
|
||||
- |
|
||||
nios: Query Infoblox NIOS objects
|
||||
- |
|
||||
openshift: Return info from Openshift installation
|
||||
- |
|
||||
redis: look up date from Redis DB, deprecates the redis\_kv one.
|
||||
new_callback_plugins:
|
||||
- 'null'
|
||||
- unixy
|
||||
- yaml
|
||||
new_connection_plugins:
|
||||
- kubectl
|
||||
- oc
|
||||
- netconf
|
||||
- |
|
||||
network\_cli
|
||||
- The existing network\_cli and netconf connection plugins can now be used directly with network modules. See
|
||||
`Network Best Practices for Ansible 2.5 <http://docs.ansible.com/ansible/devel/network_best_practices_2.5.html>`_ for more details.
|
||||
|
||||
new_filter_plugins:
|
||||
- parse\_xml
|
||||
|
||||
new_modules:
|
||||
- |
|
||||
Cloud (amazon)
|
||||
- aws\_acm\_facts
|
||||
- aws\_application\_scaling\_policy
|
||||
- aws\_az\_facts
|
||||
- aws\_batch\_compute\_environment
|
||||
- aws\_batch\_job\_definition
|
||||
- aws\_batch\_job\_queue
|
||||
- aws\_direct\_connect\_gateway
|
||||
- aws\_direct\_connect\_virtual\_interface
|
||||
- aws\_elasticbeanstalk\_app
|
||||
- aws\_kms\_facts
|
||||
- aws\_region\_facts
|
||||
- aws\_s3\_cors
|
||||
- aws\_ses\_identity
|
||||
- aws\_ssm\_parameter\_store
|
||||
- aws\_waf\_condition
|
||||
- aws\_waf\_rule
|
||||
- aws\_waf\_web\_acl
|
||||
- cloudfront\_distribution
|
||||
- cloudfront\_invalidation
|
||||
- cloudfront\_origin\_access\_identity
|
||||
- cloudwatchlogs\_log\_group
|
||||
- cloudwatchlogs\_log\_group\_facts
|
||||
- ec2\_ami\_facts
|
||||
- ec2\_asg\_lifecycle\_hook
|
||||
- ec2\_customer\_gateway\_facts
|
||||
- ec2\_instance
|
||||
- ec2\_placement\_group
|
||||
- ec2\_placement\_group\_facts
|
||||
- ec2\_vpc\_egress\_igw
|
||||
- ecs\_taskdefinition\_facts
|
||||
- elasticache\_facts
|
||||
- elb\_target
|
||||
- iam\_role\_facts
|
||||
- iam\_user
|
||||
- |
|
||||
Cloud (azure)
|
||||
- azure\_rm\_containerinstance
|
||||
- azure\_rm\_containerregistry
|
||||
- azure\_rm\_image
|
||||
- azure\_rm\_keyvault
|
||||
- azure\_rm\_keyvaultkey
|
||||
- azure\_rm\_keyvaultsecret
|
||||
- azure\_rm\_mysqldatabase
|
||||
- azure\_rm\_mysqlserve
|
||||
- azure\_rm\_postgresqldatabase
|
||||
- azure\_rm\_postgresqlserver
|
||||
- azure\_rm\_sqldatabase
|
||||
- azure\_rm\_sqlserver
|
||||
- azure\_rm\_sqlserver\_facts
|
||||
- |
|
||||
Cloud (cloudstack)
|
||||
- cs\_network\_offering
|
||||
- cs\_service\_offering
|
||||
- cs\_vpc\_offering
|
||||
- cs\_vpn\_connection
|
||||
- cs\_vpn\_customer\_gateway
|
||||
- |
|
||||
Cloud (digital\_ocean)
|
||||
- digital\_ocean\_certificate
|
||||
- digital\_ocean\_floating\_ip\_facts
|
||||
- digital\_ocean\_sshkey\_facts
|
||||
- |
|
||||
Cloud (google)
|
||||
- gcp\_dns\_managed\_zone
|
||||
- |
|
||||
Cloud (misc)
|
||||
- cloudscale\_floating\_ip
|
||||
- spotinst\_aws\_elastigroup
|
||||
- terraform
|
||||
- |
|
||||
Cloud (oneandone)
|
||||
- oneandone\_firewall\_policy
|
||||
- oneandone\_load\_balancer
|
||||
- oneandone\_monitoring\_policy
|
||||
- oneandone\_private\_network
|
||||
- oneandone\_public\_ip
|
||||
- oneandone\_server
|
||||
- |
|
||||
Cloud (openstack)
|
||||
- os\_keystone\_endpoint
|
||||
- os\_project\_access
|
||||
- |
|
||||
Cloud (ovirt)
|
||||
- ovirt\_api\_facts
|
||||
- ovirt\_disk\_facts
|
||||
- |
|
||||
Cloud (vmware)
|
||||
- vcenter\_folder
|
||||
- vmware\_cfg\_backup
|
||||
- vmware\_datastore\_facts
|
||||
- vmware\_drs\_rule\_facts
|
||||
- vmware\_guest\_file\_operation
|
||||
- vmware\_guest\_powerstate
|
||||
- vmware\_host\_acceptance
|
||||
- vmware\_host\_config\_facts
|
||||
- vmware\_host\_config\_manager
|
||||
- vmware\_host\_datastore
|
||||
- vmware\_host\_dns\_facts
|
||||
- vmware\_host\_facts
|
||||
- vmware\_host\_firewall\_facts
|
||||
- vmware\_host\_firewall\_manager
|
||||
- vmware\_host\_lockdown
|
||||
- vmware\_host\_ntp
|
||||
- vmware\_host\_package\_facts
|
||||
- vmware\_host\_service\_facts
|
||||
- vmware\_host\_service\_manager
|
||||
- vmware\_host\_vmnic\_facts
|
||||
- vmware\_local\_role\_manager
|
||||
- vmware\_vm\_vm\_drs\_rule
|
||||
- vmware\_vmkernel\_facts
|
||||
- |
|
||||
Cloud (vultr)
|
||||
- vr\_account\_facts
|
||||
- vr\_dns\_domain
|
||||
- vr\_dns\_record
|
||||
- vr\_firewall\_group
|
||||
- vr\_firewall\_rule
|
||||
- vr\_server
|
||||
- vr\_ssh\_key
|
||||
- vr\_startup\_script
|
||||
- vr\_user
|
||||
- |
|
||||
Clustering
|
||||
- etcd3
|
||||
- k8s
|
||||
- k8s\_raw
|
||||
- k8s\_scale
|
||||
- openshift
|
||||
- openshift\_raw
|
||||
- openshift\_scale
|
||||
|
||||
- |
|
||||
Crypto
|
||||
- openssl\_dhparam
|
||||
|
||||
- |
|
||||
Database
|
||||
- influxdb
|
||||
- influxdb\_query
|
||||
- influxdb\_user
|
||||
- influxdb\_write
|
||||
|
||||
- |
|
||||
Identity
|
||||
- ipa
|
||||
- ipa\_dnszone
|
||||
- ipa\_service
|
||||
- ipa\_subca
|
||||
- keycloak
|
||||
- keycloak\_client
|
||||
- keycloak\_clienttemplate
|
||||
|
||||
- |
|
||||
Monitoring
|
||||
- grafana\_dashboard
|
||||
- grafana\_datasource
|
||||
- grafana\_plugin
|
||||
- icinga2\_host
|
||||
- zabbix
|
||||
- zabbix\_proxy
|
||||
- zabbix\_template
|
||||
|
||||
- |
|
||||
Net Tools
|
||||
- ip\_netns
|
||||
- nios
|
||||
- nios\_dns\_view
|
||||
- nios\_host\_record
|
||||
- nios\_network
|
||||
- nios\_network\_view
|
||||
- nios\_zone
|
||||
|
||||
- |
|
||||
Network (aci)
|
||||
- aci\_aaa\_user
|
||||
- aci\_aaa\_user\_certificate
|
||||
- aci\_access\_port\_to\_interface\_policy\_leaf\_profile
|
||||
- aci\_aep\_to\_domain
|
||||
- aci\_domain
|
||||
- aci\_domain\_to\_encap\_pool
|
||||
- aci\_domain\_to\_vlan\_pool
|
||||
- aci\_encap\_pool
|
||||
- aci\_encap\_pool\_range
|
||||
- aci\_fabric\_node
|
||||
- aci\_firmware\_source
|
||||
- aci\_interface\_policy\_leaf\_policy\_group
|
||||
- aci\_interface\_policy\_leaf\_profile
|
||||
- aci\_interface\_selector\_to\_switch\_policy\_leaf\_profile
|
||||
- aci\_static\_binding\_to\_epg
|
||||
- aci\_switch\_leaf\_selector
|
||||
- aci\_switch\_policy\_leaf\_profile
|
||||
- aci\_switch\_policy\_vpc\_protection\_group
|
||||
- aci\_vlan\_pool
|
||||
- aci\_vlan\_pool\_encap\_block
|
||||
- |
|
||||
Network (avi)
|
||||
- avi\_api\_version
|
||||
- avi\_clusterclouddetails
|
||||
- avi\_customipamdnsprofile
|
||||
- avi\_errorpagebody
|
||||
- avi\_errorpageprofile
|
||||
- avi\_gslbservice\_patch\_member
|
||||
- avi\_wafpolicy
|
||||
- avi\_wafprofile
|
||||
- |
|
||||
Network (dimension data)
|
||||
- dimensiondata\_vlan
|
||||
- |
|
||||
Network (edgeos)
|
||||
- edgeos\_command
|
||||
- edgeos\_config
|
||||
- edgeos\_facts
|
||||
- |
|
||||
Network (enos)
|
||||
- enos\_command
|
||||
- enos\_config
|
||||
- enos\_facts
|
||||
- |
|
||||
Network (eos)
|
||||
- eos\_interface
|
||||
- eos\_l2\_interface
|
||||
- eos\_l3\_interface
|
||||
- eos\_linkagg
|
||||
- eos\_lldp
|
||||
- eos\_static\_route
|
||||
- |
|
||||
Network (f5)
|
||||
- bigip\_asm\_policy
|
||||
- bigip\_device\_connectivity
|
||||
- bigip\_device\_group
|
||||
- bigip\_device\_group\_member
|
||||
- bigip\_device\_httpd
|
||||
- bigip\_device\_trust
|
||||
- bigip\_gtm\_server
|
||||
- bigip\_iapplx\_package
|
||||
- bigip\_monitor\_http
|
||||
- bigip\_monitor\_https
|
||||
- bigip\_monitor\_snmp\_dca
|
||||
- bigip\_monitor\_udp
|
||||
- bigip\_partition
|
||||
- bigip\_policy
|
||||
- bigip\_policy\_rule
|
||||
- bigip\_profile\_client\_ssl
|
||||
- bigip\_remote\_syslog
|
||||
- bigip\_security\_address\_list
|
||||
- bigip\_security\_port\_list
|
||||
- bigip\_software\_update
|
||||
- bigip\_ssl\_key
|
||||
- bigip\_static\_route
|
||||
- bigip\_traffic\_group
|
||||
- bigip\_ucs\_fetch
|
||||
- bigip\_vcmp\_guest
|
||||
- bigip\_wait
|
||||
- bigiq\_regkey\_license
|
||||
- bigiq\_regkey\_pool
|
||||
- |
|
||||
Network (fortimanager)
|
||||
- fmgr\_script
|
||||
- |
|
||||
Network (ios)
|
||||
- ios\_l2\_interface
|
||||
- ios\_l3\_interface
|
||||
- ios\_linkagg
|
||||
- ios\_lldp
|
||||
- ios\_vlan
|
||||
- |
|
||||
Network (iosxr)
|
||||
- iosxr\_netconf
|
||||
- |
|
||||
Network (ironware)
|
||||
- ironware\_command
|
||||
- ironware\_config
|
||||
- ironware\_facts
|
||||
- |
|
||||
Network (junos)
|
||||
- junos\_l2\_interface
|
||||
- junos\_scp
|
||||
- |
|
||||
Network (netact)
|
||||
- netact\_cm\_command
|
||||
- |
|
||||
Network (netscaler)
|
||||
- netscaler\_nitro\_request
|
||||
- |
|
||||
Network (nso)
|
||||
- nso\_action
|
||||
- nso\_config
|
||||
- nso\_query
|
||||
- nso\_show
|
||||
- nso\_verify
|
||||
- |
|
||||
Network (nxos)
|
||||
- nxos\_l2\_interface
|
||||
- nxos\_l3\_interface
|
||||
- nxos\_linkagg
|
||||
- nxos\_lldp
|
||||
- |
|
||||
Network (onyx)
|
||||
- onyx\_bgp
|
||||
- onyx\_command
|
||||
- onyx\_config
|
||||
- onyx\_facts
|
||||
- onyx\_interface
|
||||
- onyx\_l2\_interface
|
||||
- onyx\_l3\_interface
|
||||
- onyx\_linkagg
|
||||
- onyx\_lldp
|
||||
- onyx\_lldp\_interface
|
||||
- onyx\_magp
|
||||
- onyx\_mlag\_ipl
|
||||
- onyx\_mlag\_vip
|
||||
- onyx\_ospf
|
||||
- onyx\_pfc\_interface
|
||||
- onyx\_protocol
|
||||
- onyx\_vlan
|
||||
- |
|
||||
Network (panos)
|
||||
- panos\_dag\_tags
|
||||
- panos\_match\_rule
|
||||
- panos\_op
|
||||
- panos\_query\_rules
|
||||
- |
|
||||
Network (radware)
|
||||
- vdirect\_commit
|
||||
- vdirect\_runnable
|
||||
- |
|
||||
Network (vyos)
|
||||
- vyos\_vlan
|
||||
- |
|
||||
Notification
|
||||
- logentries\_msg
|
||||
- say
|
||||
- snow\_record
|
||||
|
||||
- |
|
||||
Packaging
|
||||
- os
|
||||
- package\_facts
|
||||
- rhsm\_repository
|
||||
|
||||
- |
|
||||
Remote Management (manageiq)
|
||||
- manageiq\_alert\_profiles
|
||||
- manageiq\_alerts
|
||||
- manageiq\_policies
|
||||
- manageiq\_tags
|
||||
- |
|
||||
Remote Management (oneview)
|
||||
- oneview\_datacenter\_facts
|
||||
- oneview\_enclosure\_facts
|
||||
- oneview\_logical\_interconnect\_group
|
||||
- oneview\_logical\_interconnect\_group\_facts
|
||||
- oneview\_san\_manager\_facts
|
||||
- |
|
||||
Remote Management (ucs)
|
||||
- ucs\_ip\_pool
|
||||
- ucs\_lan\_connectivity
|
||||
- ucs\_mac\_pool
|
||||
- ucs\_san\_connectivity
|
||||
- ucs\_vhba\_template
|
||||
- ucs\_vlans
|
||||
- ucs\_vnic\_template
|
||||
- ucs\_vsans
|
||||
- ucs\_wwn\_pool
|
||||
|
||||
- |
|
||||
System
|
||||
- mksysb
|
||||
- nosh
|
||||
- service\_facts
|
||||
- vdo
|
||||
|
||||
- |
|
||||
Web Infrastructure
|
||||
- jenkins\_job\_facts
|
||||
|
||||
- |
|
||||
Windows
|
||||
- win\_audit\_policy\_system
|
||||
- win\_audit\_rule
|
||||
- win\_certificate\_store
|
||||
- win\_disk\_facts
|
||||
- win\_product\_facts
|
||||
- win\_scheduled\_task\_stat
|
||||
- win\_whoami
|
||||
@ -1,6 +0,0 @@
|
||||
bugfixes:
|
||||
- fixed templating issues in loop_control (https://github.com/ansible/ansible/pull/36124)
|
||||
- ansible-config - fixed traceback when no config file is present (https://github.com/ansible/ansible/issues/35965)
|
||||
- added various fixes to Linux virtualization facts (https://github.com/ansible/ansible/issues/36038)
|
||||
- fixed failure when remote_tmp is a subdir of a system tempdir (https://github.com/ansible/ansible/pull/36143)
|
||||
- ios_ping - updated to allow for count > 70 (https://github.com/ansible/ansible/pull/36142)
|
||||
@ -1,25 +0,0 @@
|
||||
minor_changes:
|
||||
- aci_* modules - added signature based authentication
|
||||
- aci_* modules - included dedicated ACI documentation
|
||||
- aci_* modules - improved ACI return values
|
||||
bugfixes:
|
||||
- fix for ansible-vault always requesting passwords (https://github.com/ansible/ansible/issues/33027)
|
||||
- ios CLI - fixed prompt detection (https://github.com/ansible/ansible/issues/35662)
|
||||
- nxos_user - fixed structured output issue (https://github.com/ansible/ansible/pull/36193)
|
||||
- nxos_* modules - various fixes (https://github.com/ansible/ansible/pull/36340)
|
||||
- nxos_* modules - various fixes (https://github.com/ansible/ansible/pull/36374)
|
||||
- nxos_install_os - kickstart_image_file is no longer required (https://github.com/ansible/ansible/pull/36319)
|
||||
- script/patch - fixed tempfile ownership issues (https://github.com/ansible/ansible/issues/36398)
|
||||
- nxos_bgp_neighbor - fixed various module arg issues (https://github.com/ansible/ansible/pull/36318)
|
||||
- vyos_l3_interface - fixed issues with multiple addresses on an interface (https://github.com/ansible/ansible/pull/36377)
|
||||
- nxos_banner - fixed issues with unstructured output (https://github.com/ansible/ansible/pull/36411)
|
||||
- nxos_bgp_neighbor_af - fixed various issues (https://github.com/ansible/ansible/pull/36472)
|
||||
- vyos_config - fixed IndexError in sanitize_config (https://github.com/ansible/ansible/pull/36375)
|
||||
- cs_user - fixed user_api_secret return for ACS 4.10+ (https://github.com/ansible/ansible/pull/36447)
|
||||
- nxos_* modules - various fixes (https://github.com/ansible/ansible/pull/36514)
|
||||
- fix cases where INVENTORY_UNPARSED_IS_FAILED didn't fail (https://github.com/ansible/ansible/issues/36034)
|
||||
- aws_ses_identity - fixed failure on missing identity info (https://github.com/ansible/ansible/issues/36065)
|
||||
- ec2_vpc_net_facts - fixed traceback for regions other than us-east-1 (https://github.com/ansible/ansible/pull/35302)
|
||||
- aws_waf_* - fixed traceback on WAFStaleDataException (https://github.com/ansible/ansible/pull/36405)
|
||||
- ec2_group - fixed check_mode when using tags (https://github.com/ansible/ansible/pull/36503)
|
||||
- loop item labels will now update if templated (https://github.com/ansible/ansible/pull/36430)
|
||||
@ -1,17 +0,0 @@
|
||||
bugfixes:
|
||||
- (network)_vlan / (network)_vrf - decouple config/state check (https://github.com/ansible/ansible/pull/36704)
|
||||
- nxos_vlan / nxos_linkagg - fixed various issues (https://github.com/ansible/ansible/pull/36711)
|
||||
- nios - allow ib_spec attrs to be filtered in update (https://github.com/ansible/ansible/pull/36673)
|
||||
- nso_config / nso_verify - fixed various issues (https://github.com/ansible/ansible/pull/36583)
|
||||
- cs_sshkeypair - fixed ssh key rename (https://github.com/ansible/ansible/pull/36726)
|
||||
- cliconf - fixed get_config traceback (https://github.com/ansible/ansible/pull/36682)
|
||||
- impi_boot - added floppy option (https://github.com/ansible/ansible/pull/36174)
|
||||
- nso_config - fixed ordering issues (https://github.com/ansible/ansible/pull/36774)
|
||||
- nxos_facts - fixed ipv6 parsing issues on new nxos releases (https://github.com/ansible/ansible/pull/36796)
|
||||
- nso_config - fixed dependency sort cycle issue (https://github.com/ansible/ansible/pull/36828)
|
||||
- ovirt_* - various fixes (https://github.com/ansible/ansible/pull/36828)
|
||||
- aws_ssm_parameter_store - added no_log to value arg (https://github.com/ansible/ansible/pull/36828)
|
||||
- openshift_raw - fixed creation of RoleBinding resources (https://github.com/ansible/ansible/pull/36887)
|
||||
- nxos_interface - fixed multiple issues (https://github.com/ansible/ansible/pull/36827)
|
||||
- junos_command - fixed Python3 issues (https://github.com/ansible/ansible/pull/36782)
|
||||
- ios_static_route - fixed idempotence issue (https://github.com/ansible/ansible/pull/35912)
|
||||
@ -1,3 +0,0 @@
|
||||
bugfixes:
|
||||
- terraform - fixed typo in module result stdout value (https://github.com/ansible/ansible/pull/37253)
|
||||
- setup - ensure that `ansible_lo` is properly nested under ansible_facts (https://github.com/ansible/ansible/pull/37360)
|
||||
@ -1,20 +0,0 @@
|
||||
bugfixes:
|
||||
- ec2_asg - no longer terminates an instance before creating a replacement (https://github.com/ansible/ansible/pull/36679)
|
||||
- ec2_group - security groups in default VPCs now have a default egress rule (https://github.com/ansible/ansible/pull/38018)
|
||||
- inventory correctly removes hosts from 'ungrouped' group (https://github.com/ansible/ansible/pull/37617)
|
||||
- letsencrypt - fixed domain matching authorization (https://github.com/ansible/ansible/pull/37558)
|
||||
- letsencrypt - improved elliptic curve account key parsing (https://github.com/ansible/ansible/pull/37275)
|
||||
- facts are no longer processed more than once for each action (https://github.com/ansible/ansible/issues/37535)
|
||||
- cs_vpc_offering - only return VPC offferings matching name arg (https://github.com/ansible/ansible/pull/37783)
|
||||
- cs_configuration - filter names inside the module instead of relying on API (https://github.com/ansible/ansible/pull/37910)
|
||||
- various fixes to networking module connection subsystem (https://github.com/ansible/ansible/pull/37529)
|
||||
- ios_* - fixed netconf issues (https://github.com/ansible/ansible/pull/38155)
|
||||
- ovirt_* - various bugfixes (https://github.com/ansible/ansible/pull/38341)
|
||||
- ansible-vault no longer requires '--encrypt-vault-id' with edit (https://github.com/ansible/ansible/pull/35923)
|
||||
- k8s lookup plugin now uses same auth method as other k8s modules (https://github.com/ansible/ansible/pull/37533)
|
||||
- ansible-inventory now properly displays group_var graph (https://github.com/ansible/ansible/pull/38744)
|
||||
- setup - FreeBSD fact gathering no longer fails on missing dmesg, sysctl, etc (https://github.com/ansible/ansible/pull/37194)
|
||||
- inventory scripts now read passwords without byte interpolation (https://github.com/ansible/ansible/pull/35582)
|
||||
- user - fixed password expiration support in FreeBSD
|
||||
- meta - inventory_refresh now works properly on YAML inventory plugins (https://github.com/ansible/ansible/pull/38242)
|
||||
- foreman callback plugin - fixed API options (https://github.com/ansible/ansible/pull/38138)
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user