adding resultsdb-stg01 host, resultsdb-stg group, resultsdb backend and frontend roles
This commit is contained in:
parent
4f9806ff3c
commit
61152b0522
12 changed files with 252 additions and 0 deletions
32
inventory/group_vars/resultsdb-stg
Normal file
32
inventory/group_vars/resultsdb-stg
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
---
|
||||||
|
# common items for the releng-* boxes
|
||||||
|
lvm_size: 50000
|
||||||
|
mem_size: 4096
|
||||||
|
num_cpus: 4
|
||||||
|
# for systems that do not match the above - specify the same parameter in
|
||||||
|
# the host_vars/$hostname file
|
||||||
|
|
||||||
|
tcp_ports: [ 80, 443, {{ resultsdb_db_port }} ]
|
||||||
|
fas_client_groups: sysadmin-qa
|
||||||
|
nrpe_procs_warn: 250
|
||||||
|
nrpe_procs_crit: 300
|
||||||
|
|
||||||
|
virt_install_command: /usr/sbin/virt-install -n {{ inventory_hostname }} -r {{ mem_size }}
|
||||||
|
--disk bus=virtio,path={{ volgroup }}/{{ inventory_hostname }}
|
||||||
|
--vcpus={{ num_cpus }} -l {{ ks_repo }} -x
|
||||||
|
"ksdevice=eth0 ks={{ ks_url }} console=tty0 console=ttyS0
|
||||||
|
hostname={{ inventory_hostname }} nameserver={{ dns }}
|
||||||
|
ip={{ eth0_ip }}::{{ gw }}:{{ nm }}:{{ inventory_hostname }}:eth0:none"
|
||||||
|
--network=bridge=br0,model=virtio --autostart --noautoconsole
|
||||||
|
|
||||||
|
resultsdb_db_host: db-qa01.qa.fedoraproject.org
|
||||||
|
resultsdb_db_port: 5432
|
||||||
|
resultsdb_endpoint: '/resultsdb'
|
||||||
|
resultsdb_fe_endpoint: '/'
|
||||||
|
resultsdb_db_name: resultsdb
|
||||||
|
|
||||||
|
tcp_ports: [ 80, 443 ]
|
||||||
|
|
||||||
|
# this needs to be in private
|
||||||
|
resultsdb_db_user: resultsdb
|
||||||
|
resultsdb_db_password: somefancypassword
|
10
inventory/host_vars/resultsdb-stg01.qa.fedoraproject.org
Normal file
10
inventory/host_vars/resultsdb-stg01.qa.fedoraproject.org
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
---
|
||||||
|
nm: 255.255.255.0
|
||||||
|
gw: 10.5.124.254
|
||||||
|
dns: 10.5.126.21
|
||||||
|
ks_url: http://10.5.126.23/repo/rhel/ks/kvm-fedora-20
|
||||||
|
ks_repo: http://10.5.126.23/pub/fedora/linux/releases/20/Fedora/x86_64/os/
|
||||||
|
volgroup: /dev/VirtGuests
|
||||||
|
eth0_ip: 10.5.124.147
|
||||||
|
vmhost: virthost-comm02.qa.fedoraproject.org
|
||||||
|
datacenter: phx2
|
|
@ -386,6 +386,9 @@ proxy01.stg.phx2.fedoraproject.org
|
||||||
[qa]
|
[qa]
|
||||||
qa01.dev.fedoraproject.org
|
qa01.dev.fedoraproject.org
|
||||||
|
|
||||||
|
[resultsdb-stg]
|
||||||
|
resultsdb-stg01.qa.fedoraproject.org
|
||||||
|
|
||||||
[smtp-mm]
|
[smtp-mm]
|
||||||
smtp-mm-ib01.fedoraproject.org
|
smtp-mm-ib01.fedoraproject.org
|
||||||
smtp-mm-telia01.fedoraproject.org
|
smtp-mm-telia01.fedoraproject.org
|
||||||
|
|
55
playbooks/groups/resultsdb-stg.yml
Normal file
55
playbooks/groups/resultsdb-stg.yml
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
---
|
||||||
|
# create a new resultsdb staging server
|
||||||
|
# NOTE: make sure there is room/space for this server on the vmhost
|
||||||
|
# NOTE: most of these vars_path come from group_vars/mirrorlist or from hostvars
|
||||||
|
|
||||||
|
- name: make resultsdb staging
|
||||||
|
hosts: resultsdb-stg
|
||||||
|
user: root
|
||||||
|
gather_facts: False
|
||||||
|
accelerate: "{{ accelerated }}"
|
||||||
|
|
||||||
|
vars_files:
|
||||||
|
- /srv/web/infra/ansible/vars/global.yml
|
||||||
|
- "{{ private }}/vars.yml"
|
||||||
|
- /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- include: "{{ tasks }}/virt_instance_create.yml"
|
||||||
|
|
||||||
|
handlers:
|
||||||
|
- include: "{{ handlers }}/restart_services.yml"
|
||||||
|
|
||||||
|
- name: make the box be real
|
||||||
|
hosts: taskotron
|
||||||
|
user: root
|
||||||
|
gather_facts: True
|
||||||
|
accelerate: "{{ accelerated }}"
|
||||||
|
|
||||||
|
vars_files:
|
||||||
|
- /srv/web/infra/ansible/vars/global.yml
|
||||||
|
- "{{ private }}/vars.yml"
|
||||||
|
- /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml
|
||||||
|
|
||||||
|
roles:
|
||||||
|
- { role: base, tags:['base'] }
|
||||||
|
- { role: rkhunter, tags:['rkhunter'] }
|
||||||
|
- { role: nagios_client, tags:['nagios_client'] }
|
||||||
|
- { role: fas_client, tags:['fas_client'] }
|
||||||
|
- { role: collectd/base, tags:['collectd_base'] }
|
||||||
|
- { role: yum-cron, tags:['yumcron'] }
|
||||||
|
- { role: taskotron/resultsdb-backend, tags: ['resultsdb-be'] }
|
||||||
|
- { role: taskotron/resultsdb-frontend, tags: ['resultsdb-fe'] }
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
# this is how you include other task lists
|
||||||
|
- include: "{{ tasks }}/hosts.yml"
|
||||||
|
- include: "{{ tasks }}/yumrepos.yml"
|
||||||
|
- include: "{{ tasks }}/2fa_client.yml"
|
||||||
|
- include: "{{ tasks }}/motd.yml"
|
||||||
|
- include: "{{ tasks }}/sudo.yml"
|
||||||
|
|
||||||
|
handlers:
|
||||||
|
- include: "{{ handlers }}/restart_services.yml"
|
||||||
|
|
||||||
|
|
25
roles/taskotron/resultsdb-backend/tasks/main.yml
Normal file
25
roles/taskotron/resultsdb-backend/tasks/main.yml
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
- name: ensure packages required for resultsdb are installed
|
||||||
|
action: yum name={{ item }} state=latest
|
||||||
|
with_items:
|
||||||
|
- resultsdb
|
||||||
|
- mod_wsgi
|
||||||
|
|
||||||
|
- name: ensure database is created
|
||||||
|
delegate_to: "{{ resultsdb_db_host }}"
|
||||||
|
sudo_user: postgres
|
||||||
|
action: postgresql_db db={{ resultsdb_db_name }}
|
||||||
|
|
||||||
|
- name: ensure resultsdb user has access to database
|
||||||
|
delegate_to: "{{ resultsdb_db_host }}"
|
||||||
|
sudo_user: postgres
|
||||||
|
action: postgresql_user db={{ resultsdb_db_name }} user={{ resultsdb_db_user }} password={{ resultsdb_db_password }} role_attr_flags=NOSUPERUSER
|
||||||
|
|
||||||
|
- name: generate resultsdb config
|
||||||
|
template: src=settings.py.j2 dest=/etc/resultsdb/settings.py owner=root group=root mode=0644
|
||||||
|
notify:
|
||||||
|
- restart httpd
|
||||||
|
|
||||||
|
- name: generate resultsdb apache config
|
||||||
|
template: src=resultsdb.conf.j2 dest=/etc/httpd/conf.d/resultsdb.conf owner=root group=root mode=0644
|
||||||
|
notify:
|
||||||
|
- restart httpd
|
|
@ -0,0 +1,30 @@
|
||||||
|
WSGIDaemonProcess resultsdb user=apache group=apache threads=5
|
||||||
|
WSGIScriptAlias {{ resultsdb_endpoint }} /usr/share/resultsdb/resultsdb.wsgi
|
||||||
|
WSGISocketPrefix run/wsgi
|
||||||
|
|
||||||
|
# this isn't the best way to force SSL but it works for now
|
||||||
|
#RewriteEngine On
|
||||||
|
#RewriteCond %{HTTPS} !=on
|
||||||
|
#RewriteRule ^/resultsdb/admin/?(.*) https://%{SERVER_NAME}/$1 [R,L]
|
||||||
|
|
||||||
|
<Directory /usr/share/resultsdb>
|
||||||
|
WSGIProcessGroup resultsdb
|
||||||
|
WSGIApplicationGroup %{GLOBAL}
|
||||||
|
WSGIScriptReloading On
|
||||||
|
<IfModule mod_authz_core.c>
|
||||||
|
# Apache 2.4
|
||||||
|
Require all granted
|
||||||
|
</IfModule>
|
||||||
|
<IfModule !mod_auth_core.c>
|
||||||
|
Order allow,deny
|
||||||
|
Allow from all
|
||||||
|
</IfModule>
|
||||||
|
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
#Alias /resultsdb/static /var/www/resultsdb/resultsdb/static
|
||||||
|
|
||||||
|
#<Directory /var/www/resultsdb/resultsdb/static>
|
||||||
|
#Order allow,deny
|
||||||
|
#Allow from all
|
||||||
|
#</Directory>
|
|
@ -0,0 +1,6 @@
|
||||||
|
SECRET_KEY = '{{ resultsdb_secret_key }}'
|
||||||
|
SQLALCHEMY_DATABASE_URI = 'postgresql+psycopg2://{{ resultsdb_db_user }}:{{ resultsdb_db_password }}@{{ resultsdb_db_host }}:{{ resultsdb_db_port }}/{{ resultsdb_db_name }}'
|
||||||
|
FILE_LOGGING = False
|
||||||
|
LOGFILR = '/var/log/resultsdb/resultsdb.log'
|
||||||
|
SYSLOG_LOGGING = False
|
||||||
|
STREAM_LOGGING = True
|
15
roles/taskotron/resultsdb-frontend/tasks/main.yml
Normal file
15
roles/taskotron/resultsdb-frontend/tasks/main.yml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
- name: ensure packages required for resultsdb_frontend are installed
|
||||||
|
action: yum name={{ item }} state=latest
|
||||||
|
with_items:
|
||||||
|
- resultsdb_frontend
|
||||||
|
- mod_wsgi
|
||||||
|
|
||||||
|
- name: generate resultsdb_frontend config
|
||||||
|
template: src=settings.py.j2 dest=/etc/resultsdb_frontend/settings.py owner=root group=root mode=0644
|
||||||
|
notify:
|
||||||
|
- restart httpd
|
||||||
|
|
||||||
|
- name: generate resultsdb_frontend apache config
|
||||||
|
template: src=resultsdb_frontend.conf.j2 dest=/etc/httpd/conf.d/resultsdb_frontend.conf owner=root group=root mode=0644
|
||||||
|
notify:
|
||||||
|
- restart httpd
|
|
@ -0,0 +1,6 @@
|
||||||
|
SECRET_KEY = '{{ resultsdb_secret_key }}'
|
||||||
|
SQLALCHEMY_DATABASE_URI = 'postgresql+psycopg2://{{ resultsdb_db_user }}:{{ resultsdb_db_password }}@{{ resultsdb_db_host }}:{{ resultsdb_db_port }}/{{ resultsdb_db_name }}'
|
||||||
|
FILE_LOGGING = False
|
||||||
|
LOGFILR = '/var/log/resultsdb/resultsdb.log'
|
||||||
|
SYSLOG_LOGGING = False
|
||||||
|
STREAM_LOGGING = True
|
|
@ -0,0 +1,30 @@
|
||||||
|
WSGIDaemonProcess resultsdb user=apache group=apache threads=5
|
||||||
|
WSGIScriptAlias {{ resultsdb_endpoint }} /usr/share/resultsdb/resultsdb.wsgi
|
||||||
|
WSGISocketPrefix run/wsgi
|
||||||
|
|
||||||
|
# this isn't the best way to force SSL but it works for now
|
||||||
|
#RewriteEngine On
|
||||||
|
#RewriteCond %{HTTPS} !=on
|
||||||
|
#RewriteRule ^/resultsdb/admin/?(.*) https://%{SERVER_NAME}/$1 [R,L]
|
||||||
|
|
||||||
|
<Directory /usr/share/resultsdb>
|
||||||
|
WSGIProcessGroup resultsdb
|
||||||
|
WSGIApplicationGroup %{GLOBAL}
|
||||||
|
WSGIScriptReloading On
|
||||||
|
<IfModule mod_authz_core.c>
|
||||||
|
# Apache 2.4
|
||||||
|
Require all granted
|
||||||
|
</IfModule>
|
||||||
|
<IfModule !mod_auth_core.c>
|
||||||
|
Order allow,deny
|
||||||
|
Allow from all
|
||||||
|
</IfModule>
|
||||||
|
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
#Alias /resultsdb/static /var/www/resultsdb/resultsdb/static
|
||||||
|
|
||||||
|
#<Directory /var/www/resultsdb/resultsdb/static>
|
||||||
|
#Order allow,deny
|
||||||
|
#Allow from all
|
||||||
|
#</Directory>
|
|
@ -0,0 +1,31 @@
|
||||||
|
WSGIDaemonProcess resultsdb_frontend user=apache group=apache threads=5
|
||||||
|
WSGIScriptAlias {{ resultsdb_fe_endpoint }} /usr/share/resultsdb_frontend/resultsdb_frontend.wsgi
|
||||||
|
WSGISocketPrefix run/wsgi
|
||||||
|
|
||||||
|
# this isn't the best way to force SSL but it works for now
|
||||||
|
#RewriteEngine On
|
||||||
|
#RewriteCond %{HTTPS} !=on
|
||||||
|
#RewriteRule ^/resultsdb_frontend/admin/?(.*) https://%{SERVER_NAME}/$1 [R,L]
|
||||||
|
|
||||||
|
<Directory /usr/share/resultsdb_frontend>
|
||||||
|
WSGIProcessGroup resultsdb_frontend
|
||||||
|
WSGIApplicationGroup %{GLOBAL}
|
||||||
|
WSGIScriptReloading On
|
||||||
|
<IfModule mod_authz_core.c>
|
||||||
|
# Apache 2.4
|
||||||
|
Require all granted
|
||||||
|
</IfModule>
|
||||||
|
<IfModule !mod_auth_core.c>
|
||||||
|
Order allow,deny
|
||||||
|
Allow from all
|
||||||
|
</IfModule>
|
||||||
|
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
#Alias /resultsdb_frontend/static /var/www/resultsdb_frontend/resultsdb_frontend/static
|
||||||
|
|
||||||
|
#<Directory /var/www/resultsdb_frontend/resultsdb_frontend/static>
|
||||||
|
#Order allow,deny
|
||||||
|
#Allow from all
|
||||||
|
#</Directory>
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
# while you can use this as a template, we recommend that you use the blockerbugs
|
||||||
|
# cli to generate a config file
|
||||||
|
#RDB_URL = 'http://{{ hostname }}/{{ resultsdb_endpoint }}/api/v1.0'
|
||||||
|
RDB_URL = 'http://localhost/{{ resultsdb_endpoint }}/api/v1.0'
|
||||||
|
SECRET_KEY = '{{ resultsdb_fe_secret_key }}'
|
||||||
|
FILE_LOGGING = False
|
||||||
|
LOGFILR = '/var/log/resultsdb_frontend/resultsdb_frontend.log'
|
||||||
|
SYSLOG_LOGGING = False
|
||||||
|
STREAM_LOGGING = True
|
Loading…
Add table
Add a link
Reference in a new issue