abrt: Update faf playbook from upstream

Signed-off-by: Martin Kutlak <mkutlak@redhat.com>
This commit is contained in:
Martin Kutlak 2019-07-04 15:43:39 +02:00 committed by Miroslav Suchý
parent f9c7357519
commit 4b0be54c6b
16 changed files with 339 additions and 150 deletions

View file

@ -1,22 +1,15 @@
---
# SMTP server to use
smtp_server: localhost
smtp_port: 25
# domain of web service as seen from internet
domain: example.org
###########################
# features configuration #
###########################
# default port for memcached
memcached_port: 11211
# variables used to automatically create a connectstring
# connectstring is used for faf web & storage in format:
# postgresql://user:password@host:port/database
faf_db_user:
faf_db_password:
faf_db_host:
faf_db_port:
faf_db_name: faf
faf_with_bugtrackers: true
faf_with_celery: true
faf_with_fedmsg: false
faf_with_solutionfinders: true
faf_with_symboltransfer: false
faf_with_web: true
# dangerous, delete and re-create PostgreSQL database
# (will wipe Postgre's data dir and re-create from scratch)
@ -34,26 +27,63 @@ faf_migrate_db: true
# set up cron jobs for faf
faf_cron_jobs: true
# faf reachable on httpd root (http://hostname/)
# if false it's (http://hostname/faf/)
faf_web_on_root: true
###########################
# faf configuration #
###########################
# [MAIN]
faf_plugins_dir: /etc/faf/plugins/
faf_templates_dir: /etc/faf/templates/
faf_autoenableplugins: False
# [STORAGE]
# variables used to automatically create a connectstring
# connectstring is used for faf web & storage in format:
# postgresql://user:password@host:port/database
faf_db_user:
faf_db_password:
faf_db_host:
faf_db_port:
faf_db_name: faf
# [MAIL]
faf_admin_mail: root@localhost
# SMTP server to use
smtp_server: localhost
smtp_port: 25
smtp_username:
smtp_password:
faf_from: no-reply-retrace@fedoraproject.org
# [uREPORT]
faf_spool_dir: /var/spool/faf
faf_create_components: False
###########################
# features configuration #
###########################
faf_with_bugtrackers: true
faf_with_celery: true
faf_with_fedmsg: false
faf_with_solutionfinders: true
faf_with_symboltransfer: false
faf_with_web: true
# Allow uReports without affected package - meaning that crashing code was
# not packaged
faf_allow_unpackaged: False
###########################
# faf-webui configuration #
###########################
# [HUB]
# enable debugging
faf_web_debug: false
# set to true if faf's running behind proxy like varnish
faf_web_proxy_setup: false
# important for production deployments
faf_web_secret_key: not_a_secret
# domain of web service as seen from internet
domain: example.org
# faf_server_name is the URL without protocols and trailing slash
# the URL can be also with /path part (e.g. example-faf.org/faf)
faf_server_name: "example-faf.org"
@ -61,16 +91,16 @@ faf_server_name: "example-faf.org"
faf_web_brand_title: "FAF"
faf_web_brand_subtitle: "Fedora Analysis Framework"
faf_web_fedmenu_url:
# https://apps.fedoraproject.org/fedmenu
faf_web_fedmenu_data_url:
# https://apps.fedoraproject.org/js/data.js
# perms
faf_web_everyone_is_admin: false
faf_web_everyone_is_maintainer: false
# enable debugging
faf_web_debug: false
# set to true if faf's running behind proxy like varnish
faf_web_proxy_setup: false
# [OPENID]
# enable OpenID
faf_web_openid: true
@ -80,21 +110,13 @@ faf_web_openid: true
faf_web_openid_privileged_teams:
# provenpackager,proventesters
faf_web_fedmenu_url:
# https://apps.fedoraproject.org/fedmenu
faf_web_fedmenu_data_url:
# https://apps.fedoraproject.org/js/data.js
# [DUMPDIR]
# [CACHE]
# cache type either: memcached/simple/none
faf_web_cache_type: memcached
# faf reachable on httpd root (http://hostname/)
# if false it's (http://hostname/faf/)
faf_web_on_root: true
# important for production deployments
faf_web_secret_key: not_a_secret
memcached_port: 11211
# number of mails that can be sent per the time frame
faf_web_throttle_rate: 1
@ -103,6 +125,19 @@ faf_web_throttle_timeframe: 30
# start the throttling after this number of mails is sent
faf_web_throttle_burst: 1
##############################
# fedora-messaging config #
##############################
faf_fedmsg_server:
# The topic_prefix configuration value will add a prefix to the topics of every sent message.
# This is used for migrating from fedmsg, and should not be used afterwards.
faf_fedmsg_topic_prefix:
# [TLS]
faf_fedmsg_ca_cert:
faf_fedmsg_keyfile:
faf_fedmsg_certfile:
##############################
# functionality checking #
##############################
@ -110,6 +145,13 @@ faf_web_throttle_burst: 1
faf_check: false
faf_check_web: false
##############################
# faf cron configuration #
##############################
faf_opsys_list:
- fedora
##############################
# faf packages configuration #
##############################
@ -140,6 +182,9 @@ faf_action_packages:
- faf-action-assign-release-to-builds
- faf-action-attach-centos-bugs
- faf-action-c2p
- faf-action-check-repo
- faf-action-cleanup-packages
- faf-action-cleanup-unassigned
- faf-action-cleanup-task-results
- faf-action-create-problems
- faf-action-delete-invalid-ureports
@ -147,6 +192,7 @@ faf_action_packages:
- faf-action-external-faf-clone-bz
- faf-action-find-components
- faf-action-find-crash-function
- faf-action-find-report-solution
- faf-action-mark-probably-fixed
- faf-action-pull-associates
- faf-action-pull-components
@ -155,6 +201,7 @@ faf_action_packages:
- faf-action-repo
- faf-action-retrace
- faf-action-retrace-remote
- faf-action-sar
- faf-action-save-reports
- faf-action-shell
- faf-action-stats
@ -189,3 +236,10 @@ faf_web_celery_packages:
faf_web_symboltransfer_packages:
- faf-blueprint-symbol-transfer
###############
# EOLed Opsys #
###############
eol_opsys:
- { opsys: "", release: "" }

