openstack-ansible/tests/roles/bootstrap-host/tasks/prepare_git_useragent.yml
Jonathan Rosser 672b720b59 Add custom user-agent for git clones from opendev.org
There has been one confirmed denial-of-service against the opendev
git servers due to an openstack-ansible deployment failing to
correctly use cached wheels from the repo server and instead clone
and build the source code for each openstack service on each target
host.

Whilst we wait for further information to understand the root cause
of that DOS, it is possible to adjust the user-agent that git uses
on a per-domain basis.

This patch sets the user-agent to a string which identifies that
OSA is responsible for git operations, which version of OSA is
in use, and if the host is a deploy host or an AIO build.

Change-Id: I8157c744a58a8ade56776e8cb29956a8abed081c
2021-04-19 10:55:21 +00:00

29 lines
957 B
YAML

---
# Copyright 2021, BBC R&D
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
- name: Find the git version
command:
cmd: "git --version"
register: _git_version
changed_when: false
tags:
- skip_ansible_lint
- name: Set the git user agent for the AIO
git_config:
scope: system
name: http.https://opendev.org/.userAgent
value: "{{ 'git/' ~ _git_version.stdout.split(' ')[2] ~ ' (osa/' ~ lookup('env', 'OSA_VERSION') ~ '/aio)' }}"