Restrict Ansible fact gathering to base subset
In Ansible 2.x the fact gathering process includes facts gathered by facter [1] and ohai [2]if they are available. While this may be useful in some environment, OpenStack-Ansible does not make use of any of these facts in any of its playbooks/roles and the facts gathered are therefore just an extra overhead. This patch removes the facter and aohai gathering subsets. On a test AIO this reduced the execution time for fact gathering to the host and all running containers from 1m5s to 6s. [1] https://docs.puppet.com/facter/ [2] https://docs.chef.io/ohai.html This patch also re-implements the selective fact gathering in run-playbooks that was implemented in I348a4b7dfe70d56a64899246daf65ea834a75d2a but unintentionally removed in 9be0662c4f79783d4db8736b89bbd38063635067 Change-Id: I9bfee53571f3dc3a0b0a0950242008e815722180
This commit is contained in:
parent
1a797e42ec
commit
8d2caac546
@ -12,6 +12,7 @@ library = /etc/ansible/roles/plugins/library
|
||||
|
||||
# Fact caching
|
||||
gathering = smart
|
||||
gather_subset = !facter,!ohai
|
||||
fact_caching = jsonfile
|
||||
fact_caching_connection = /etc/openstack_deploy/ansible_facts
|
||||
fact_caching_timeout = 86400
|
||||
|
@ -25,7 +25,7 @@
|
||||
# repo_all[0] is built last to ensure it has all build artifacts for final indexing
|
||||
- name: Build new repo packages for a given release
|
||||
hosts: repo_all[1:],repo_all[0]
|
||||
gather_facts: true
|
||||
gather_facts: "{{ gather_facts | default(True) }}"
|
||||
user: root
|
||||
serial: 1
|
||||
pre_tasks:
|
||||
|
@ -45,7 +45,19 @@ If you ever have any questions please join the community conversation on IRC at
|
||||
}
|
||||
|
||||
function playbook_run {
|
||||
|
||||
# First we gather facts about the hosts to populate the fact cache.
|
||||
# We can't gather the facts for all hosts yet because the containers
|
||||
# aren't built yet.
|
||||
ansible -m setup -a "gather_subset=!facter,!ohai" hosts
|
||||
|
||||
for root_include in $(awk -F'include:' '{print $2}' setup-everything.yml); do
|
||||
# Once setup-hosts is complete, we should gather facts for everything
|
||||
# (now including containers) so that the fact cache is complete for the
|
||||
# remainder of the run.
|
||||
if [[ "${root_include}" == "setup-infrastructure.yml" ]]; then
|
||||
ansible -m setup -a "gather_subset=!facter,!ohai" all
|
||||
fi
|
||||
for include in $(awk -F'include:' '{print $2}' "${root_include}"); do
|
||||
echo "[Executing \"${include}\" playbook]"
|
||||
if [[ "${DEPLOY_AIO}" = true ]] && [[ "${include}" == "security-hardening.yml" ]]; then
|
||||
|
Loading…
x
Reference in New Issue
Block a user