mirror of
https://pagure.io/fedora-infra/ansible.git
synced 2026-04-30 21:41:53 +08:00
This will unify all the handlers to use first uppercase letter for ansible-lint to stop complaining. I went through all `notify:` occurrences and fixed them by running ``` set TEXT "text_to_replace"; set REPLACEMENT "replacement_text"; git grep -rlz "$TEXT" . | xargs -0 sed -i "s/$TEXT/$REPLACEMENT/g" ``` Then I went through all the changes and removed the ones that wasn't expected to be changed. Fixes https://pagure.io/fedora-infrastructure/issue/12391 Signed-off-by: Michal Konecny <mkonecny@redhat.com>
193 lines
7.7 KiB
YAML
193 lines
7.7 KiB
YAML
# Required vars
|
|
# - checkcompose_amqp_queue
|
|
## string - Message queue name for the consumer. To use the
|
|
## fedora-messaging scheduler with public authentication
|
|
## on the Fedora production AMQP broker (which is what
|
|
## you'd typically want), you only need to set this.
|
|
## This should be a unique and private string; the
|
|
## official recommendation is to use a random UUID
|
|
## generated by uuidgen.
|
|
#
|
|
# Required vars with defaults
|
|
# - checkcompose_prod
|
|
## bool - whether this is the production instance. **SHOULD ONLY
|
|
## EVER BE TRUE ON ONE SYSTEM IN THE WORLD**
|
|
## default - False
|
|
# - checkcompose_amqp_passive
|
|
## bool - If true, passive_declares will be set true in all the
|
|
## fedora-messaging consumer configuration files. This
|
|
## is needed for private authentication on the Fedora
|
|
## brokers.
|
|
## default - False
|
|
# - checkcompose_amqp_url
|
|
## string - AMQP broker URL for fedora-messaging report sender.
|
|
## The role default for this is the Fedora production
|
|
## broker with the shared 'fedora' username.
|
|
# - checkcompose_amqp_cacert
|
|
## string - CA certificate file to use for authenticating with
|
|
## AMQP broker for fedora-messaging report sender.
|
|
## The role default for this is the CA cert file for the
|
|
## Fedora production broker.
|
|
# - checkcompose_amqp_cert
|
|
## string - Certificate file to use for authenticating with AMQP
|
|
## broker for fedora-messaging report sender. The role
|
|
## default for this is the certificate file for the
|
|
## public 'fedora' account on the Fedora production
|
|
## broker.
|
|
# - checkcompose_amqp_key
|
|
## string - Private key file to use for authenticating with AMQP
|
|
## broker for fedora-messaging report sender. The role
|
|
## default for this is the key file for the public
|
|
## 'fedora' account on the Fedora production broker.
|
|
# - checkcompose_amqp_routing_keys
|
|
## list - List of routing key names for the fedora-messaging
|
|
## scheduler to subscribe to. The role default for this
|
|
## is the appropriate keys for the Fedora production
|
|
## broker.
|
|
# - checkcompose_amqp_mailfrom
|
|
## string - From email address for error report emails. Defaults
|
|
## to "root@{{ external_hostname }}". Only relevant if
|
|
## checkcompose_amqp_mailto is set.
|
|
# - checkcompose_amqp_smtp
|
|
## string - Hostname of SMTP server to use for sending consumer error
|
|
## emails. Defaults to 'localhost'. Only relevant if
|
|
## checkcompose_amqp_mailto is set.
|
|
#
|
|
# Optional vars
|
|
# - checkcompose_server
|
|
## string - hostname of openQA server to connect to (if not set, openQA
|
|
## client configuration will determine this, default will be
|
|
## localhost)
|
|
# - checkcompose_url
|
|
## string - base URL for openQA result links (if not set, will be
|
|
## the URL the client actually wound up connecting to)
|
|
# - checkcompose_wait
|
|
## string - (digits) time in minutes to wait for openQA tests to complete
|
|
## before sending the report (defaults to 480)
|
|
# - checkcompose_emailfrom
|
|
## string - Email address to send reports from (if not set, no reports
|
|
## sent)
|
|
# - checkcompose_emailto
|
|
## string - Email address to send all reports to. Split multiple
|
|
## addresses with spaces
|
|
# - checkcompose_subvariant_emails
|
|
## dict - Per-subvariant recipients foe check-compose emails. Should
|
|
## be a dict of dicts like this:
|
|
## {
|
|
## 'Workstation': {
|
|
## 'all': ['foo@workstation.com', 'bar@workstation.com'],
|
|
## 'error': ['error@workstation.com'],
|
|
## },
|
|
## 'Server': {
|
|
## 'all': ['foo@server.com'],
|
|
## 'error': ['error@server.com'],
|
|
## },
|
|
## }
|
|
## Split multiple addresses with spaces
|
|
# - checkcompose_smtp
|
|
## string - SMTP server to use for sending the report
|
|
# - checkcompose_json
|
|
## string - File to append JSON-formatted report summary to
|
|
# - checkcompose_loglevel
|
|
## string - log level
|
|
# - checkcompose_amqp_mailto
|
|
## list - List of email addresses to email errors to. If set,
|
|
## the email log handler will be configured.
|
|
#
|
|
# NOTE: this is missing /etc/openqa/client.conf configuration, for now;
|
|
# we're assuming it'll be deployed on the openqa server boxes and hence
|
|
# client.conf will be in place (and localhost default would be correct
|
|
# anyhow). We also get lazy and assume fedora_openqa will be installed
|
|
# by openqa/dispatcher role; ideally we should factor this out into a
|
|
# shared task or something.
|
|
|
|
# - name: Install required packages (testing)
|
|
# dnf: name={{ item }} state=present enablerepo="updates-testing"
|
|
# with_items:
|
|
# - python3-fedfind
|
|
# tags:
|
|
# - packages
|
|
|
|
---
|
|
- name: Install required packages
|
|
ansible.builtin.package:
|
|
name: ['fedora-messaging', 'python3-fedfind', 'python3-openqa_client', 'python3-pip',
|
|
'python3-pip']
|
|
state: present
|
|
tags:
|
|
- packages
|
|
|
|
- name: Check out check-compose
|
|
git:
|
|
repo: https://pagure.io/fedora-qa/check-compose.git # noqa 401
|
|
dest: /root/check-compose
|
|
register: gitcc
|
|
|
|
- name: Check if check-compose is installed for current Python
|
|
ansible.builtin.command: "pip show check_compose"
|
|
register: instcc
|
|
changed_when: "1 != 1"
|
|
failed_when: "1 != 1"
|
|
check_mode: no
|
|
|
|
- name: Install check-compose
|
|
ansible.builtin.command: "python3 -m pip install --no-deps /root/check-compose"
|
|
when: "gitcc is changed or instcc.rc != 0"
|
|
notify:
|
|
- Restart check-compose
|
|
|
|
- name: Create /etc/pki/fedora-messaging
|
|
ansible.builtin.file:
|
|
dest: /etc/pki/fedora-messaging
|
|
mode: "0775"
|
|
owner: root
|
|
group: root
|
|
state: directory
|
|
when: "deployment_type is defined"
|
|
tags:
|
|
- config
|
|
|
|
# as noted elsewhere, we are reusing the openqa user and creds for
|
|
# convenience while the roles are all run on the same system, and
|
|
# stg uses the prod account and credentials to listen on prod
|
|
- name: Deploy the Fedora infra fedora-messaging cert
|
|
ansible.builtin.copy:
|
|
src: "{{ private }}/files/rabbitmq/{{ checkcompose_env }}/pki/issued/{{ openqa_amqp_this_username }}.crt"
|
|
dest: "/etc/pki/fedora-messaging/{{ openqa_amqp_this_username }}-cert.pem"
|
|
mode: "0644"
|
|
owner: root
|
|
group: root
|
|
when: "deployment_type is defined"
|
|
tags:
|
|
- config
|
|
|
|
# This is kinda icky, as there's no intrinsic reason the group geekotest
|
|
# should exist so far as this role is concerned. But as we run this role
|
|
# on the same box as openQA, in fact we need to keep the ownership in
|
|
# line. This needs making cleaner somehow.
|
|
- name: Deploy the Fedora infra fedora-messaging key
|
|
ansible.builtin.copy:
|
|
src: "{{ private }}/files/rabbitmq/{{ checkcompose_env }}/pki/private/{{ openqa_amqp_this_username }}.key"
|
|
dest: "/etc/pki/fedora-messaging/{{ openqa_amqp_this_username }}-key.pem"
|
|
mode: "0640"
|
|
owner: root
|
|
group: geekotest
|
|
when: "deployment_type is defined"
|
|
tags:
|
|
- config
|
|
|
|
- name: Configure fedora-messaging check-compose consumer
|
|
ansible.builtin.template: src=check-compose.toml.j2 dest=/etc/fedora-messaging/check-compose.toml owner=root group=root mode=0640
|
|
notify:
|
|
- Restart check-compose
|
|
tags:
|
|
- config
|
|
|
|
- name: Install config file
|
|
ansible.builtin.template: src=check-compose.conf.j2 dest=/etc/check-compose.conf mode=0644
|
|
tags:
|
|
- config
|
|
|
|
- name: Enable and start fedora-messaging check-compose consumer
|
|
service: name=fm-consumer@check-compose enabled=yes state=started
|