View file

@ -0,0 +1,10 @@
[group_abrt-faf-el8]
name=Copr repo for faf-el8 owned by @abrt
baseurl=https://copr-be.cloud.fedoraproject.org/results/@abrt/faf-el8/fedora-$releasever-$basearch/
type=rpm-md
skip_if_unavailable=True
gpgcheck=1
gpgkey=https://copr-be.cloud.fedoraproject.org/results/@abrt/faf-el8/pubkey.gpg
repo_gpgcheck=0
enabled=1
enabled_metadata=1

View file

@ -1,3 +1,5 @@
---
- name: restart httpd
service: name=httpd state=restarted
service:
name: httpd
state: restarted

View file

@ -1 +1,2 @@
{install_date: 'Wed Apr 18 11:23:27 2018', version: ''}
install_date: Thu Jul 4 13:16:07 2019
version: el7

View file

@ -3,12 +3,11 @@ galaxy_info:
author: "ABRT team"
company: Red Hat
license: BSD
min_ansible_version: 1.8
min_ansible_version: 2.5
platforms:
- name: EL
versions:
- 7
- 6
- 8
- name: Fedora
versions:
- 29

View file

@ -1,28 +1,39 @@
- name: install faf web celery packages
package: name="faf_web_celery_packages" state=present
package:
name: "{{ faf_web_celery_packages }}"
state: present
tags:
- packages
- name: install redis package
package:
name:
- redis
- python-redis
state: present
name:
- redis
- python-redis
tags:
- packages
- name: enable redis service
service: name=redis state=started enabled=yes
service:
name: redis
state: started
enabled: yes
tags:
- service
- name: enable faf-celery-worker
service: name=faf-celery-worker state=started enabled=yes
service:
name: faf-celery-worker
state: started
enabled: yes
tags:
- service
- name: enable faf-celery-beat
service: name=faf-celery-beat state=started enabled=yes
service:
name: faf-celery-beat
state: started
enabled: yes
tags:
- service

View file

@ -3,22 +3,25 @@
# check backend functionality
- name: faf
shell: faf {{ item }}
shell: faf "{{ item }}"
become: yes
become_user: faf
with_items:
loop:
- "releaseadd -o fedora --opsys-release 42"
- "releaselist | grep 'Fedora 42'"
- "compadd -o fedora --opsys-release 42 meta_faf"
- name: cpf
copy: src=ureport_sample dest={{ faf_spool_dir }}/reports/incoming
owner=faf group=faf
copy:
src: ureport_sample
dest: "{{ faf_spool_dir }}/reports/incoming"
owner: faf
group: faf
- name: faf
shell: faf {{ item }}
shell: faf "{{ item }}"
become: yes
become_user: faf
with_items:
loop:
- "save-reports -v"
- "create-problems -v"

