diff --git a/inventory/group_vars/sundries b/inventory/group_vars/sundries
index 556898d3fb..d511388d57 100644
--- a/inventory/group_vars/sundries
+++ b/inventory/group_vars/sundries
@@ -14,4 +14,4 @@ fas_client_groups: sysadmin-noc,fi-apprentice
master_sundries_node: False
# A host group for rsync config
-host_group: sundries
+rsync_group: sundries
diff --git a/inventory/group_vars/sundries-stg b/inventory/group_vars/sundries-stg
index 556898d3fb..d511388d57 100644
--- a/inventory/group_vars/sundries-stg
+++ b/inventory/group_vars/sundries-stg
@@ -14,4 +14,4 @@ fas_client_groups: sysadmin-noc,fi-apprentice
master_sundries_node: False
# A host group for rsync config
-host_group: sundries
+rsync_group: sundries
diff --git a/inventory/inventory b/inventory/inventory
index d0e462c884..57baee16de 100644
--- a/inventory/inventory
+++ b/inventory/inventory
@@ -219,7 +219,7 @@ download02.phx2.fedoraproject.org
download03.phx2.fedoraproject.org
download04.phx2.fedoraproject.org
download05.phx2.fedoraproject.org
-download06.phx2.fedoraproject.org
+#download06.phx2.fedoraproject.org
download07.phx2.fedoraproject.org
download08.phx2.fedoraproject.org
download09.phx2.fedoraproject.org
diff --git a/playbooks/groups/sundries.yml b/playbooks/groups/sundries.yml
index bdbb6970ff..8ece5d631d 100644
--- a/playbooks/groups/sundries.yml
+++ b/playbooks/groups/sundries.yml
@@ -47,6 +47,7 @@
- role: fedora_owner_change
when: master_sundries_node
- rsyncd
+ - mirrormanager/frontend
tasks:
- include: "{{ tasks }}/hosts.yml"
diff --git a/roles/download/tasks/main.yml b/roles/download/tasks/main.yml
index 746520ac8a..35b7fd8ffc 100644
--- a/roles/download/tasks/main.yml
+++ b/roles/download/tasks/main.yml
@@ -36,13 +36,13 @@
command: semanage fcontext -a -t httpd_sys_content_t "/srv/pub(/.*)?"
- name: Copy wildcard cert from puppet private
- copy: src="{{puppet_private}}/httpd/wildcard-2014.fedoraproject.org.cert" dest=/etc/pki/tls/certs/wildcard-2014.fedoraproject.org.cert owner=root group=root mode=0600
+ copy: src="{{puppet_private}}/httpd/wildcard-2014.fedoraproject.org.cert" dest=/etc/pki/tls/certs/wildcard-2014.fedoraproject.org.cert owner=root group=root mode=0644
- name: Copy wildcard key from puppet private
copy: src="{{puppet_private}}/httpd/wildcard-2014.fedoraproject.org.key" dest=/etc/pki/tls/private/wildcard-2014.fedoraproject.org.key owner=root group=root mode=0600
- name: Copy intermediate wildcard cert from puppet private
- copy: src="{{puppet_private}}/httpd/wildcard-2014.fedoraproject.org.intermediate.cert" dest=/etc/pki/tls/certs/wildcard-2014.fedoraproject.org.intermediate.cert owner=root group=root mode=0600
+ copy: src="{{puppet_private}}/httpd/wildcard-2014.fedoraproject.org.intermediate.cert" dest=/etc/pki/tls/certs/wildcard-2014.fedoraproject.org.intermediate.cert owner=root group=root mode=0644
- name: Configure httpd dl main conf
copy: src=httpd/dl.fedoraproject.org.conf dest=/etc/httpd/conf.d/dl.fedoraproject.org.conf
diff --git a/roles/easyfix/tasks/main.yml b/roles/easyfix/tasks/main.yml
index 12c9ff90fc..ec79a6f41c 100644
--- a/roles/easyfix/tasks/main.yml
+++ b/roles/easyfix/tasks/main.yml
@@ -57,6 +57,6 @@
- name: Install the easyfix cronjob
copy: >
src=easyfix.cron dest=/etc/cron.d/easyfix.cron
- owner=root group=root mode=0755
+ owner=root group=root mode=0644
tags:
- files
diff --git a/roles/fedmsg/base/templates/endpoints.py.j2 b/roles/fedmsg/base/templates/endpoints.py.j2
index 4c85c13ada..6fffebe29b 100644
--- a/roles/fedmsg/base/templates/endpoints.py.j2
+++ b/roles/fedmsg/base/templates/endpoints.py.j2
@@ -98,9 +98,6 @@ config = dict(
for i in range(32)
],
{% endif %}
- "busmon_consumers.busgateway01": [
- "tcp://busgateway01.%s:3000" % suffix,
- ],
{% if env != 'staging' %}
"supybot.value03": [
"tcp://value03.%s:3000" % suffix,
diff --git a/roles/fedmsg/base/templates/ssl.py.j2 b/roles/fedmsg/base/templates/ssl.py.j2
index 26823d5c16..0952ee11d6 100644
--- a/roles/fedmsg/base/templates/ssl.py.j2
+++ b/roles/fedmsg/base/templates/ssl.py.j2
@@ -86,7 +86,6 @@ config = dict(
("ftpsync.relepel01", "ftpsync-relepel01.%s" % suffix),
("ftpsync.releng04", "ftpsync-releng04.%s" % suffix),
] + [
- ("busmon_consumers.busgateway01", "busmon-busgateway01.%s" % suffix),
("shell.busgateway01", "shell-busgateway01.%s" % suffix),
] + [
("shell.value01", "shell-value01.%s" % suffix),
diff --git a/roles/fedora_owner_change/tasks/main.yml b/roles/fedora_owner_change/tasks/main.yml
index 822bd4029e..c5d06a8627 100644
--- a/roles/fedora_owner_change/tasks/main.yml
+++ b/roles/fedora_owner_change/tasks/main.yml
@@ -23,6 +23,6 @@
- name: Install the fedora-owner-change cronjob
copy: >
src=fedora-owner-change.cron dest=/etc/cron.d/fedora-owner-change.cron
- owner=root group=root mode=0755
+ owner=root group=root mode=0644
tags:
- files
diff --git a/roles/mirrormanager/frontend/files/mirrormanager-app.conf b/roles/mirrormanager/frontend/files/mirrormanager-app.conf
new file mode 100644
index 0000000000..9aa2c2c1e0
--- /dev/null
+++ b/roles/mirrormanager/frontend/files/mirrormanager-app.conf
@@ -0,0 +1,35 @@
+Alias /mirrormanager/static /usr/share/mirrormanager/server/mirrormanager/static
+Alias /mirrormanager/crawler /var/log/mirrormanager/crawler
+
+WSGISocketPrefix /var/run/mirrormanager/wsgi
+WSGIRestrictSignal Off
+
+WSGIDaemonProcess mirrormanager user=mirrormanager group=mirrormanager display-name=mirrormanager maximum-requests=1000 processes=4 threads=1 umask=0007
+WSGIPythonOptimize 1
+
+WSGIScriptAlias /mirrormanager /usr/share/mirrormanager/server/mirrormanager.wsgi/mirrormanager
+
+
+ WSGIProcessGroup mirrormanager
+
+ # Apache 2.4
+ Require all granted
+
+
+ # Apache 2.2
+ Order deny,allow
+ Allow from all
+
+
+
+
+
+ # Apache 2.4
+ Require all granted
+
+
+ # Apache 2.2
+ Order deny,allow
+ Allow from all
+
+
diff --git a/roles/mirrormanager/frontend/meta/main.yml b/roles/mirrormanager/frontend/meta/main.yml
new file mode 100644
index 0000000000..4590c3dc7f
--- /dev/null
+++ b/roles/mirrormanager/frontend/meta/main.yml
@@ -0,0 +1,3 @@
+---
+dependencies:
+ - { role: mirrormanager/package }
diff --git a/roles/mirrormanager/frontend/tasks/main.yml b/roles/mirrormanager/frontend/tasks/main.yml
new file mode 100644
index 0000000000..7ed2b992a9
--- /dev/null
+++ b/roles/mirrormanager/frontend/tasks/main.yml
@@ -0,0 +1,19 @@
+---
+# tasklist for setting up the mirrormanager app components
+
+- name: set sebooleans so mirrormanager can connect to its db
+ action: seboolean name=httpd_can_network_connect_db
+ state=true
+ persistent=true
+
+- name: install /etc/httpd/conf.d/mirrormanager-app.conf
+ copy: >
+ src="mirrormanager-app.conf"
+ dest="/etc/httpd/conf.d/mirrormanager.conf"
+ owner=root
+ group=root
+ mode=0644
+ notify:
+ - restart httpd
+ tags:
+ - config
diff --git a/roles/mirrormanager/package/tasks/main.yml b/roles/mirrormanager/package/tasks/main.yml
new file mode 100644
index 0000000000..7e775cd6af
--- /dev/null
+++ b/roles/mirrormanager/package/tasks/main.yml
@@ -0,0 +1,69 @@
+---
+# tasklist for setting up the mirrormanager package components
+
+- name: set sebooleans so mirrormanager can read its homedir
+ action: seboolean name=httpd_enable_homedirs
+ state=true
+ persistent=true
+
+- name: add mirrormanager group - gid 441
+ group: name=mirrormanager gid=441
+
+- name: add mirrors group - gid 263
+ group: name=mirrors gid=263
+
+- name: add mirrors2 group - gid 529
+ group: name=mirrors2 gid=529
+
+- name: add mirrormanager user - uid 441
+ user: >
+ name=mirrormanager
+ uid=441
+ group=mirrormanager
+ groups=mirrors,mirrors2,apache
+ state=present
+ home=/home/mirrormanager
+ createhome=yes
+ shell=/bin/bash
+
+- name: install mirrormanager package
+ yum: pkg={{ item }} state=installed
+ with_items:
+ - mirrormanager
+ tags:
+ - packages
+
+- name: install /etc/mirrormanager/prod.cfg
+ template: >
+ src="mirrormanager-prod.cfg.j2"
+ dest="/etc/mirrormanager/prod.cfg"
+ owner=mirrormanager
+ group=mirrormanager
+ mode=0600
+ notify:
+ - restart httpd
+ tags:
+ - config
+
+- name: setup mirrormanager directories
+ file: path="{{ item }}" owner=mirrormanager group=mirrormanager mode=0755 state=directory
+ with_items:
+ - /var/lock/mirrormanager
+ - /var/lib/mirrormanager
+ - /var/run/mirrormanager
+ - /var/log/mirrormanager
+ - /var/log/mirrormanager/crawler
+ - /home/mirrormanager
+ tags:
+ - config
+
+- name: setup /home/mirrormanager/.ssh directory
+ copy: >
+ src="{{ puppet_private }}/mirrormanager/"
+ dest="/home/mirrormanager/.ssh"
+ directory_mode=yes
+ owner=mirrormanager
+ group=mirrormanager
+ mode=0700
+ tags:
+ - config
diff --git a/roles/mirrormanager/package/templates/mirrormanager-prod.cfg.j2 b/roles/mirrormanager/package/templates/mirrormanager-prod.cfg.j2
new file mode 100644
index 0000000000..07f713fae4
--- /dev/null
+++ b/roles/mirrormanager/package/templates/mirrormanager-prod.cfg.j2
@@ -0,0 +1,131 @@
+[global]
+# This is where all of your settings go for your development environment
+# Settings that are the same for both development and production
+# (such as template engine, encodings, etc.) all go in
+# mirrormanager/config/app.cfg
+
+# pick the form for your database
+# sqlobject.dburi="postgres://username@hostname/databasename"
+# sqlobject.dburi="mysql://username:password@hostname:port/databasename"
+# sqlobject.dburi="sqlite:///file_name_and_path"
+
+# If you have sqlite, here's a simple default to get you started
+# in development
+#sqlobject.dburi="postgres://mirrormanager@127.0.0.1/mirrormanager"
+
+# This is for local development purposes. It won't be used for
+# production.
+{% if env == "staging" %}
+sqlobject.dburi="notrans_postgres://mirroradmin:{{ mirrorPassword }}@db-mirrormanager.stg:5432/mirrormanager"
+{% else %}
+sqlobject.dburi="notrans_postgres://mirroradmin:{{ mirrorPassword }}@db-mirrormanager:5432/mirrormanager"
+{% endif %}
+
+# if you are using a database or table type without transactions
+# (MySQL default, for example), you should turn off transactions
+# by prepending notrans_ on the uri
+# sqlobject.dburi="notrans_mysql://username:password@hostname:port/databasename"
+
+# for Windows users, sqlite URIs look like:
+# sqlobject.dburi="sqlite:///drive_letter:/path/to/file"
+
+# SERVER
+
+# Some server parameters that you may want to tweak
+# running as a WSGI under apache. This is used by TG when it generates a redirect.
+server.socket_port=80
+
+server.socket_timeout = 60
+server.thread_pool = 50
+server.socket_queue_size = 30
+
+# Enable the debug output at the end on pages.
+# log_debug_info_filter.on = False
+
+server.environment="production"
+server.webpath="/mirrormanager"
+autoreload.package="mirrormanager"
+
+# session_filter.on = True
+
+# Set to True if you'd like to abort execution if a controller gets an
+# unexpected parameter. False by default
+tg.strict_parameters = True
+tg.ignore_parameters = ["_csrf_token"]
+
+##############################
+# Fedora Account System config
+fas.url = 'https://admin.fedoraproject.org/accounts/'
+identity.provider='jsonfas2'
+identity.saprovider.model.visit="fedora.accounts.tgfas.VisitIdentity"
+visit.manager="jsonfas2"
+visit.saprovider.model="fedora.accounts.tgfas.Visit"
+visit.cookie.secure = True
+visit.cookie.httponly = True
+
+mirrormanager.admin_group = 'sysadmin-web'
+mirrormanager.max_stale_days = 2
+mirrormanager.max_propogation_days = 1
+mirrormanager.report_problems_to_email = 'mirror-admin at fedoraproject.org'
+
+##############################
+# update-master-directory-list category list and master locations
+# be very careful here. Trailing slashes on url directory names are necessary.
+umdl.master_directories = ''' [
+ { 'type':'directory', 'path':'/pub/fedora/linux/', 'category':'Fedora Linux' },
+ { 'type':'directory', 'path':'/pub/archive/', 'category':'Fedora Archive' },
+ { 'type':'directory', 'path':'/pub/epel/', 'category':'Fedora EPEL' },
+ { 'type':'directory', 'path':'/pub/fedora-secondary/', 'category':'Fedora Secondary Arches' },
+ { 'type':'directory', 'path':'/pub/alt/', 'category':'Fedora Other',
+ 'excludes':['.*/stage$']},
+ { 'type':'directory', 'path':'/pub/redhat/rhel/', 'category':'RHEL' },
+ ] '''
+
+# manage-repo-redirects (mrr) repository definition
+# this can be used to define a repository redirect
+# for example from an upcoming release to the current development tree
+mrr.repos = ''' {
+ 'fedora-%s':'rawhide',
+ 'fedora-debug-%s':'rawhide-debug',
+ 'fedora-source-%s':'rawhide-source',
+ 'updates-released-f%s':'rawhide',
+ 'updates-released-debug-f%s':'rawhide-debug',
+ 'updates-released-source-f%s':'rawhide-source',
+ 'updates-testing-f%s':'rawhide',
+ 'updates-testing-debug-f%s':'rawhide-debug',
+ 'updates-testing-source-f%s':'rawhide-source'
+ } '''
+
+base_url_filter.on = True
+{% if env == "staging" %}
+base_url_filter.base_url = "https://admin.stg.fedoraproject.org"
+{% else %}
+base_url_filter.base_url = "https://admin.fedoraproject.org"
+{% endif %}
+base_url_filter.use_x_forwarded_host = False
+
+[/xmlrpc]
+xmlrpc_filter.on = True
+
+# LOGGING
+# Logging configuration generally follows the style of the standard
+# Python logging module configuration. Note that when specifying
+# log format messages, you need to use *() for formatting variables.
+# Deployment independent log configuration is in mirrormanager/config/log.cfg
+[logging]
+
+[[loggers]]
+[[[mirrormanager]]]
+level='DEBUG'
+qualname='mirrormanager'
+handlers=['debug_out']
+
+[[[allinfo]]]
+level='INFO'
+handlers=['debug_out']
+
+[[[access]]]
+level='WARN'
+qualname='turbogears.access'
+handlers=['access_out']
+propagate=0
diff --git a/roles/rsyncd/tasks/main.yml b/roles/rsyncd/tasks/main.yml
index ea195925d9..e43f49bf01 100644
--- a/roles/rsyncd/tasks/main.yml
+++ b/roles/rsyncd/tasks/main.yml
@@ -19,6 +19,7 @@
- "{{ rsyncd_conf }}"
- rsyncd.conf.{{ ansible_fqdn }}
- rsyncd.conf.{{ host_group }}
+ - rsyncd.conf.{{ rsync_group }}
- rsyncd.conf.default
notify:
- restart xinetd
@@ -31,6 +32,7 @@
- "{{ rsync }}"
- rsync.{{ ansible_fqdn }}
- rsync.{{ host_group }}
+ - rsync.{{ rsync_group }}
- rsync.default
notify:
- restart xinetd
@@ -41,3 +43,9 @@
service: name=xinetd state=started
tags:
- services
+
+- name: set sebooleans so rsync can read dirs
+ action: seboolean name=rsync_export_all_ro
+ state=true
+ persistent=true
+