add FAF role
This commit is contained in:
parent
66172d7738
commit
835e110691
23 changed files with 715 additions and 0 deletions
25
roles/abrt/faf/LICENSE.bsd
Normal file
25
roles/abrt/faf/LICENSE.bsd
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions
|
||||||
|
are met:
|
||||||
|
1. Redistributions of source code must retain the above copyright
|
||||||
|
notice, and the entire permission notice in its entirety,
|
||||||
|
including the disclaimer of warranties.
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in the
|
||||||
|
documentation and/or other materials provided with the distribution.
|
||||||
|
3. The name of the author may not be used to endorse or promote
|
||||||
|
products derived from this software without specific prior
|
||||||
|
written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||||
|
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
|
||||||
|
WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
|
||||||
|
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||||
|
OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||||
|
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||||
|
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||||||
|
USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
|
||||||
|
DAMAGE.
|
17
roles/abrt/faf/README.rst
Normal file
17
roles/abrt/faf/README.rst
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
ansible-role-faf
|
||||||
|
----------------
|
||||||
|
|
||||||
|
Role for deploying `faf <https://github.com/abrt/faf>`_.
|
||||||
|
|
||||||
|
See `defaults/main.yml <https://github.com/abrt/ansible-role-faf/defaults/main.yml>`_
|
||||||
|
for the complete list of configuration variables.
|
||||||
|
|
||||||
|
License
|
||||||
|
=======
|
||||||
|
|
||||||
|
BSD
|
||||||
|
|
||||||
|
Author
|
||||||
|
======
|
||||||
|
|
||||||
|
Richard Marko <rmarko@fedoraproject.org>
|
178
roles/abrt/faf/defaults/main.yml
Normal file
178
roles/abrt/faf/defaults/main.yml
Normal file
|
@ -0,0 +1,178 @@
|
||||||
|
---
|
||||||
|
# SMTP server to use
|
||||||
|
smtp_server: localhost
|
||||||
|
smtp_port: 25
|
||||||
|
|
||||||
|
# domain of web service as seen from internet
|
||||||
|
domain: example.org
|
||||||
|
|
||||||
|
# default port for memcached
|
||||||
|
memcached_port: 11211
|
||||||
|
|
||||||
|
# connectstring to use for faf web & storage in format:
|
||||||
|
# driver://user:password@host:port/database
|
||||||
|
faf_db_connectstring: postgresql:///faf
|
||||||
|
|
||||||
|
# set to true if this is the very first run of this playbook
|
||||||
|
# it will set-up postgresql database and initial data for faf
|
||||||
|
faf_first_time_setup: false
|
||||||
|
|
||||||
|
# dangerous, delete and re-create PostgreSQL database
|
||||||
|
# (will wipe Postgre's data dir and re-create from scratch)
|
||||||
|
faf_recreate_database: false
|
||||||
|
|
||||||
|
# update faf packages
|
||||||
|
faf_update: true
|
||||||
|
|
||||||
|
# force faf packages reinstallation (for testing instances)
|
||||||
|
faf_force_reinstall: false
|
||||||
|
|
||||||
|
# run faf's database migrations
|
||||||
|
faf_migrate_db: true
|
||||||
|
|
||||||
|
# set up cron jobs for faf
|
||||||
|
faf_cron_jobs: true
|
||||||
|
|
||||||
|
faf_admin_mail: root@localhost
|
||||||
|
|
||||||
|
###########################
|
||||||
|
# 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
|
||||||
|
|
||||||
|
###########################
|
||||||
|
# faf-webui configuration #
|
||||||
|
###########################
|
||||||
|
|
||||||
|
# faf_server_name is the bare URL without protocols and trailing slash
|
||||||
|
faf_server_name: "example-faf.org"
|
||||||
|
|
||||||
|
faf_web_brand_title: "FAF"
|
||||||
|
faf_web_brand_subtitle: "Fedora Analysis Framework"
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# enable OpenID
|
||||||
|
faf_web_openid: true
|
||||||
|
|
||||||
|
# Comma-separated list of teams provided by OpenID via
|
||||||
|
# https://github.com/puiterwijk/python-openid-teams
|
||||||
|
# Members of these teams will be granted maintainer privileges
|
||||||
|
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
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
##############################
|
||||||
|
# functionality checking #
|
||||||
|
##############################
|
||||||
|
|
||||||
|
faf_check: false
|
||||||
|
faf_check_web: false
|
||||||
|
|
||||||
|
##############################
|
||||||
|
# faf packages configuration #
|
||||||
|
##############################
|
||||||
|
#
|
||||||
|
# Removing some packaging allows you to install
|
||||||
|
# only components relevant for your deployment
|
||||||
|
|
||||||
|
faf_packages:
|
||||||
|
- faf
|
||||||
|
- faf-migrations
|
||||||
|
- faf-yum
|
||||||
|
|
||||||
|
faf_problem_packages:
|
||||||
|
- faf-problem-coredump
|
||||||
|
- faf-problem-java
|
||||||
|
- faf-problem-kerneloops
|
||||||
|
- faf-problem-python
|
||||||
|
- faf-problem-ruby
|
||||||
|
|
||||||
|
faf_opsys_packages:
|
||||||
|
- faf-opsys-centos
|
||||||
|
- faf-opsys-fedora
|
||||||
|
- faf-opsys-rhel
|
||||||
|
|
||||||
|
faf_action_packages:
|
||||||
|
- faf-action-add-compat-hashes
|
||||||
|
- faf-action-arch
|
||||||
|
- faf-action-archive-reports
|
||||||
|
- faf-action-assign-release-to-builds
|
||||||
|
- faf-action-attach-centos-bugs
|
||||||
|
- faf-action-c2p
|
||||||
|
- faf-action-cleanup-task-results
|
||||||
|
- faf-action-create-problems
|
||||||
|
- faf-action-external-faf
|
||||||
|
- faf-action-external-faf-clone-bz
|
||||||
|
- faf-action-find-components
|
||||||
|
- faf-action-find-crash-function
|
||||||
|
- faf-action-mark-probably-fixed
|
||||||
|
- faf-action-pull-associates
|
||||||
|
- faf-action-pull-components
|
||||||
|
- faf-action-pull-releases
|
||||||
|
- faf-action-pull-reports
|
||||||
|
- faf-action-repo
|
||||||
|
- faf-action-retrace
|
||||||
|
- faf-action-retrace-remote
|
||||||
|
- faf-action-save-reports
|
||||||
|
- faf-action-shell
|
||||||
|
- faf-action-stats
|
||||||
|
|
||||||
|
faf_bugtracker_packages:
|
||||||
|
- faf-action-bugtracker
|
||||||
|
- faf-bugtracker-bugzilla
|
||||||
|
- faf-bugtracker-centos-mantis
|
||||||
|
- faf-bugtracker-fedora-bugzilla
|
||||||
|
- faf-bugtracker-mantis
|
||||||
|
- faf-bugtracker-rhel-bugzilla
|
||||||
|
|
||||||
|
faf_celery_packages:
|
||||||
|
- faf-celery-tasks
|
||||||
|
- faf-celery-tasks-systemd-services
|
||||||
|
|
||||||
|
faf_fedmsg_packages:
|
||||||
|
- faf-action-fedmsg-notify
|
||||||
|
- faf-fedmsg
|
||||||
|
- faf-fedmsg-realtime
|
||||||
|
|
||||||
|
faf_solutionfinder_packages:
|
||||||
|
- faf-action-sf-prefilter
|
||||||
|
- faf-solutionfinder-prefilter
|
||||||
|
- faf-solutionfinder-probable-fix
|
||||||
|
|
||||||
|
faf_web_packages:
|
||||||
|
- faf-webui
|
||||||
|
|
||||||
|
faf_web_celery_packages:
|
||||||
|
- faf-blueprint-celery-tasks
|
||||||
|
|
||||||
|
faf_web_symboltransfer_packages:
|
||||||
|
- faf-blueprint-symbol-transfer
|
85
roles/abrt/faf/files/ureport_sample
Normal file
85
roles/abrt/faf/files/ureport_sample
Normal file
|
@ -0,0 +1,85 @@
|
||||||
|
{
|
||||||
|
"ureport_version": 2,
|
||||||
|
|
||||||
|
"reason": "ImportError in /usr/bin/faf:55",
|
||||||
|
|
||||||
|
"os": {
|
||||||
|
"name": "fedora",
|
||||||
|
"version": "42",
|
||||||
|
"architecture": "x86_64"
|
||||||
|
},
|
||||||
|
|
||||||
|
"problem": {
|
||||||
|
"type": "python",
|
||||||
|
|
||||||
|
"component": "meta_faf",
|
||||||
|
|
||||||
|
"exception_name": "ImportError",
|
||||||
|
|
||||||
|
"user": {
|
||||||
|
"local": true,
|
||||||
|
"root": false
|
||||||
|
},
|
||||||
|
|
||||||
|
"stacktrace": [
|
||||||
|
{
|
||||||
|
"file_name": "/usr/lib64/python2.7/site-packages/sqlalchemy/dialects/postgresql/psycopg2.py",
|
||||||
|
"file_line": 312,
|
||||||
|
"line_contents": "psycopg = __import__('psycopg2')",
|
||||||
|
"function_name": "dbapi"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file_name": "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/strategies.py",
|
||||||
|
"file_line": 64,
|
||||||
|
"line_contents": "dbapi = dialect_cls.dbapi(**dbapi_args)",
|
||||||
|
"function_name": "create"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file_name": "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/__init__.py",
|
||||||
|
"file_line": 338,
|
||||||
|
"line_contents": "return strategy.create(*args, **kwargs)",
|
||||||
|
"function_name": "create_engine"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file_name": "/usr/lib/python2.7/site-packages/pyfaf/storage/__init__.py",
|
||||||
|
"file_line": 213,
|
||||||
|
"line_contents": "self._db = create_engine(config['storage.connectstring'])",
|
||||||
|
"function_name": "__init__"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file_name": "/usr/lib/python2.7/site-packages/pyfaf/storage/__init__.py",
|
||||||
|
"file_line": 199,
|
||||||
|
"line_contents": "db = Database(debug=debug, dry=dry)",
|
||||||
|
"function_name": "get_database"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file_name": "/usr/bin/faf",
|
||||||
|
"file_line": 29,
|
||||||
|
"line_contents": "db = getDatabase(debug=cmdline.sql_verbose, dry=cmdline.dry_run)",
|
||||||
|
"function_name": "main"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file_name": "/usr/bin/faf",
|
||||||
|
"file_line": 55,
|
||||||
|
"special_function": "module",
|
||||||
|
"line_contents": "main()"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
|
||||||
|
"packages": [
|
||||||
|
{
|
||||||
|
"name": "meta_faf",
|
||||||
|
"epoch": 0,
|
||||||
|
"version": "0.9",
|
||||||
|
"architecture": "noarch",
|
||||||
|
"package_role": "affected",
|
||||||
|
"release": "1.fc42"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
"reporter": {
|
||||||
|
"version": "0.9",
|
||||||
|
"name": "satyr"
|
||||||
|
}
|
||||||
|
}
|
3
roles/abrt/faf/handlers/main.yml
Normal file
3
roles/abrt/faf/handlers/main.yml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
---
|
||||||
|
- name: restart httpd
|
||||||
|
service: name=httpd state=restarted
|
1
roles/abrt/faf/meta/.galaxy_install_info
Normal file
1
roles/abrt/faf/meta/.galaxy_install_info
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{install_date: 'Mon Mar 20 11:05:21 2017', version: ''}
|
19
roles/abrt/faf/meta/main.yml
Normal file
19
roles/abrt/faf/meta/main.yml
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
---
|
||||||
|
galaxy_info:
|
||||||
|
author: "ABRT team"
|
||||||
|
company: Red Hat
|
||||||
|
license: BSD
|
||||||
|
min_ansible_version: 1.8
|
||||||
|
platforms:
|
||||||
|
- name: EL
|
||||||
|
versions:
|
||||||
|
- 7
|
||||||
|
- 6
|
||||||
|
- name: Fedora
|
||||||
|
versions:
|
||||||
|
- 25
|
||||||
|
- 24
|
||||||
|
- 23
|
||||||
|
categories:
|
||||||
|
- web
|
||||||
|
dependencies: []
|
28
roles/abrt/faf/tasks/celery.yml
Normal file
28
roles/abrt/faf/tasks/celery.yml
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
- name: install faf web celery packages
|
||||||
|
yum: pkg={{ item }} state=installed
|
||||||
|
with_items: "{{ faf_web_celery_packages }}"
|
||||||
|
tags:
|
||||||
|
- packages
|
||||||
|
|
||||||
|
- name: install redis package
|
||||||
|
yum : name={{ item }} state=installed
|
||||||
|
with_items:
|
||||||
|
- redis
|
||||||
|
- python-redis
|
||||||
|
tags:
|
||||||
|
- packages
|
||||||
|
|
||||||
|
- name: enable redis service
|
||||||
|
service: name=redis state=started enabled=yes
|
||||||
|
tags:
|
||||||
|
- service
|
||||||
|
|
||||||
|
- name: enable faf-celery-worker
|
||||||
|
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
|
||||||
|
tags:
|
||||||
|
- service
|
24
roles/abrt/faf/tasks/check.yml
Normal file
24
roles/abrt/faf/tasks/check.yml
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
# check backend functionality
|
||||||
|
|
||||||
|
- name: faf
|
||||||
|
shell: faf {{ item }}
|
||||||
|
become: yes
|
||||||
|
become_user: faf
|
||||||
|
with_items:
|
||||||
|
- "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=/var/spool/faf/reports/incoming
|
||||||
|
owner=faf group=faf
|
||||||
|
|
||||||
|
- name: faf
|
||||||
|
shell: faf {{ item }}
|
||||||
|
become: yes
|
||||||
|
become_user: faf
|
||||||
|
with_items:
|
||||||
|
- "save-reports -v"
|
||||||
|
- "create-problems -v"
|
34
roles/abrt/faf/tasks/check_web.yml
Normal file
34
roles/abrt/faf/tasks/check_web.yml
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
|
||||||
|
# check web functionality
|
||||||
|
#
|
||||||
|
- set_fact:
|
||||||
|
url_suffix: ""
|
||||||
|
when: faf_web_on_root
|
||||||
|
|
||||||
|
- set_fact:
|
||||||
|
url_suffix: "/faf"
|
||||||
|
when: not faf_web_on_root
|
||||||
|
|
||||||
|
- set_fact:
|
||||||
|
main_url: "https://{{ ansible_default_ipv4.address }}{{ url_suffix }}"
|
||||||
|
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
|
||||||
|
register: uri_res
|
||||||
|
|
||||||
|
- fail: msg="{{ main_url }} doesn't contain 'FAF' string"
|
||||||
|
when:
|
||||||
|
"'FAF' not in uri_res.content"
|
||||||
|
|
||||||
|
- name: fetch problems
|
||||||
|
local_action: uri url={{ problems_url }}
|
||||||
|
return_content=yes
|
||||||
|
validate_certs=no
|
||||||
|
register: uri_res
|
||||||
|
|
||||||
|
- fail: msg="{{ main_url }} doesn't contain 'State' string"
|
||||||
|
when:
|
||||||
|
"'State' not in uri_res.content"
|
5
roles/abrt/faf/tasks/config.yml
Normal file
5
roles/abrt/faf/tasks/config.yml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: provide /etc/faf/faf.conf
|
||||||
|
template: src=etc-faf-faf.conf.j2
|
||||||
|
dest=/etc/faf/faf.conf
|
30
roles/abrt/faf/tasks/cron.yml
Normal file
30
roles/abrt/faf/tasks/cron.yml
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: cron save-reports
|
||||||
|
cron:
|
||||||
|
name: "faf save-reports"
|
||||||
|
user: faf
|
||||||
|
job: "faf save-reports >> /var/log/faf/save-reports.log 2>&1"
|
||||||
|
minute: "*/5"
|
||||||
|
state: present
|
||||||
|
become: yes
|
||||||
|
|
||||||
|
- name: cron create-problems
|
||||||
|
cron:
|
||||||
|
name: "faf create-problems"
|
||||||
|
user: faf
|
||||||
|
job: "faf create-problems >> /var/log/faf/create-problems.log 2>&1"
|
||||||
|
minute: 30
|
||||||
|
hour: "*/4"
|
||||||
|
state: present
|
||||||
|
become: yes
|
||||||
|
|
||||||
|
- name: cron reposync
|
||||||
|
cron:
|
||||||
|
name: "faf reposync"
|
||||||
|
user: faf
|
||||||
|
job: "faf reposync >> /var/log/faf/reposync.log 2>&1"
|
||||||
|
minute: 5
|
||||||
|
hour: 3
|
||||||
|
state: present
|
||||||
|
become: yes
|
16
roles/abrt/faf/tasks/first_time_setup.yml
Normal file
16
roles/abrt/faf/tasks/first_time_setup.yml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: create faf's database schema
|
||||||
|
command: faf-migrate-db --create-all
|
||||||
|
become: yes
|
||||||
|
become_user: faf
|
||||||
|
|
||||||
|
- name: stamp database as migrated to latest version
|
||||||
|
command: faf-migrate-db --stamp-only
|
||||||
|
become: yes
|
||||||
|
become_user: faf
|
||||||
|
|
||||||
|
- name: init faf
|
||||||
|
command: faf init
|
||||||
|
become: yes
|
||||||
|
become_user: faf
|
41
roles/abrt/faf/tasks/install.yml
Normal file
41
roles/abrt/faf/tasks/install.yml
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: erase faf packages
|
||||||
|
yum: pkg="faf-*" state=absent
|
||||||
|
when: faf_force_reinstall
|
||||||
|
|
||||||
|
- name: install core faf packages
|
||||||
|
yum: pkg={{ item }} state=installed
|
||||||
|
with_items: "{{ faf_packages }}"
|
||||||
|
|
||||||
|
- name: install faf problem packages
|
||||||
|
yum: pkg={{ item }} state=installed
|
||||||
|
with_items: "{{ faf_problem_packages }}"
|
||||||
|
|
||||||
|
- name: install faf opsys packages
|
||||||
|
yum: pkg={{ item }} state=installed
|
||||||
|
with_items: "{{ faf_opsys_packages }}"
|
||||||
|
|
||||||
|
- name: install faf action packages
|
||||||
|
yum: pkg={{ item }} state=installed
|
||||||
|
with_items: "{{ faf_action_packages }}"
|
||||||
|
|
||||||
|
- name: install faf bugtracker packages
|
||||||
|
yum: pkg={{ item }} state=installed
|
||||||
|
with_items: "{{ faf_bugtracker_packages }}"
|
||||||
|
when: faf_with_bugtrackers
|
||||||
|
|
||||||
|
- name: install faf celery packages
|
||||||
|
yum: pkg={{ item }} state=installed
|
||||||
|
with_items: "{{ faf_celery_packages }}"
|
||||||
|
when: faf_with_celery
|
||||||
|
|
||||||
|
- name: install faf fedmsg packages
|
||||||
|
yum: pkg={{ item }} state=installed
|
||||||
|
with_items: "{{ faf_fedmsg_packages }}"
|
||||||
|
when: faf_with_fedmsg
|
||||||
|
|
||||||
|
- name: install faf solutionfinder packages
|
||||||
|
yum: pkg={{ item }} state=installed
|
||||||
|
with_items: "{{ faf_solutionfinder_packages }}"
|
||||||
|
when: faf_with_solutionfinders
|
33
roles/abrt/faf/tasks/main.yml
Normal file
33
roles/abrt/faf/tasks/main.yml
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
- include: install.yml
|
||||||
|
tags: [faf, faf_install, packages]
|
||||||
|
|
||||||
|
- include: update.yml
|
||||||
|
when: faf_update
|
||||||
|
tags: [faf, faf_update, packages]
|
||||||
|
|
||||||
|
- include: first_time_setup.yml
|
||||||
|
when: faf_first_time_setup
|
||||||
|
tags: [faf, faf_fist_time_setup, config]
|
||||||
|
|
||||||
|
- include: config.yml
|
||||||
|
tags: [faf, faf_config, config]
|
||||||
|
|
||||||
|
- include: migrate_db.yml
|
||||||
|
when: faf_migrate_db
|
||||||
|
tags: [faf, faf_migrate_db]
|
||||||
|
|
||||||
|
- include: cron.yml
|
||||||
|
when: faf_cron_jobs
|
||||||
|
tags: [faf, config]
|
||||||
|
|
||||||
|
- include: web.yml
|
||||||
|
when: faf_with_web
|
||||||
|
tags: [faf, faf_web]
|
||||||
|
|
||||||
|
- include: check.yml
|
||||||
|
when: faf_check
|
||||||
|
tags: [faf, faf_check]
|
||||||
|
|
||||||
|
- include: check_web.yml
|
||||||
|
when: faf_check_web
|
||||||
|
tags: [faf, faf_check_web]
|
5
roles/abrt/faf/tasks/migrate_db.yml
Normal file
5
roles/abrt/faf/tasks/migrate_db.yml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
- name: run database migrations
|
||||||
|
command: faf-migrate-db
|
||||||
|
become: yes
|
||||||
|
become_user: faf
|
3
roles/abrt/faf/tasks/update.yml
Normal file
3
roles/abrt/faf/tasks/update.yml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
---
|
||||||
|
- name: update faf packages
|
||||||
|
yum: pkg="faf*" state=latest
|
26
roles/abrt/faf/tasks/web.yml
Normal file
26
roles/abrt/faf/tasks/web.yml
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
- name: install faf-webui packages
|
||||||
|
yum : name={{ item }} state=latest
|
||||||
|
with_items: "{{ faf_web_packages }}"
|
||||||
|
|
||||||
|
- include: celery.yml
|
||||||
|
when: faf_with_celery
|
||||||
|
|
||||||
|
- name: install faf web symboltransfer packages
|
||||||
|
yum: pkg={{ item }} state=installed
|
||||||
|
with_items: "{{ faf_web_symboltransfer_packages }}"
|
||||||
|
when: faf_with_symboltransfer
|
||||||
|
|
||||||
|
- name: provide /etc/faf/plugins/web.conf
|
||||||
|
template: src=etc-faf-plugins-web.conf.j2
|
||||||
|
dest=/etc/faf/plugins/web.conf
|
||||||
|
notify:
|
||||||
|
- restart httpd
|
||||||
|
|
||||||
|
# faf installs this file by itself if faf_web_on_root
|
||||||
|
# is disabled and is available under <hosts>/faf
|
||||||
|
- 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
|
||||||
|
when: faf_web_on_root
|
||||||
|
notify:
|
||||||
|
- restart httpd
|
31
roles/abrt/faf/templates/etc-faf-faf.conf.j2
Normal file
31
roles/abrt/faf/templates/etc-faf-faf.conf.j2
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
#{{ ansible_managed }}
|
||||||
|
# Faf site-wide configuration file
|
||||||
|
|
||||||
|
[Main]
|
||||||
|
PluginsDir = /etc/faf/plugins/
|
||||||
|
TemplatesDir = /etc/faf/templates/
|
||||||
|
AutoEnablePlugins = False
|
||||||
|
|
||||||
|
[Storage]
|
||||||
|
ConnectString = {{ faf_db_connectstring }}
|
||||||
|
LobDir = /var/spool/faf/lob
|
||||||
|
# Using platform-specific location by default.
|
||||||
|
# Uncomment and change if needed.
|
||||||
|
# TmpDir = /tmp
|
||||||
|
|
||||||
|
[Mail]
|
||||||
|
# where to send notification emails, comma separated list
|
||||||
|
Admins = {{ faf_admin_mail }}
|
||||||
|
Server = {{ smtp_server }}
|
||||||
|
Port = {{ smtp_port }}
|
||||||
|
Username = {{ smtp_username|default("", true) }}
|
||||||
|
Password = {{ smtp_password|default("", true) }}
|
||||||
|
|
||||||
|
[uReport]
|
||||||
|
# The directory that holds 'reports' and 'attachments' subdirectories
|
||||||
|
Directory = /var/spool/faf
|
||||||
|
CreateComponents = False
|
||||||
|
# attachments accepted by this server
|
||||||
|
# allowed values: fedora-bugzilla rhel-bugzilla centos-mantisb comment email url
|
||||||
|
# or * to allow all attachments
|
||||||
|
AcceptAttachments = fedora-bugzilla rhel-bugzilla centos-mantisbt
|
50
roles/abrt/faf/templates/etc-faf-plugins-web.conf.j2
Normal file
50
roles/abrt/faf/templates/etc-faf-plugins-web.conf.j2
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
#{{ ansible_managed }}
|
||||||
|
[hub]
|
||||||
|
debug = {{ faf_web_debug }}
|
||||||
|
proxy_setup = {{ faf_web_proxy_setup }}
|
||||||
|
secret_key = {{ faf_web_secret_key }}
|
||||||
|
{% if faf_web_on_root %}
|
||||||
|
url = https://{{ domain }}/
|
||||||
|
{% else %}
|
||||||
|
url = https://{{ domain }}/faf/
|
||||||
|
{% endif %}
|
||||||
|
server_name = {{ faf_server_name }}
|
||||||
|
brand_title = {{ faf_web_brand_title }}
|
||||||
|
brand_subtitle = {{ faf_web_brand_subtitle }}
|
||||||
|
|
||||||
|
{% if faf_web_fedmenu_url %}
|
||||||
|
fedmenu_url = {{ faf_web_fedmenu_url }}
|
||||||
|
fedmenu_data_url = {{ faf_web_fedmenu_data_url }}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
# When OpenID login is disabled, this option can be used to override permission
|
||||||
|
# checks and make everyone a package maintainer.
|
||||||
|
# In that case no login is necessary to access maintainer-only actions.
|
||||||
|
everyone_is_maintainer = {{ faf_web_everyone_is_admin }}
|
||||||
|
# When OpenID login is disabled, this option can be used to override permission
|
||||||
|
# checks and make everyone an admin.
|
||||||
|
# In that case no login is necessary to access admin-only actions.
|
||||||
|
everyone_is_admin = {{ faf_web_everyone_is_maintainer }}
|
||||||
|
|
||||||
|
[openid]
|
||||||
|
enabled = {{ faf_web_openid }}
|
||||||
|
|
||||||
|
{% if faf_web_openid_privileged_teams %}
|
||||||
|
privileged_teams = {{ faf_web_openid_privileged_teams }}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
[DumpDir]
|
||||||
|
CacheDirectory = /var/spool/faf/dumpdirs
|
||||||
|
CacheDirectoryCountQuota = 100
|
||||||
|
CacheDirectorySizeQuota = 107374182400
|
||||||
|
MaxDumpDirSize = 1073741824
|
||||||
|
|
||||||
|
[cache]
|
||||||
|
#types:
|
||||||
|
# null - no caching
|
||||||
|
# simple - process-local memory cache
|
||||||
|
# memcached - requires pylibmc
|
||||||
|
type = {{ faf_web_cache_type }}
|
||||||
|
memcached_host = localhost
|
||||||
|
memcached_port = {{ memcached_port }}
|
||||||
|
memcached_key_prefix = webfaf
|
56
roles/abrt/faf/templates/etc-httpd-conf.d-faf-web.conf.j2
Normal file
56
roles/abrt/faf/templates/etc-httpd-conf.d-faf-web.conf.j2
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
#{{ ansible_managed }}
|
||||||
|
# WSGI handler
|
||||||
|
WSGIPythonOptimize 1
|
||||||
|
WSGISocketPrefix /var/spool/faf/wsgi
|
||||||
|
WSGIDaemonProcess faf user=faf group=faf processes=3 threads=5
|
||||||
|
|
||||||
|
{% if ansible_os_family == 'RedHat' and ansible_distribution_major_version == '6' %}
|
||||||
|
{% set python = 'python2.6' %}
|
||||||
|
{% else %}
|
||||||
|
{% set python = 'python2.7' %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
WSGIScriptAlias / /usr/lib/{{ python }}/site-packages/webfaf/hub.wsgi process-group=faf application-group=%{GLOBAL}
|
||||||
|
|
||||||
|
<Location />
|
||||||
|
<IfModule mod_authz_core.c>
|
||||||
|
# Apache 2.4
|
||||||
|
Require all granted
|
||||||
|
</IfModule>
|
||||||
|
<IfModule !mod_authz_core.c>
|
||||||
|
# Apache 2.2
|
||||||
|
Order allow,deny
|
||||||
|
Allow from all
|
||||||
|
</IfModule>
|
||||||
|
</Location>
|
||||||
|
|
||||||
|
# project main
|
||||||
|
<Directory "/usr/lib/{{ python }}/site-packages/webfaf/">
|
||||||
|
Options Indexes
|
||||||
|
IndexOptions FancyIndexing
|
||||||
|
<IfModule mod_authz_core.c>
|
||||||
|
# Apache 2.4
|
||||||
|
Require all granted
|
||||||
|
</IfModule>
|
||||||
|
<IfModule !mod_authz_core.c>
|
||||||
|
# Apache 2.2
|
||||||
|
Order allow,deny
|
||||||
|
Allow from all
|
||||||
|
</IfModule>
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
# static
|
||||||
|
Alias /static "/usr/share/faf/web/static"
|
||||||
|
<Directory "/usr/share/faf/web/static">
|
||||||
|
Options Indexes
|
||||||
|
IndexOptions FancyIndexing
|
||||||
|
<IfModule mod_authz_core.c>
|
||||||
|
# Apache 2.4
|
||||||
|
Require all granted
|
||||||
|
</IfModule>
|
||||||
|
<IfModule !mod_authz_core.c>
|
||||||
|
# Apache 2.2
|
||||||
|
Order allow,deny
|
||||||
|
Allow from all
|
||||||
|
</IfModule>
|
||||||
|
</Directory>
|
2
roles/abrt/how-to-update.txt
Normal file
2
roles/abrt/how-to-update.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
# WARNING - this will override all local changes. Please rebase after this command.
|
||||||
|
ansible-galaxy install -f -r requirements.yml --ignore-errors -p ./
|
3
roles/abrt/requirements.yml
Normal file
3
roles/abrt/requirements.yml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# Install a role from GitHub
|
||||||
|
- name: faf
|
||||||
|
src: https://github.com/abrt/ansible-role-faf.git
|
Loading…
Add table
Add a link
Reference in a new issue