View file

@ -6,9 +6,11 @@
problems_url: "https://{{ ansible_default_ipv4.address }}{{ url_suffix }}/problems/"
- name: check main
local_action: uri url={{ main_url }}
return_content=yes
validate_certs=no
local_action:
module: uri
url: "{{ main_url }}"
return_content: yes
validate_certs: no
register: uri_res
- fail: msg="{{ main_url }} doesn't contain 'FAF' string"
@ -16,9 +18,11 @@
"'FAF' not in uri_res.content"
- name: fetch problems
local_action: uri url={{ problems_url }}
return_content=yes
validate_certs=no
local_action:
module: uri
url: "{{ problems_url }}"
return_content: yes
validate_certs: no
register: uri_res
- fail: msg="{{ main_url }} doesn't contain 'State' string"

View file

@ -0,0 +1,17 @@
---
- name: remove EOLed opsys
command: faf releasemod -o "{{ item.opsys }}" --opsys-release "{{ item.release }}" -s EOL
loop: "{{eol_opsys|selectattr('opsys')|selectattr('release')|list}}"
become: yes
become_user: faf
- name: remove EOLed packages
command: faf cleanup-packages "{{ item.opsys }}" "{{ item.release }}"
loop: "{{eol_opsys|selectattr('opsys')|selectattr('release')|list}}"
become: yes
become_user: faf
- name: remove unassigned packages
command: faf cleanup-unassigned -f
become: yes
become_user: faf

View file

@ -1,37 +1,56 @@
---
- name: provide /etc/faf/faf.conf
template: src=etc-faf-faf.conf.j2
dest=/etc/faf/faf.conf
template:
src: etc-faf-faf.conf.j2
dest: /etc/faf/faf.conf
# setup fedora-messaging
- name: create the config folder for fedora-messaging
file: path=/etc/fedora-messaging/ owner=root group=root mode=0755 state=directory
- name: Setup fedora-messaging
block:
- name: create the config folder for fedora-messaging
file:
path: /etc/fedora-messaging/
owner: root
group: root
mode: 0755
state: directory
- name: create folders where we place certs for fedora-messaging
file: path=/etc/fedora-messaging/faf owner=root group=root mode=0755 state=directory
- name: create folders where we place certs for fedora-messaging
file:
path: /etc/fedora-messaging/faf
owner: root
group: root
mode: 0755
state: directory
- name: install certs for fedora-messaging
copy: src={{ item.src }}
dest=/etc/fedora-messaging/faf/{{ item.dest }}
owner={{ item.owner }} group=root mode={{ item.mode }}
loop:
- { src: "{{private}}/files/rabbitmq/{{env}}/pki/ca.crt",
dest: "ca.crt",
owner: faf,
mode: 0644
}
- { src: "{{private}}/files/rabbitmq/{{env}}/pki/private/faf.key",
dest: "faf.key",
owner: faf,
mode: "600"
}
- { src: "{{private}}/files/rabbitmq/{{env}}/pki/issued/faf.crt",
dest: "faf.crt",
owner: faf,
mode: 0644
}
- name: install certs for fedora-messaging
copy:
src: "{{ item.src }}"
dest: "/etc/fedora-messaging/faf/{{ item.dest }}"
owner: "{{ item.owner }}"
group: root
mode: "{{ item.mode }}"
loop:
- { src: "{{private}}/files/rabbitmq/{{env}}/pki/ca.crt",
dest: "ca.crt",
owner: faf,
mode: 0644
}
- { src: "{{private}}/files/rabbitmq/{{env}}/pki/private/faf.key",
dest: "faf.key",
owner: faf,
mode: "600"
}
- { src: "{{private}}/files/rabbitmq/{{env}}/pki/issued/faf.crt",
dest: "faf.crt",
owner: faf,
mode: 0644
}
- name: provide configuration for fedora-messaging
template: src=etc-fedora-messaging-config.toml.j2
dest=/etc/fedora-messaging/config.toml
- name: provide configuration for fedora-messaging
template:
src: etc-fedora-messaging-config.toml.j2
dest: /etc/fedora-messaging/config.toml
when: faf_with_fedmsg|bool

View file

@ -7,18 +7,16 @@
job: "faf save-reports --speedup >> /var/log/faf/save-reports.log 2>&1"
minute: "*/5"
state: present
become: yes
- name: cron create-problems-speedup
cron:
name: "faf create-problems-speedup with type {{ item}}"
user: faf
job: "faf create-problems -p {{ item }} --speedup >> /var/log/faf/create-problems.log 2>&1"
minute: 30
minute: "30"
hour: "2"
state: present
become: yes
with_items:
loop:
- "core"
- "kerneloops"
- "python"
@ -30,11 +28,10 @@
user: faf
job: "faf create-problems -p {{ item }} >> /var/log/faf/create-problems.log 2>&1"
day: "15"
minute: 30
minute: "30"
hour: "14"
state: present
become: yes
with_items:
loop:
- "core"
- "kerneloops"
- "python"
@ -45,22 +42,20 @@
name: "faf reposync"
user: faf
job: "faf reposync >> /var/log/faf/reposync.log 2>&1"
minute: 5
hour: 3
minute: "5"
hour: "3"
state: present
become: yes
- name: retrace symbols
cron:
name: "retrace symbols with type {{ item.type }}"
user: faf
job: "faf retrace --workers 4 -dp {{ item.type }} --max-fail-count 1 >> /var/log/faf/retrace-{{ item.type }}.log 2>&1"
minute: 32
hour: 2
minute: "32"
hour: "2"
weekday: "{{ item.day }}"
state: present
become: yes
with_items:
loop:
- { type: "core", day: "2,4,6" }
- { type: "kerneloops", day: "1,3,5" }
@ -77,6 +72,42 @@
name: "cron for faf find-crashfn for kerneloops"
user: faf
job: "faf find-crashfn -p kerneloops >> /var/log/faf/find-crashfn-kerneloops.log 2>&1"
minute: 15
hour: "*/3"
special_time: daily
state: present
- name: cron pull-releases
cron:
name: "faf pull-releases {{ item }}"
user: faf
job: "faf pull-releases -o {{ item }} >> /var/log/faf/pull-releases.log 2>&1"
minute: "55"
hour: "0"
state: present
loop: "{{ faf_opsys_list }}"
- name: cron pull-components
cron:
name: "faf pull-components {{ item }}"
user: faf
job: "faf pull-components -o {{ item }} >> /var/log/faf/pull-components.log 2>&1"
minute: "55"
hour: "2"
state: present
loop: "{{ faf_opsys_list }}"
- name: cron - faf find-components
cron:
name: "cron for faf find-components -o {{ item }}"
user: faf
job: "faf find-components -o {{ item }} >> /var/log/faf/find-components.log 2>&1"
special_time: daily
state: present
loop: "{{ faf_opsys_list }}"
- name: cron - faf match-unknown-packages
cron:
name: "cron for faf match-unknown-packages"
user: faf
job: "faf match-unknown-packages >> /var/log/faf/match-unknown-packages.log 2>&1"
special_time: daily
state: present

View file

@ -1,36 +1,63 @@
---
- name: enable Copr repo
copy: src=group_abrt-faf-el7-epel-7.repo dest=/etc/yum.repos.d/
- name: enable Copr repo for RHEL
copy:
src: group_abrt-faf-el7-epel-7.repo
dest: /etc/yum.repos.d/
when: ansible_distribution == 'RedHat'
- name: enable Copr repo for Fedora
copy:
src: group_abrt-faf-el8-fedora.repo
dest: /etc/yum.repos.d/
when: ansible_distribution == 'Fedora'
- name: erase faf packages
package: name="faf-*" state=absent
when: faf_force_reinstall
package:
name: "faf-*"
state: absent
when: faf_force_reinstall|bool
- name: install core faf packages
package: name="faf_packages" state=present
package:
name: "{{ faf_packages }}"
state: present
- name: install faf problem packages
package: name="faf_problem_packages" state=present
package:
name: "{{ faf_problem_packages }}"
state: present
- name: install faf opsys packages
package: name="faf_opsys_packages" state=present
package:
name: "{{ faf_opsys_packages }}"
state: present
- name: install faf action packages
package: name="faf_action_packages" state=present
package:
name: "{{ faf_action_packages }}"
state: present
- name: install faf bugtracker packages
package: name="faf_bugtracker_packages" state=present
when: faf_with_bugtrackers
package:
name: "{{ faf_bugtracker_packages }}"
state: present
when: faf_with_bugtrackers|bool
- name: install faf celery packages
package: name="faf_celery_packages" state=present
when: faf_with_celery
package:
name: "{{ faf_celery_packages }}"
state: present
when: faf_with_celery|bool
- name: install faf fedmsg packages
package: name="faf_fedmsg_packages" state=present
when: faf_with_fedmsg
package:
name: "{{ faf_fedmsg_packages }}"
state: present
when: faf_with_fedmsg|bool
- name: install faf solutionfinder packages
package: name="faf_solutionfinder_packages" state=present
when: faf_with_solutionfinders
package:
name: "{{ faf_solutionfinder_packages }}"
state: present
when: faf_with_solutionfinders|bool

View file

@ -2,7 +2,7 @@
tags: [faf, faf_install, packages]
- import_tasks: update.yml
when: faf_update
when: faf_update|bool
tags: [faf, faf_update, packages]
- import_tasks: first_time_setup.yml
@ -12,21 +12,24 @@
tags: [faf, faf_config, config]
- import_tasks: migrate_db.yml
when: faf_migrate_db
when: faf_migrate_db|bool
tags: [faf, faf_migrate_db]
- import_tasks: cron.yml
when: faf_cron_jobs
when: faf_cron_jobs|bool
tags: [faf, config]
- import_tasks: web.yml
when: faf_with_web
when: faf_with_web|bool
tags: [faf, faf_web]
- import_tasks: check.yml
when: faf_check
when: faf_check|bool
tags: [faf, faf_check]
- import_tasks: check_web.yml
when: faf_check_web
when: faf_check_web|bool
tags: [faf, faf_check_web]
- import_tasks: cleanup.yml
tags: [faf, cleanup]

View file

@ -1,3 +1,5 @@
---
- name: update faf packages
package: name="faf*" state=latest
package:
name: "faf*"
state: latest

View file

@ -1,30 +1,36 @@
- set_fact:
url_suffix: ""
when: faf_web_on_root
when: faf_web_on_root|bool
- set_fact:
url_suffix: "/faf"
when: not faf_web_on_root
when: not faf_web_on_root|bool
- name: install faf-webui packages
package : name="faf_web_packages" state=latest
package:
name: "{{ faf_web_packages }}"
state: present
- import_tasks: celery.yml
when: faf_with_celery
when: faf_with_celery|bool
- name: install faf web symboltransfer packages
package: name="faf_web_symboltransfer_packages" state=present
when: faf_with_symboltransfer
package:
name: "{{ faf_web_symboltransfer_packages }}"
state: present
when: faf_with_symboltransfer|bool
- name: provide /etc/faf/plugins/web.conf
template: src=etc-faf-plugins-web.conf.j2
dest=/etc/faf/plugins/web.conf
template:
src: etc-faf-plugins-web.conf.j2
dest: /etc/faf/plugins/web.conf
notify:
- restart httpd
- name: put webfaf on root (/) if configured
template: src=etc-httpd-conf.d-faf-web.conf.j2
dest=/etc/httpd/conf.d/faf-web.conf
template:
src: etc-httpd-conf.d-faf-web.conf.j2
dest: /etc/httpd/conf.d/faf-web.conf
notify:
- restart httpd

View file

@ -4,9 +4,9 @@
# FAF_CONFIG_FILE environment variable.
[Main]
PluginsDir = /etc/faf/plugins/
TemplatesDir = /etc/faf/templates/
AutoEnablePlugins = False
PluginsDir = {{ faf_plugins_dir }}
TemplatesDir = {{ faf_templates_dir }}
AutoEnablePlugins = {{ faf_autoenableplugins|bool }}
[Storage]
DBUser = {{ faf_db_user }}
@ -31,7 +31,7 @@ From = {{ faf_from }}
[uReport]
# The directory that holds 'reports' and 'attachments' subdirectories
Directory = {{ faf_spool_dir }}
CreateComponents = False
CreateComponents = {{ faf_create_components }}
# attachments accepted by this server
# allowed values: fedora-bugzilla rhel-bugzilla centos-mantisb comment email url
# or * to allow all attachments
@ -39,7 +39,7 @@ AcceptAttachments = fedora-bugzilla rhel-bugzilla centos-mantisbt
# Allow uReports without affected package - meaning that crashing code was
# not packaged
allow-unpackaged = False
allow-unpackaged = {{ faf_allow_unpackaged }}
# Determines which strategy will be used for searching known or uknown ureport's
# and bugzilla bug's, if known is empty, then is used BUG_OS_MINOR_VERSION