mirror of
https://pagure.io/fedora-infra/ansible.git
synced 2026-02-03 05:03:34 +08:00
Compare commits
1 Commits
letsencryp
...
easyfix
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8fc4efe824 |
@@ -9,7 +9,7 @@ Playbook naming
|
||||
===============
|
||||
The top level playbooks directory should contain:
|
||||
|
||||
* Playbooks that are generic and used by several groups/hosts playbooks
|
||||
* Playbooks that are generic and used by serveral groups/hosts playbooks
|
||||
* Playbooks used for utility purposes from command line
|
||||
* Groups and Hosts subdirs.
|
||||
|
||||
@@ -95,7 +95,7 @@ We would like to get ansible running over hosts in an automated way.
|
||||
A git hook could do this.
|
||||
|
||||
* On commit:
|
||||
If we have a way to determine exactly what hosts are affected by a
|
||||
If we have a way to detemine exactly what hosts are affected by a
|
||||
change we could simply run only on those hosts.
|
||||
|
||||
We might want a short delay (10m) to allow someone to see a problem
|
||||
|
||||
233
README
233
README
@@ -15,26 +15,11 @@ library - library of custom local ansible modules
|
||||
|
||||
playbooks - collections of plays we want to run on systems
|
||||
|
||||
groups: groups of hosts configured from one playbook.
|
||||
|
||||
hosts: playbooks for single hosts.
|
||||
|
||||
manual: playbooks that are only run manually by an admin as needed.
|
||||
|
||||
tasks - snippets of tasks that should be included in plays
|
||||
|
||||
roles - specific roles to be use in playbooks.
|
||||
Each role has it's own files/templates/vars
|
||||
|
||||
filter_plugins - Jinja filters
|
||||
|
||||
master.yml - This is the master playbook, consisting of all
|
||||
current group and host playbooks. Note that the
|
||||
daily cron doesn't run this, it runs even over
|
||||
playbooks that are not yet included in master.
|
||||
This playbook is usefull for making changes over
|
||||
multiple groups/hosts usually with -t (tag).
|
||||
|
||||
== Paths ==
|
||||
|
||||
public path for everything is:
|
||||
@@ -49,22 +34,212 @@ In general to run any ansible playbook you will want to run:
|
||||
|
||||
sudo -i ansible-playbook /path/to/playbook.yml
|
||||
|
||||
== Scheduled check-diff ==
|
||||
== Cloud information ==
|
||||
|
||||
Every night a cron job runs over all playbooks under playbooks/{groups}{hosts}
|
||||
with the ansible --check --diff options. A report from this is sent to
|
||||
sysadmin-logs. In the ideal state this report would be empty.
|
||||
cloud instances:
|
||||
to startup a new cloud instance and configure for basic server use run (as
|
||||
root):
|
||||
|
||||
== Idempotency ==
|
||||
el6:
|
||||
sudo -i ansible-playbook /srv/web/infra/ansible/playbooks/el6_temp_instance.yml
|
||||
|
||||
All playbooks should be idempotent. Ie, if run once they should bring the
|
||||
machine(s) to the desired state, and if run again N times after that they should
|
||||
make 0 changes (because the machine(s) are in the desired state).
|
||||
Please make sure your playbooks are idempotent.
|
||||
f19:
|
||||
sudo -i ansible-playbook /srv/web/infra/ansible/playbooks/f19_temp_instance.yml
|
||||
|
||||
== Can be run anytime ==
|
||||
|
||||
When a playbook or change is checked into ansible you should assume
|
||||
that it could be run at ANY TIME. Always make sure the checked in state
|
||||
is the desired state. Always test changes when they land so they don't
|
||||
surprise you later.
|
||||
The -i is important - ansible's tools need access to root's sshagent as well
|
||||
as the cloud credentials to run the above playbooks successfully.
|
||||
|
||||
This will setup a new instance, provision it and email sysadmin-main that
|
||||
the instance was created, it's instance id (for terminating it, attaching
|
||||
volumes, etc) and it's ip address.
|
||||
|
||||
You will then be able to login, as root.
|
||||
|
||||
You can add various extra vars to the above commands to change the instance
|
||||
you've just spun up.
|
||||
|
||||
variables to define:
|
||||
instance_type=c1.medium
|
||||
security_group=default
|
||||
root_auth_users='username1 username2 @groupname'
|
||||
hostbase=basename for hostname - will have instance id appended to it
|
||||
|
||||
|
||||
define these with:
|
||||
|
||||
--extra-vars="varname=value varname1=value varname2=value"
|
||||
|
||||
Name Memory_MB Disk VCPUs
|
||||
m1.tiny 512 0 1
|
||||
m1.small 2048 20 1
|
||||
m1.medium 4096 40 2
|
||||
m1.large 8192 80 4
|
||||
m1.xlarge 16384 160 8
|
||||
m1.builder 5120 50 3
|
||||
|
||||
Setting up a new persistent cloud host:
|
||||
1. select an ip:
|
||||
source /srv/private/ansible/files/openstack/persistent-admin/ec2rc.sh
|
||||
euca-describe-addresses
|
||||
- pick an ip from the list that is not assigned anywhere
|
||||
- add it into dns - normally in the cloud.fedoraproject.org but it doesn't
|
||||
have to be
|
||||
|
||||
2. If needed create a persistent storage disk for the instance:
|
||||
source /srv/private/ansible/files/openstack/persistent-admin/ec2rc.sh
|
||||
euca-create-volume -z nova -s <size in gigabytes>
|
||||
|
||||
|
||||
3. set up the host/ip in ansible host inventory
|
||||
- add to ansible/inventory/inventory under [persistent-cloud]
|
||||
- either the ip itself or the hostname you want to refer to it as
|
||||
|
||||
4. setup the host_vars
|
||||
- create file named by the hostname or ip you used in the inventory
|
||||
- for adding persistent volumes add an entry like this into the host_vars file
|
||||
|
||||
volumes: ['-d /dev/vdb vol-BCA33FCD', '-d /dev/vdc vol-DC833F48']
|
||||
|
||||
for each volume you want to attach to the instance.
|
||||
|
||||
The device names matter - they start at /dev/vdb and increment. However,
|
||||
they are not reliable IN the instance. You should find the device, partition
|
||||
it, format it and label the formatted device then mount the device by label
|
||||
or by UUID. Do not count on the device name being the same each time.
|
||||
|
||||
|
||||
Contents should look like this (remove all the comments)
|
||||
|
||||
---
|
||||
# 2cpus, 3GB of ram 20GB of ephemeral space
|
||||
instance_type: m1.large
|
||||
# image id
|
||||
image: emi-B8793915
|
||||
keypair: fedora-admin
|
||||
# what security group to add the host to
|
||||
security_group: webserver
|
||||
zone: fedoracloud
|
||||
# instance id will be appended
|
||||
hostbase: hostname_base-
|
||||
# ip should be in the 209.132.184.XXX range
|
||||
public_ip: $ip_you_selected
|
||||
# users/groups who should have root ssh access
|
||||
root_auth_users: skvidal bkabrda
|
||||
description: some description so someone else can know what this is
|
||||
|
||||
The available images can be found by running::
|
||||
source /srv/private/ansible/files/openstack/persistent-admin/ec2rc.sh
|
||||
euca-describe-images | grep ami
|
||||
|
||||
4. setup a host playbook ansible/playbooks/hosts/$YOUR_HOSTNAME_HERE.yml
|
||||
Note: the name of this file doesn't really matter but it should normally
|
||||
be the hostname of the host you're setting up.
|
||||
|
||||
- name: check/create instance
|
||||
hosts: $YOUR_HOSTNAME/IP HERE
|
||||
user: root
|
||||
gather_facts: False
|
||||
|
||||
vars_files:
|
||||
- /srv/web/infra/ansible/vars/global.yml
|
||||
- "{{ private }}/vars.yml"
|
||||
|
||||
tasks:
|
||||
- include: "{{ tasks }}/persistent_cloud.yml"
|
||||
|
||||
- name: provision instance
|
||||
hosts: $YOUR_HOSTNAME/IP HERE
|
||||
user: root
|
||||
gather_facts: True
|
||||
|
||||
vars_files:
|
||||
- /srv/web/infra/ansible/vars/global.yml
|
||||
- "{{ private }}/vars.yml"
|
||||
- /srv/web/infra/ansible/vars//{{ ansible_distribution }}.yml
|
||||
|
||||
tasks:
|
||||
- include: "{{ tasks }}/cloud_setup_basic.yml
|
||||
# fill in other actions/includes/etc here
|
||||
|
||||
handlers:
|
||||
- include: "{{ handlers }}/restart_services.yml
|
||||
|
||||
|
||||
5. add/commit the above to the git repo and push your changes
|
||||
|
||||
|
||||
6. set it up:
|
||||
sudo -i ansible-playbook /srv/web/infra/ansible/playbooks/hosts/$YOUR_HOSTNAME_HERE.yml
|
||||
|
||||
7. login, etc
|
||||
|
||||
You should be able to run that playbook over and over again safely, it will
|
||||
only setup/create a new instance if the ip is not up/responding.
|
||||
|
||||
SECURITY GROUPS
|
||||
- to edit security groups you must either have your own cloud account or
|
||||
be a member of sysadmin-main
|
||||
|
||||
This gives you the credential to change things in the persistent tenant
|
||||
- source /srv/private/ansible/files/openstack/persistent-admin/ec2rc.sh
|
||||
|
||||
|
||||
This lists all security groups in that tenant:
|
||||
- euca-describe-groups | grep GROUP
|
||||
|
||||
the output will look like this:
|
||||
euca-describe-groups | grep GROU
|
||||
GROUP d4e664a10e2c4210839150be09c46e5e default default
|
||||
GROUP d4e664a10e2c4210839150be09c46e5e jenkins jenkins instance group
|
||||
GROUP d4e664a10e2c4210839150be09c46e5e logstash logstash security group
|
||||
GROUP d4e664a10e2c4210839150be09c46e5e smtpserver list server group. needs web and smtp
|
||||
GROUP d4e664a10e2c4210839150be09c46e5e webserver webserver security group
|
||||
GROUP d4e664a10e2c4210839150be09c46e5e wideopen wideopen
|
||||
|
||||
|
||||
This lets you list the rules in a specific group:
|
||||
- euca-describe-group groupname
|
||||
|
||||
the output will look like this:
|
||||
|
||||
euca-describe-group wideopen
|
||||
GROUP d4e664a10e2c4210839150be09c46e5e wideopen wideopen
|
||||
PERMISSION d4e664a10e2c4210839150be09c46e5e wideopen ALLOWS tcp 1 65535 FROM CIDR 0.0.0.0/0
|
||||
PERMISSION d4e664a10e2c4210839150be09c46e5e wideopen ALLOWS icmp -1 -1 FROM CIDR 0.0.0.0/0
|
||||
|
||||
|
||||
To create a new group:
|
||||
euca-create-group -d "group description here" groupname
|
||||
|
||||
To add a rule to a group:
|
||||
euca-authorize -P tcp -p 22 groupname
|
||||
euca-authorize -P icmp -t -1:-1 groupname
|
||||
|
||||
To delete a rule from a group:
|
||||
euca-revoke -P tcp -p 22 groupname
|
||||
|
||||
Notes:
|
||||
- Be careful removing or adding rules to existing groups b/c you could be
|
||||
impacting other instances using that security group.
|
||||
|
||||
- You will almost always want to allow 22/tcp (sshd) and icmp -1 -1 (ping
|
||||
and traceroute and friends).
|
||||
|
||||
|
||||
|
||||
|
||||
TERMINATING INSTANCES
|
||||
|
||||
For transient:
|
||||
1. source /srv/private/ansible/files/openstack/transient-admin/ec2rc.sh
|
||||
|
||||
- OR -
|
||||
|
||||
For persistent:
|
||||
1. source /srv/private/ansible/files/openstack/persistent-admin/ec2rc.sh
|
||||
|
||||
2. euca-describe-instances | grep <ip of your instance>
|
||||
|
||||
3. euca-terminate-instances <the id, something like i-00000295>
|
||||
|
||||
|
||||
186
README.cloud
186
README.cloud
@@ -1,186 +0,0 @@
|
||||
== Cloud information ==
|
||||
|
||||
The dashboard for the production cloud instance is:
|
||||
https://fedorainfracloud.org/dashboard/
|
||||
|
||||
You can download credentials via the dashboard (under security and access)
|
||||
|
||||
=== Transient instances ===
|
||||
|
||||
Transient instances are short term use instances for Fedora
|
||||
contributors. They can be terminated at any time and shouldn't be
|
||||
relied on for any production use. If you have an application
|
||||
or longer term item that should always be around
|
||||
please create a persistent playbook instead. (see below)
|
||||
|
||||
to startup a new transient cloud instance and configure for basic
|
||||
server use run (as root):
|
||||
|
||||
sudo -i ansible-playbook /srv/web/infra/ansible/playbooks/transient_cloud_instance.yml -e 'name=somename'
|
||||
|
||||
The -i is important - ansible's tools need access to root's sshagent as well
|
||||
as the cloud credentials to run the above playbooks successfully.
|
||||
|
||||
This will setup a new instance, provision it and email sysadmin-main that
|
||||
the instance was created and it's ip address.
|
||||
|
||||
You will then be able to login, as root if you are in the sysadmin-main group.
|
||||
(If you are making the instance for another user, see below)
|
||||
|
||||
You MUST pass a name to it, ie: -e 'name=somethingdescriptive'
|
||||
You can optionally override defaults by passing any of the following:
|
||||
image=imagename (default is centos70_x86_64)
|
||||
instance_type=some instance type (default is m1.small)
|
||||
root_auth_users='user1 user2 user3 @group1' (default always includes sysadmin-main group)
|
||||
|
||||
Note: if you run this playbook with the same name= multiple times
|
||||
openstack is smart enough to just return the current ip of that instance
|
||||
and go on. This way you can re-run if you want to reconfigure it without
|
||||
reprovisioning it.
|
||||
|
||||
|
||||
Sizes options
|
||||
-------------
|
||||
|
||||
Name Memory_MB Disk VCPUs
|
||||
m1.tiny 512 0 1
|
||||
m1.small 2048 20 1
|
||||
m1.medium 4096 40 2
|
||||
m1.large 8192 80 4
|
||||
m1.xlarge 16384 160 8
|
||||
m1.builder 5120 50 3
|
||||
|
||||
|
||||
=== Persistent cloud instances ===
|
||||
|
||||
Persistent cloud instances are ones that we want to always have up and
|
||||
configured. These are things like dev instances for various applications,
|
||||
proof of concept servers for evaluating something, etc. They will be
|
||||
reprovisioned after a reboot/maint window for the cloud.
|
||||
|
||||
Setting up a new persistent cloud host:
|
||||
|
||||
1) Select an available floating IP
|
||||
|
||||
source /srv/private/ansible/files/openstack/novarc
|
||||
nova floating-ip-list
|
||||
|
||||
Note that an "available floating IP" is one that has only a "-" in the Fixed IP
|
||||
column of the above `nova` command. Ignore the fact that the "Server Id" column
|
||||
is completely blank for all instances. If there are no ip's with -, use:
|
||||
|
||||
nova floating-ip-create
|
||||
|
||||
and retry the list.
|
||||
|
||||
2) Add that IP addr to dns (typically as foo.fedorainfracloud.org)
|
||||
|
||||
3) Create persistent storage disk for the instance (if necessary.. you might not
|
||||
need this).
|
||||
|
||||
nova volume-create --display-name SOME_NAME SIZE_IN_GB
|
||||
|
||||
4) Add to ansible inventory in the persistent-cloud group.
|
||||
You should use the FQDN for this and not the IP. Names are good.
|
||||
|
||||
5) setup the host_vars file. It should looks something like this::
|
||||
|
||||
instance_type: m1.medium
|
||||
image:
|
||||
keypair: fedora-admin-20130801
|
||||
security_group: default # NOTE: security_group MUST contain default.
|
||||
zone: nova
|
||||
tcp_ports: [22, 80, 443]
|
||||
|
||||
inventory_tenant: persistent
|
||||
inventory_instance_name: taiga
|
||||
hostbase: taiga
|
||||
public_ip: 209.132.184.50
|
||||
root_auth_users: ralph maxamillion
|
||||
description: taiga frontend server
|
||||
|
||||
volumes:
|
||||
- volume_id: VOLUME_UUID_GOES_HERE
|
||||
device: /dev/vdc
|
||||
|
||||
cloud_networks:
|
||||
# persistent-net
|
||||
- net-id: "67b77354-39a4-43de-b007-bb813ac5c35f"
|
||||
|
||||
6) setup the host playbook
|
||||
|
||||
7) run the playbook:
|
||||
sudo -i ansible-playbook /srv/web/infra/ansible/playbooks/hosts/$YOUR_HOSTNAME_HERE.yml
|
||||
|
||||
You should be able to run that playbook over and over again safely, it will
|
||||
only setup/create a new instance if the ip is not up/responding.
|
||||
|
||||
=== SECURITY GROUPS ===
|
||||
|
||||
FIXME: needs work for new cloud.
|
||||
|
||||
- to edit security groups you must either have your own cloud account or
|
||||
be a member of sysadmin-main
|
||||
|
||||
This gives you the credential to change things in the persistent tenant
|
||||
- source /srv/private/ansible/files/openstack/persistent-admin/ec2rc.sh
|
||||
|
||||
This lists all security groups in that tenant:
|
||||
- euca-describe-groups | grep GROUP
|
||||
|
||||
the output will look like this:
|
||||
euca-describe-groups | grep GROU
|
||||
GROUP d4e664a10e2c4210839150be09c46e5e default default
|
||||
GROUP d4e664a10e2c4210839150be09c46e5e logstash logstash security group
|
||||
GROUP d4e664a10e2c4210839150be09c46e5e smtpserver list server group. needs web and smtp
|
||||
GROUP d4e664a10e2c4210839150be09c46e5e webserver webserver security group
|
||||
GROUP d4e664a10e2c4210839150be09c46e5e wideopen wideopen
|
||||
|
||||
|
||||
This lets you list the rules in a specific group:
|
||||
- euca-describe-group groupname
|
||||
|
||||
the output will look like this:
|
||||
|
||||
euca-describe-group wideopen
|
||||
GROUP d4e664a10e2c4210839150be09c46e5e wideopen wideopen
|
||||
PERMISSION d4e664a10e2c4210839150be09c46e5e wideopen ALLOWS tcp 1 65535 FROM CIDR 0.0.0.0/0
|
||||
PERMISSION d4e664a10e2c4210839150be09c46e5e wideopen ALLOWS icmp -1 -1 FROM CIDR 0.0.0.0/0
|
||||
|
||||
|
||||
To create a new group:
|
||||
euca-create-group -d "group description here" groupname
|
||||
|
||||
To add a rule to a group:
|
||||
euca-authorize -P tcp -p 22 groupname
|
||||
euca-authorize -P icmp -t -1:-1 groupname
|
||||
|
||||
To delete a rule from a group:
|
||||
euca-revoke -P tcp -p 22 groupname
|
||||
|
||||
Notes:
|
||||
- Be careful removing or adding rules to existing groups b/c you could be
|
||||
impacting other instances using that security group.
|
||||
|
||||
- You will almost always want to allow 22/tcp (sshd) and icmp -1 -1 (ping
|
||||
and traceroute and friends).
|
||||
|
||||
=== TERMINATING INSTANCES ===
|
||||
|
||||
For transient:
|
||||
1. source /srv/private/ansible/files/openstack/novarc
|
||||
|
||||
2. export OS_TENANT_NAME=transient
|
||||
|
||||
2. nova list | grep <ip of your instance or name of your instance>
|
||||
|
||||
3. nova delete <name of instance or ID of instance>
|
||||
|
||||
- OR -
|
||||
|
||||
For persistent:
|
||||
1. source /srv/private/ansible/files/openstack/novarc
|
||||
|
||||
2. nova list | grep <ip of your instance or name of your instance>
|
||||
|
||||
3. nova delete <name of instance or ID of instance>
|
||||
@@ -22,11 +22,6 @@ import pwd
|
||||
import fedmsg
|
||||
import fedmsg.config
|
||||
|
||||
try:
|
||||
from ansible.plugins.callback import CallbackBase
|
||||
except ImportError:
|
||||
# Ansible v1 compat
|
||||
CallbackBase = object
|
||||
|
||||
def getlogin():
|
||||
try:
|
||||
@@ -36,10 +31,10 @@ def getlogin():
|
||||
return user
|
||||
|
||||
|
||||
class CallbackModule(CallbackBase):
|
||||
class CallbackModule(object):
|
||||
""" Publish playbook starts and stops to fedmsg. """
|
||||
|
||||
playbook_path = None
|
||||
playbook = None
|
||||
|
||||
def __init__(self):
|
||||
config = fedmsg.config.load_config()
|
||||
@@ -48,14 +43,7 @@ class CallbackModule(CallbackBase):
|
||||
cert_prefix='shell',
|
||||
active=True,
|
||||
))
|
||||
# It seems like recursive playbooks call this over and over again and
|
||||
# fedmsg doesn't like to be initialized more than once. So, here, just
|
||||
# catch that and ignore it.
|
||||
try:
|
||||
fedmsg.init(**config)
|
||||
except ValueError:
|
||||
pass
|
||||
|
||||
fedmsg.init(**config)
|
||||
|
||||
def playbook_on_play_start(self, pattern):
|
||||
# This gets called once for each play.. but we just issue a message once
|
||||
@@ -69,7 +57,7 @@ class CallbackModule(CallbackBase):
|
||||
if play.playbook.check:
|
||||
return
|
||||
|
||||
if not self.playbook_path:
|
||||
if not self.playbook:
|
||||
fedmsg.publish(
|
||||
modname="ansible", topic="playbook.start",
|
||||
msg=dict(
|
||||
@@ -81,17 +69,17 @@ class CallbackModule(CallbackBase):
|
||||
check=play.playbook.check,
|
||||
),
|
||||
)
|
||||
self.playbook_path = path
|
||||
self.playbook = path
|
||||
|
||||
def playbook_on_stats(self, stats):
|
||||
if not self.playbook_path:
|
||||
if not self.playbook:
|
||||
return
|
||||
|
||||
results = dict([(h, stats.summarize(h)) for h in stats.processed])
|
||||
fedmsg.publish(
|
||||
modname="ansible", topic="playbook.complete",
|
||||
msg=dict(
|
||||
playbook=self.playbook_path,
|
||||
playbook=self.playbook,
|
||||
userid=getlogin(),
|
||||
results=results,
|
||||
),
|
||||
|
||||
@@ -1,116 +0,0 @@
|
||||
# (C) 2012, Michael DeHaan, <michael.dehaan@gmail.com>
|
||||
# based on the log_plays example
|
||||
# skvidal@fedoraproject.org
|
||||
# rbean@redhat.com
|
||||
|
||||
# Ansible is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Ansible is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import os
|
||||
import pwd
|
||||
|
||||
import fedmsg
|
||||
import fedmsg.config
|
||||
|
||||
try:
|
||||
from ansible.plugins.callback import CallbackBase
|
||||
except ImportError:
|
||||
# Ansible v1 compat
|
||||
CallbackBase = object
|
||||
|
||||
try:
|
||||
from ansible.utils.hashing import secure_hash
|
||||
except ImportError:
|
||||
from ansible.utils import md5 as secure_hash
|
||||
|
||||
def getlogin():
|
||||
try:
|
||||
user = os.getlogin()
|
||||
except OSError, e:
|
||||
user = pwd.getpwuid(os.geteuid())[0]
|
||||
return user
|
||||
|
||||
|
||||
class CallbackModule(CallbackBase):
|
||||
""" Publish playbook starts and stops to fedmsg. """
|
||||
|
||||
CALLBACK_NAME = 'fedmsg_callback2'
|
||||
CALLBACK_TYPE = 'notification'
|
||||
CALLBACK_VERSION = 2.0
|
||||
CALLBACK_NEEDS_WHITELIST = True
|
||||
|
||||
playbook_path = None
|
||||
|
||||
def __init__(self):
|
||||
config = fedmsg.config.load_config()
|
||||
config.update(dict(
|
||||
name='relay_inbound',
|
||||
cert_prefix='shell',
|
||||
active=True,
|
||||
))
|
||||
# It seems like recursive playbooks call this over and over again and
|
||||
# fedmsg doesn't like to be initialized more than once. So, here, just
|
||||
# catch that and ignore it.
|
||||
try:
|
||||
fedmsg.init(**config)
|
||||
except ValueError:
|
||||
pass
|
||||
self.play = None
|
||||
self.playbook = None
|
||||
|
||||
super(CallbackModule, self).__init__()
|
||||
|
||||
def set_play_context(self, play_context):
|
||||
self.play_context = play_context
|
||||
|
||||
def v2_playbook_on_start(self, playbook):
|
||||
self.playbook = playbook
|
||||
|
||||
def v2_playbook_on_play_start(self, play):
|
||||
# This gets called once for each play.. but we just issue a message once
|
||||
# for the first one. One per "playbook"
|
||||
if self.playbook:
|
||||
# figure out where the playbook FILE is
|
||||
path = os.path.abspath(self.playbook._file_name)
|
||||
|
||||
# Bail out early without publishing if we're in --check mode
|
||||
if self.play_context.check_mode:
|
||||
return
|
||||
|
||||
if not self.playbook_path:
|
||||
fedmsg.publish(
|
||||
modname="ansible", topic="playbook.start",
|
||||
msg=dict(
|
||||
playbook=path,
|
||||
userid=getlogin(),
|
||||
extra_vars=play._variable_manager.extra_vars,
|
||||
inventory=play._variable_manager._inventory._sources,
|
||||
playbook_checksum=secure_hash(path),
|
||||
check=self.play_context.check_mode,
|
||||
),
|
||||
)
|
||||
self.playbook_path = path
|
||||
|
||||
def v2_playbook_on_stats(self, stats):
|
||||
if not self.playbook_path:
|
||||
return
|
||||
|
||||
results = dict([(h, stats.summarize(h)) for h in stats.processed])
|
||||
fedmsg.publish(
|
||||
modname="ansible", topic="playbook.complete",
|
||||
msg=dict(
|
||||
playbook=self.playbook_path,
|
||||
userid=getlogin(),
|
||||
results=results,
|
||||
),
|
||||
)
|
||||
@@ -15,20 +15,12 @@
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from __future__ import absolute_import
|
||||
|
||||
import os
|
||||
import time
|
||||
import json
|
||||
import pwd
|
||||
from ansible import utils
|
||||
|
||||
try:
|
||||
from ansible.plugins.callback import CallbackBase
|
||||
except ImportError:
|
||||
# Ansible v1 compat
|
||||
CallbackBase = object
|
||||
|
||||
TIME_FORMAT="%b %d %Y %H:%M:%S"
|
||||
|
||||
MSG_FORMAT="%(now)s\t%(count)s\t%(category)s\t%(name)s\t%(data)s\n"
|
||||
@@ -100,7 +92,7 @@ class LogMech(object):
|
||||
res['task_args'] = task.module_args
|
||||
if self.playbook_id == 'ansible-cmd':
|
||||
res['task_userid'] = getlogin()
|
||||
for k in ("delegate_to", "environment", "with_first_found",
|
||||
for k in ("delegate_to", "environment", "first_available_file",
|
||||
"local_action", "notified_by", "notify",
|
||||
"register", "sudo", "sudo_user", "tags",
|
||||
"transport", "when"):
|
||||
@@ -146,13 +138,7 @@ class LogMech(object):
|
||||
elif self.play_info.get('check', False):
|
||||
category = 'CHECK:' + category
|
||||
|
||||
# Sometimes this is None.. othertimes it's fine. Othertimes it has
|
||||
# trailing whitespace that kills logview. Strip that, when possible.
|
||||
if name:
|
||||
name = name.strip()
|
||||
|
||||
sanitize_host = host.replace(' ', '_').replace('>', '-')
|
||||
fd = open(self.logpath_play + '/' + sanitize_host + '.log', 'a')
|
||||
fd = open(self.logpath_play + '/' + host + '.log', 'a')
|
||||
now = time.strftime(TIME_FORMAT, time.localtime())
|
||||
fd.write(MSG_FORMAT % dict(now=now, name=name, count=count, category=category, data=json.dumps(data)))
|
||||
fd.close()
|
||||
@@ -160,15 +146,10 @@ class LogMech(object):
|
||||
|
||||
logmech = LogMech()
|
||||
|
||||
class CallbackModule(CallbackBase):
|
||||
class CallbackModule(object):
|
||||
"""
|
||||
logs playbook results, per host, in /var/log/ansible/hosts
|
||||
"""
|
||||
CALLBACK_NAME = 'logdetail'
|
||||
CALLBACK_TYPE = 'notification'
|
||||
CALLBACK_VERSION = 2.0
|
||||
CALLBACK_NEEDS_WHITELIST = True
|
||||
|
||||
def __init__(self):
|
||||
self._task_count = 0
|
||||
self._play_count = 0
|
||||
|
||||
@@ -1,278 +0,0 @@
|
||||
# (C) 2012, Michael DeHaan, <michael.dehaan@gmail.com>
|
||||
# based on the log_plays example
|
||||
# skvidal@fedoraproject.org
|
||||
|
||||
# Ansible is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Ansible is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from __future__ import absolute_import
|
||||
|
||||
import os
|
||||
import time
|
||||
import json
|
||||
import pwd
|
||||
|
||||
try:
|
||||
from ansible.utils.hashing import secure_hash
|
||||
except ImportError:
|
||||
from ansible.utils import md5 as secure_hash
|
||||
|
||||
try:
|
||||
from ansible.plugins.callback import CallbackBase
|
||||
except ImportError:
|
||||
# Ansible v1 compat
|
||||
CallbackBase = object
|
||||
|
||||
TIME_FORMAT="%b %d %Y %H:%M:%S"
|
||||
|
||||
MSG_FORMAT="%(now)s\t%(count)s\t%(category)s\t%(name)s\t%(data)s\n"
|
||||
|
||||
LOG_PATH = '/var/log/ansible'
|
||||
|
||||
def getlogin():
|
||||
try:
|
||||
user = os.getlogin()
|
||||
except OSError, e:
|
||||
user = pwd.getpwuid(os.geteuid())[0]
|
||||
return user
|
||||
|
||||
class LogMech(object):
|
||||
def __init__(self):
|
||||
self.started = time.time()
|
||||
self.pid = str(os.getpid())
|
||||
self._pb_fn = None
|
||||
self._last_task_start = None
|
||||
self.play_info = {}
|
||||
self.logpath = LOG_PATH
|
||||
if not os.path.exists(self.logpath):
|
||||
try:
|
||||
os.makedirs(self.logpath, mode=0750)
|
||||
except OSError, e:
|
||||
if e.errno != 17:
|
||||
raise
|
||||
|
||||
# checksum of full playbook?
|
||||
|
||||
@property
|
||||
def playbook_id(self):
|
||||
if self._pb_fn:
|
||||
return os.path.basename(self._pb_fn).replace('.yml', '').replace('.yaml', '')
|
||||
else:
|
||||
return "ansible-cmd"
|
||||
|
||||
@playbook_id.setter
|
||||
def playbook_id(self, value):
|
||||
self._pb_fn = value
|
||||
|
||||
@property
|
||||
def logpath_play(self):
|
||||
# this is all to get our path to look nice ish
|
||||
tstamp = time.strftime('%Y/%m/%d/%H.%M.%S', time.localtime(self.started))
|
||||
path = os.path.normpath(self.logpath + '/' + self.playbook_id + '/' + tstamp + '/')
|
||||
|
||||
if not os.path.exists(path):
|
||||
try:
|
||||
os.makedirs(path)
|
||||
except OSError, e:
|
||||
if e.errno != 17: # if it is not dir exists then raise it up
|
||||
raise
|
||||
|
||||
return path
|
||||
|
||||
def play_log(self, content):
|
||||
# record out playbook.log
|
||||
# include path to playbook, checksums, user running playbook
|
||||
# any args we can get back from the invocation
|
||||
fd = open(self.logpath_play + '/' + 'playbook-' + self.pid + '.info', 'a')
|
||||
fd.write('%s\n' % content)
|
||||
fd.close()
|
||||
|
||||
def task_to_json(self, task):
|
||||
res = {}
|
||||
res['task_name'] = task.name
|
||||
res['task_module'] = task.action
|
||||
res['task_args'] = task.args
|
||||
if self.playbook_id == 'ansible-cmd':
|
||||
res['task_userid'] = getlogin()
|
||||
for k in ("delegate_to", "environment", "with_first_found",
|
||||
"local_action", "notified_by", "notify",
|
||||
"register", "sudo", "sudo_user", "tags",
|
||||
"transport", "when"):
|
||||
v = getattr(task, k, None)
|
||||
if v:
|
||||
res['task_' + k] = v
|
||||
|
||||
return res
|
||||
|
||||
def log(self, host, category, data, task=None, count=0):
|
||||
if not host:
|
||||
host = 'HOSTMISSING'
|
||||
|
||||
if type(data) == dict:
|
||||
name = data.get('module_name',None)
|
||||
else:
|
||||
name = "unknown"
|
||||
|
||||
|
||||
# we're in setup - move the invocation info up one level
|
||||
if 'invocation' in data:
|
||||
invoc = data['invocation']
|
||||
if not name and 'module_name' in invoc:
|
||||
name = invoc['module_name']
|
||||
|
||||
#don't add this since it can often contain complete passwords :(
|
||||
del(data['invocation'])
|
||||
|
||||
if task:
|
||||
name = task.name
|
||||
data['task_start'] = self._last_task_start
|
||||
data['task_end'] = time.time()
|
||||
data.update(self.task_to_json(task))
|
||||
|
||||
if 'task_userid' not in data:
|
||||
data['task_userid'] = getlogin()
|
||||
|
||||
if category == 'OK' and data.get('changed', False):
|
||||
category = 'CHANGED'
|
||||
|
||||
if self.play_info.get('check', False) and self.play_info.get('diff', False):
|
||||
category = 'CHECK_DIFF:' + category
|
||||
elif self.play_info.get('check', False):
|
||||
category = 'CHECK:' + category
|
||||
|
||||
# Sometimes this is None.. othertimes it's fine. Othertimes it has
|
||||
# trailing whitespace that kills logview. Strip that, when possible.
|
||||
if name:
|
||||
name = name.strip()
|
||||
|
||||
sanitize_host = host.replace(' ', '_').replace('>', '-')
|
||||
fd = open(self.logpath_play + '/' + sanitize_host + '.log', 'a')
|
||||
now = time.strftime(TIME_FORMAT, time.localtime())
|
||||
fd.write(MSG_FORMAT % dict(now=now, name=name, count=count, category=category, data=json.dumps(data)))
|
||||
fd.close()
|
||||
|
||||
|
||||
logmech = LogMech()
|
||||
|
||||
class CallbackModule(CallbackBase):
|
||||
"""
|
||||
logs playbook results, per host, in /var/log/ansible/hosts
|
||||
"""
|
||||
CALLBACK_NAME = 'logdetail2'
|
||||
CALLBACK_TYPE = 'notification'
|
||||
CALLBACK_VERSION = 2.0
|
||||
CALLBACK_NEEDS_WHITELIST = True
|
||||
|
||||
def __init__(self):
|
||||
self._task_count = 0
|
||||
self._play_count = 0
|
||||
self.task = None
|
||||
self.playbook = None
|
||||
|
||||
super(CallbackModule, self).__init__()
|
||||
|
||||
def set_play_context(self, play_context):
|
||||
self.play_context = play_context
|
||||
|
||||
def v2_runner_on_failed(self, result, ignore_errors=False):
|
||||
category = 'FAILED'
|
||||
logmech.log(result._host.get_name(), category, result._result, self.task, self._task_count)
|
||||
|
||||
def v2_runner_on_ok(self, result):
|
||||
category = 'OK'
|
||||
logmech.log(result._host.get_name(), category, result._result, self.task, self._task_count)
|
||||
|
||||
def v2_runner_on_skipped(self, result):
|
||||
category = 'SKIPPED'
|
||||
res = {}
|
||||
res['item'] = self._get_item(getattr(result._result, 'results', {}))
|
||||
logmech.log(result._host.get_name(), category, res, self.task, self._task_count)
|
||||
|
||||
def v2_runner_on_unreachable(self, result):
|
||||
category = 'UNREACHABLE'
|
||||
res = {}
|
||||
res['output'] = result._result
|
||||
logmech.log(result._host.get_name(), category, res, self.task, self._task_count)
|
||||
|
||||
def v2_runner_on_async_failed(self, result):
|
||||
category = 'ASYNC_FAILED'
|
||||
logmech.log(result._host.get_name(), category, result._result, self.task, self._task_count)
|
||||
|
||||
def v2_playbook_on_start(self, playbook):
|
||||
self.playbook = playbook
|
||||
|
||||
def v2_playbook_on_task_start(self, task, is_conditional):
|
||||
self.task = task
|
||||
logmech._last_task_start = time.time()
|
||||
self._task_count += 1
|
||||
|
||||
def v2_playbook_on_setup(self):
|
||||
self._task_count += 1
|
||||
|
||||
def v2_playbook_on_import_for_host(self, result, imported_file):
|
||||
res = {}
|
||||
res['imported_file'] = imported_file
|
||||
logmech.log(result._host.get_name(), 'IMPORTED', res, self.task)
|
||||
|
||||
def v2_playbook_on_not_import_for_host(self, result, missing_file):
|
||||
res = {}
|
||||
res['missing_file'] = missing_file
|
||||
logmech.log(result._host.get_name(), 'NOTIMPORTED', res, self.task)
|
||||
|
||||
def v2_playbook_on_play_start(self, play):
|
||||
self._task_count = 0
|
||||
|
||||
if play:
|
||||
# figure out where the playbook FILE is
|
||||
path = os.path.abspath(self.playbook._file_name)
|
||||
|
||||
# tel the logger what the playbook is
|
||||
logmech.playbook_id = path
|
||||
|
||||
# if play count == 0
|
||||
# write out playbook info now
|
||||
if not self._play_count:
|
||||
pb_info = {}
|
||||
pb_info['playbook_start'] = time.time()
|
||||
pb_info['playbook'] = path
|
||||
pb_info['userid'] = getlogin()
|
||||
pb_info['extra_vars'] = play._variable_manager.extra_vars
|
||||
pb_info['inventory'] = play._variable_manager._inventory._sources
|
||||
pb_info['playbook_checksum'] = secure_hash(path)
|
||||
pb_info['check'] = self.play_context.check_mode
|
||||
pb_info['diff'] = self.play_context.diff
|
||||
logmech.play_log(json.dumps(pb_info, indent=4))
|
||||
|
||||
self._play_count += 1
|
||||
# then write per-play info that doesn't duplcate the playbook info
|
||||
info = {}
|
||||
info['play'] = play.name
|
||||
info['hosts'] = play.hosts
|
||||
info['transport'] = self.play_context.connection
|
||||
info['number'] = self._play_count
|
||||
info['check'] = self.play_context.check_mode
|
||||
info['diff'] = self.play_context.diff
|
||||
logmech.play_info = info
|
||||
logmech.play_log(json.dumps(info, indent=4))
|
||||
|
||||
|
||||
def v2_playbook_on_stats(self, stats):
|
||||
results = {}
|
||||
for host in stats.processed.keys():
|
||||
results[host] = stats.summarize(host)
|
||||
logmech.log(host, 'STATS', results[host])
|
||||
logmech.play_log(json.dumps({'stats': results}, indent=4))
|
||||
logmech.play_log(json.dumps({'playbook_end': time.time()}, indent=4))
|
||||
print('logs written to: %s' % logmech.logpath_play)
|
||||
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
pam_url:
|
||||
{
|
||||
settings:
|
||||
{
|
||||
url = "https://fas-all.phx2.fedoraproject.org:8443/"; # URI to fetch
|
||||
returncode = "OK"; # The remote script/cgi should return a 200 http code and this string as its only results
|
||||
userfield = "user"; # userfield name to send
|
||||
passwdfield = "token"; # passwdfield name to send
|
||||
extradata = "&do=login"; # extradata to send
|
||||
prompt = "Password+Token: "; # password prompt
|
||||
};
|
||||
|
||||
ssl:
|
||||
{
|
||||
verify_peer = true; # Should we verify SSL ?
|
||||
verify_host = true; # Should we verify the CN in the SSL cert?
|
||||
client_cert = "/etc/pki/tls/private/totpcgi.pem"; # file to use as client-side certificate
|
||||
client_key = "/etc/pki/tls/private/totpcgi.pem"; # file to use as client-side key (can be same file as above if a single cert)
|
||||
ca_cert = "/etc/pki/tls/private/totpcgi-ca.cert";
|
||||
};
|
||||
};
|
||||
@@ -1,21 +0,0 @@
|
||||
pam_url:
|
||||
{
|
||||
settings:
|
||||
{
|
||||
url = "https://fas-all.phx2.fedoraproject.org:8443/"; # URI to fetch
|
||||
returncode = "OK"; # The remote script/cgi should return a 200 http code and this string as its only results
|
||||
userfield = "user"; # userfield name to send
|
||||
passwdfield = "token"; # passwdfield name to send
|
||||
extradata = "&do=login"; # extradata to send
|
||||
prompt = "Password+Token: "; # password prompt
|
||||
};
|
||||
|
||||
ssl:
|
||||
{
|
||||
verify_peer = true; # Should we verify SSL ?
|
||||
verify_host = true; # Should we verify the CN in the SSL cert?
|
||||
client_cert = "/etc/pki/tls/private/totpcgi.pem"; # file to use as client-side certificate
|
||||
client_key = "/etc/pki/tls/private/totpcgi.pem"; # file to use as client-side key (can be same file as above if a single cert)
|
||||
ca_cert = "/etc/pki/tls/private/totpcgi-ca.cert";
|
||||
};
|
||||
};
|
||||
@@ -1,27 +0,0 @@
|
||||
pam_url:
|
||||
{
|
||||
settings:
|
||||
{
|
||||
{% if env == 'staging' %}
|
||||
url = "https://fas-all.stg.phx2.fedoraproject.org:8443/"; # URI to fetch
|
||||
{% elif datacenter == 'phx2' %}
|
||||
url = "https://fas-all.phx2.fedoraproject.org:8443/"; # URI to fetch
|
||||
{% else %}
|
||||
url = "https://fas-all.vpn.fedoraproject.org:8443/"; # URI to fetch
|
||||
{% endif %}
|
||||
returncode = "OK"; # The remote script/cgi should return a 200 http code and this string as its only results
|
||||
userfield = "user"; # userfield name to send
|
||||
passwdfield = "token"; # passwdfield name to send
|
||||
extradata = "&do=login"; # extradata to send
|
||||
prompt = "Password+Token: "; # password prompt
|
||||
};
|
||||
|
||||
ssl:
|
||||
{
|
||||
verify_peer = true; # Should we verify SSL ?
|
||||
verify_host = true; # Should we verify the CN in the SSL cert?
|
||||
client_cert = "/etc/pki/tls/private/totpcgi.pem"; # file to use as client-side certificate
|
||||
client_key = "/etc/pki/tls/private/totpcgi.pem"; # file to use as client-side key (can be same file as above if a single cert)
|
||||
ca_cert = "/etc/pki/tls/private/totpcgi-ca.cert";
|
||||
};
|
||||
};
|
||||
@@ -3,6 +3,8 @@ auth required pam_env.so
|
||||
auth sufficient pam_url.so config=/etc/pam_url.conf
|
||||
auth requisite pam_succeed_if.so uid >= 500 quiet
|
||||
auth required pam_deny.so
|
||||
|
||||
auth include system-auth
|
||||
account include system-auth
|
||||
password include system-auth
|
||||
session optional pam_keyinit.so revoke
|
||||
|
||||
@@ -3,14 +3,7 @@
|
||||
|
||||
AllowOverride All
|
||||
|
||||
<IfModule mod_authz_core.c>
|
||||
# Apache 2.4
|
||||
Require all granted
|
||||
</IfModule>
|
||||
<IfModule !mod_authz_core.c>
|
||||
# Apache 2.2
|
||||
Order deny,allow
|
||||
Allow from all
|
||||
</IfModule>
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
|
||||
</Directory>
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: GnuPG v1
|
||||
|
||||
mQINBFfZrzsBEADGLYtUW4YZNKSq/bawWYSg3Z8OAD3amoWx9BTdiBjWyIn7PzBQ
|
||||
g/Y2QpTj9Sylhi4ZDqcP6eikrC2bqZdBeJyOAHSkV6Nvt+D/ijHOViEsSg+OwHmC
|
||||
9axbsNHI+WKYPR7GBb40/hu7miHTOWd7puuJ000nyeHckicSHNYb+KxwoN9TTyON
|
||||
utqTtzUb1v0f+GZ2E3XHCa/SgHG+syFbKhFiPRqSmwuhESgz7JIPx9UPz/pkg/rA
|
||||
qHILJDt5PGaxhRNcK4rOVhpIBxTdjyYvtkCzlMr8ZaLqlQx2B5Ub9osYSv7CwQD5
|
||||
tJTb9ed/p5HKuT9JEDSgtxV2yy6bxEMkBjlD5m4ISnOnZ8GGjPl434FdufusIwDX
|
||||
vFUQDH5BSGV1xUcoCoNAMY+CUCoUaTBkv5PqLOgsCirSImvXhSCFBT1VVb2sPhuG
|
||||
J6q9Nk18+i2sMtjflM9PzCblMe7C1gySiuH4q+hvB6IDnYirLLy0ctBvr3siY4hY
|
||||
lTydy+4z7UuquLv02t5Zbw9jxqX1LEyiMvUppx5XgGyQ0cGQpkRHXRzQqI6bjUny
|
||||
e8Ub2sfjidjqRWyycY4F7KGG/DeKE3UeclDjFlA+CTvgu88RGgzTMZym5NxgjgfJ
|
||||
PYj+etPXth3PNzxd8FAC4tWP5b6kEVVJ2Oxiy6Z8dYQJVsAVP110bo/MFwARAQAB
|
||||
tEBGZWRvcmEgSW5mcmFzdHJ1Y3R1cmUgKGluZnJhc3RydWN0dXJlKSA8YWRtaW5A
|
||||
ZmVkb3JhcHJvamVjdC5vcmc+iQI4BBMBAgAiBQJX2a87AhsPBgsJCAcDAgYVCAIJ
|
||||
CgsEFgIDAQIeAQIXgAAKCRCAWYFeR92O+RbAD/9QzUyyoDPvPjlxn341BdT1iG3s
|
||||
BvKjNOAtQkHeDzRQ0rBXG40yoTjQ+s4X+3aNumy4C+xeGqUiFMcBED/5EdahWcXm
|
||||
5dqEAysTpiWOaamVfvQaNuBZjKP6GXXUeAVvkEVXggTI18tpNR/xFqfvHMCYuRUJ
|
||||
QERNDtEPweQn9U3ewr7VOIrF8OnxVEQe9xOPKnGr0yD22NHz5hCiIKXwt34I7m9j
|
||||
IlKMETTUflmERzzzwWp9CwmwU2o+g9hILqtvLFV/9TDSiWTvr2Ynj/hlNZPG8MhB
|
||||
K73S8oQADP/ogmwYkK3cx06CkaSEiQciAkpL4v7GzWfw3hTScIxbf/R5YU5i5qHj
|
||||
N+XJRLoW4AdNRAtrJ1KsLrFhFso9o7cfUlGGDPOwwQu3etoY3t0vViXYanOJrXqA
|
||||
DaHZ7Ynj7V5KNB97xbjohT+YiApBV1jmMbydAMhNxo2ZlAC9hmlDEwD9L9CSPt1s
|
||||
PvjcY20/RjVrm62vmXI/Sqa1zPjjYaxceEZzDIcxVDAneeeAdV99zHRDjZLqucux
|
||||
GGJWwUNyxnuA7ZNdD3ZQBJlefOCT4Tg2Yj2ssH6PdGBoWS2gibnGdUsc/LhIaES4
|
||||
afRLHVbHRu1HJ3s7pAgxNRY5Cjc5GEqdvm+5LOt/usyyaUwds0cJp55KKovsqZ1v
|
||||
+h4JFKdsC+6/ZUHRQQ==
|
||||
=MNfm
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
@@ -1,20 +0,0 @@
|
||||
[epel]
|
||||
name=Extras Packages for Enterprise Linux $releasever - $basearch
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/epel/7/$basearch/
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
gpgkey=http://infrastructure.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7
|
||||
|
||||
[epel-testing]
|
||||
name=Extras Packages for Enterprise Linux $releasever - $basearch
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/epel/testing/7/$basearch/
|
||||
enabled=0
|
||||
gpgcheck=1
|
||||
gpgkey=http://infrastructure.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7
|
||||
|
||||
[epel-beta]
|
||||
name=Extras Packages for Enterprise Linux beta $releasever - $basearch
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/epel/beta/7/$basearch/
|
||||
enabled=0
|
||||
gpgcheck=1
|
||||
gpgkey=http://infrastructure.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7
|
||||
@@ -1,6 +0,0 @@
|
||||
[infrastructure-tags-stg]
|
||||
name=Fedora Infrastructure staging tag $releasever - $basearch
|
||||
baseurl=https://kojipkgs.fedoraproject.org/repos-dist/f$releasever-infra-stg/latest/$basearch/
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
gpgkey=https://infrastructure.fedoraproject.org/repo/infra/RPM-GPG-KEY-INFRA-TAGS
|
||||
@@ -1,6 +0,0 @@
|
||||
[infrastructure-tags]
|
||||
name=Fedora Infrastructure tag $releasever - $basearch
|
||||
baseurl=https://kojipkgs.fedoraproject.org/repos-dist/f$releasever-infra/latest/$basearch/
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
gpgkey=https://infrastructure.fedoraproject.org/repo/infra/RPM-GPG-KEY-INFRA-TAGS
|
||||
@@ -1,11 +1,7 @@
|
||||
[updates-testing]
|
||||
name=Fedora $releasever - $basearch - Test Updates
|
||||
failovermethod=priority
|
||||
{% if ansible_distribution_major_version|int >27 %}
|
||||
baseurl=https://infrastructure.fedoraproject.org/pub/fedora/linux/updates/testing/$releasever/Everything/$basearch/
|
||||
{% else %}
|
||||
baseurl=https://infrastructure.fedoraproject.org/pub/fedora/linux/updates/testing/$releasever/$basearch/
|
||||
{% endif %}
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora/linux/updates/testing/$releasever/$basearch/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-testing-f$releasever&arch=$basearch
|
||||
enabled=0
|
||||
gpgcheck=1
|
||||
@@ -14,11 +10,7 @@ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
|
||||
[updates-testing-debuginfo]
|
||||
name=Fedora $releasever - $basearch - Test Updates Debug
|
||||
failovermethod=priority
|
||||
{% if ansible_distribution_major_version|int >27 %}
|
||||
baseurl=https://infrastructure.fedoraproject.org/pub/fedora/linux/updates/testing/$releasever/Everything/$basearch/debug/
|
||||
{% else %}
|
||||
baseurl=https://infrastructure.fedoraproject.org/pub/fedora/linux/updates/testing/$releasever/$basearch/debug/
|
||||
{% endif %}
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora/linux/updates/testing/$releasever/$basearch/debug/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-testing-debug-f$releasever&arch=$basearch
|
||||
enabled=0
|
||||
gpgcheck=1
|
||||
@@ -27,11 +19,7 @@ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
|
||||
[updates-testing-source]
|
||||
name=Fedora $releasever - Test Updates Source
|
||||
failovermethod=priority
|
||||
{% if ansible_distribution_major_version|int >27 %}
|
||||
baseurl=https://infrastructure.fedoraproject.org/pub/fedora/linux/updates/testing/$releasever/Everything/SRPMS/
|
||||
{% else %}
|
||||
baseurl=https://infrastructure.fedoraproject.org/pub/fedora/linux/updates/testing/$releasever/SRPMS/
|
||||
{% endif %}
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora/linux/updates/testing/$releasever/SRPMS/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-testing-source-f$releasever&arch=$basearch
|
||||
enabled=0
|
||||
gpgcheck=1
|
||||
|
||||
26
files/common/fedora-updates-testing.repo-arm
Normal file
26
files/common/fedora-updates-testing.repo-arm
Normal file
@@ -0,0 +1,26 @@
|
||||
[updates-testing]
|
||||
name=Fedora $releasever - $basearch - Test Updates
|
||||
failovermethod=priority
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora-secondary/updates/testing/$releasever/$basearch/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-testing-f$releasever&arch=$basearch
|
||||
enabled=0
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
|
||||
|
||||
[updates-testing-debuginfo]
|
||||
name=Fedora $releasever - $basearch - Test Updates Debug
|
||||
failovermethod=priority
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora-secondary/updates/testing/$releasever/$basearch/debug/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-testing-debug-f$releasever&arch=$basearch
|
||||
enabled=0
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
|
||||
|
||||
[updates-testing-source]
|
||||
name=Fedora $releasever - Test Updates Source
|
||||
failovermethod=priority
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora-secondary/updates/testing/$releasever/SRPMS/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-testing-source-f$releasever&arch=$basearch
|
||||
enabled=0
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
|
||||
@@ -1,38 +0,0 @@
|
||||
[updates-testing]
|
||||
name=Fedora $releasever - $basearch - Test Updates
|
||||
failovermethod=priority
|
||||
{% if ansible_distribution_major_version|int >27 %}
|
||||
baseurl=https://infrastructure.fedoraproject.org/pub/fedora-secondary/updates/testing/$releasever/Everything/$basearch/
|
||||
{% else %}
|
||||
baseurl=https://infrastructure.fedoraproject.org/pub/fedora-secondary/updates/testing/$releasever/$basearch/
|
||||
{% endif %}
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-testing-f$releasever&arch=$basearch
|
||||
enabled=0
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
|
||||
|
||||
[updates-testing-debuginfo]
|
||||
name=Fedora $releasever - $basearch - Test Updates Debug
|
||||
failovermethod=priority
|
||||
{% if ansible_distribution_major_version|int >27 %}
|
||||
baseurl=https://infrastructure.fedoraproject.org/pub/fedora-secondary/updates/testing/$releasever/Everything/$basearch/debug/
|
||||
{% else %}
|
||||
baseurl=https://infrastructure.fedoraproject.org/pub/fedora-secondary/updates/testing/$releasever/$basearch/debug/
|
||||
{% endif %}
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-testing-debug-f$releasever&arch=$basearch
|
||||
enabled=0
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
|
||||
|
||||
[updates-testing-source]
|
||||
name=Fedora $releasever - Test Updates Source
|
||||
failovermethod=priority
|
||||
{% if ansible_distribution_major_version|int >27 %}
|
||||
baseurl=https://infrastructure.fedoraproject.org/pub/fedora-secondary/updates/testing/$releasever/Everything/SRPMS/
|
||||
{% else %}
|
||||
baseurl=https://infrastructure.fedoraproject.org/pub/fedora-secondary/updates/testing/$releasever/SRPMS/
|
||||
{% endif %}
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-testing-source-f$releasever&arch=$basearch
|
||||
enabled=0
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
|
||||
@@ -1,11 +1,7 @@
|
||||
[updates]
|
||||
name=Fedora $releasever - $basearch - Updates
|
||||
failovermethod=priority
|
||||
{% if ansible_distribution_major_version|int >27 %}
|
||||
baseurl=https://infrastructure.fedoraproject.org/pub/fedora/linux/updates/$releasever/Everything/$basearch/
|
||||
{% else %}
|
||||
baseurl=https://infrastructure.fedoraproject.org/pub/fedora/linux/updates/$releasever/$basearch/
|
||||
{% endif %}
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora/linux/updates/$releasever/$basearch/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f$releasever&arch=$basearch
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
@@ -14,11 +10,7 @@ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
|
||||
[updates-debuginfo]
|
||||
name=Fedora $releasever - $basearch - Updates - Debug
|
||||
failovermethod=priority
|
||||
{% if ansible_distribution_major_version|int >27 %}
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora/linux/updates/$releasever/Everything/$basearch/debug/
|
||||
{% else %}
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora/linux/updates/$releasever/$basearch/debug/
|
||||
{% endif %}
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-debug-f$releasever&arch=$basearch
|
||||
enabled=0
|
||||
gpgcheck=1
|
||||
@@ -27,11 +19,7 @@ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
|
||||
[updates-source]
|
||||
name=Fedora $releasever - Updates Source
|
||||
failovermethod=priority
|
||||
{% if ansible_distribution_major_version|int >27 %}
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora/linux/updates/$releasever/Everything/SRPMS/
|
||||
{% else %}
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora/linux/updates/$releasever/SRPMS/
|
||||
{% endif %}
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-source-f$releasever&arch=$basearch
|
||||
enabled=0
|
||||
gpgcheck=1
|
||||
|
||||
26
files/common/fedora-updates.repo-arm
Normal file
26
files/common/fedora-updates.repo-arm
Normal file
@@ -0,0 +1,26 @@
|
||||
[updates]
|
||||
name=Fedora $releasever - $basearch - Updates
|
||||
failovermethod=priority
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora-secondary/updates/$releasever/$basearch/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f$releasever&arch=$basearch
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
|
||||
|
||||
[updates-debuginfo]
|
||||
name=Fedora $releasever - $basearch - Updates - Debug
|
||||
failovermethod=priority
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora-secondary/updates/$releasever/$basearch/debug/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-debug-f$releasever&arch=$basearch
|
||||
enabled=0
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
|
||||
|
||||
[updates-source]
|
||||
name=Fedora $releasever - Updates Source
|
||||
failovermethod=priority
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora-secondary/updates/$releasever/SRPMS/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-source-f$releasever&arch=$basearch
|
||||
enabled=0
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
|
||||
@@ -1,38 +0,0 @@
|
||||
[updates]
|
||||
name=Fedora $releasever - $basearch - Updates
|
||||
failovermethod=priority
|
||||
{% if ansible_distribution_major_version|int >27 %}
|
||||
baseurl=https://infrastructure.fedoraproject.org/pub/fedora-secondary/updates/$releasever/Everything/$basearch/
|
||||
{% else %}
|
||||
baseurl=https://infrastructure.fedoraproject.org/pub/fedora-secondary/updates/$releasever/$basearch/
|
||||
{% endif %}
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f$releasever&arch=$basearch
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
|
||||
|
||||
[updates-debuginfo]
|
||||
name=Fedora $releasever - $basearch - Updates - Debug
|
||||
failovermethod=priority
|
||||
{% if ansible_distribution_major_version|int >27 %}
|
||||
baseurl=https://infrastructure.fedoraproject.org/pub/fedora-secondary/updates/$releasever/Everything/$basearch/debug/
|
||||
{% else %}
|
||||
baseurl=https://infrastructure.fedoraproject.org/pub/fedora-secondary/updates/$releasever/$basearch/debug/
|
||||
{% endif %}
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-debug-f$releasever&arch=$basearch
|
||||
enabled=0
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
|
||||
|
||||
[updates-source]
|
||||
name=Fedora $releasever - Updates Source
|
||||
failovermethod=priority
|
||||
{% if ansible_distribution_major_version|int >27 %}
|
||||
baseurl=https://infrastructure.fedoraproject.org/pub/fedora-secondary/updates/$releasever/SRPMS/
|
||||
{% else %}
|
||||
baseurl=https://infrastructure.fedoraproject.org/pub/fedora-secondary/updates/$releasever/Everything/SRPMS/
|
||||
{% endif %}
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-source-f$releasever&arch=$basearch
|
||||
enabled=0
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
|
||||
@@ -1,17 +1,17 @@
|
||||
[fedora]
|
||||
name=Fedora $releasever - $basearch
|
||||
failovermethod=priority
|
||||
baseurl=https://infrastructure.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch
|
||||
enabled=1
|
||||
metadata_expire=7d
|
||||
gpgcheck=1
|
||||
gpgcheck=0
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
|
||||
|
||||
[fedora-debuginfo]
|
||||
name=Fedora $releasever - $basearch - Debug
|
||||
failovermethod=priority
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/debug/tree/
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/debug/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-debug-$releasever&arch=$basearch
|
||||
enabled=0
|
||||
metadata_expire=7d
|
||||
@@ -21,7 +21,7 @@ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
|
||||
[fedora-source]
|
||||
name=Fedora $releasever - Source
|
||||
failovermethod=priority
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/source/tree/
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/source/SRPMS/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-source-$releasever&arch=$basearch
|
||||
enabled=0
|
||||
metadata_expire=7d
|
||||
|
||||
29
files/common/fedora.repo-arm
Normal file
29
files/common/fedora.repo-arm
Normal file
@@ -0,0 +1,29 @@
|
||||
[fedora]
|
||||
name=Fedora $releasever - $basearch
|
||||
failovermethod=priority
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora-secondary/releases/$releasever/Everything/$basearch/os/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch
|
||||
enabled=1
|
||||
metadata_expire=7d
|
||||
gpgcheck=0
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
|
||||
|
||||
[fedora-debuginfo]
|
||||
name=Fedora $releasever - $basearch - Debug
|
||||
failovermethod=priority
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora-secondary/releases/$releasever/Everything/$basearch/debug/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-debug-$releasever&arch=$basearch
|
||||
enabled=0
|
||||
metadata_expire=7d
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
|
||||
|
||||
[fedora-source]
|
||||
name=Fedora $releasever - Source
|
||||
failovermethod=priority
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora-secondary/releases/$releasever/Everything/source/SRPMS/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-source-$releasever&arch=$basearch
|
||||
enabled=0
|
||||
metadata_expire=7d
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
|
||||
@@ -1,29 +0,0 @@
|
||||
[fedora]
|
||||
name=Fedora $releasever - $basearch
|
||||
failovermethod=priority
|
||||
baseurl=https://infrastructure.fedoraproject.org/pub/fedora-secondary/releases/$releasever/Everything/$basearch/os/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch
|
||||
enabled=1
|
||||
metadata_expire=7d
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
|
||||
|
||||
[fedora-debuginfo]
|
||||
name=Fedora $releasever - $basearch - Debug
|
||||
failovermethod=priority
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora-secondary/releases/$releasever/Everything/$basearch/debug/tree/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-debug-$releasever&arch=$basearch
|
||||
enabled=0
|
||||
metadata_expire=7d
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
|
||||
|
||||
[fedora-source]
|
||||
name=Fedora $releasever - Source
|
||||
failovermethod=priority
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora-secondary/releases/$releasever/Everything/source/tree/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-source-$releasever&arch=$basearch
|
||||
enabled=0
|
||||
metadata_expire=7d
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
|
||||
@@ -1,13 +0,0 @@
|
||||
[rhel-7-alt-for-arm-64-optional-rpms]
|
||||
name = rhel7 $basearch server optional
|
||||
baseurl=http://infrastructure.fedoraproject.org/repo/rhel/rhel7/$basearch/rhel-7-alt-for-arm-64-optional-rpms/
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
|
||||
[rhel-7-alt-for-arm-64-rpms]
|
||||
name = rhel7 $basearch server
|
||||
baseurl=http://infrastructure.fedoraproject.org/repo/rhel/rhel7/$basearch/rhel-7-alt-for-arm-64-rpms/
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
@@ -1,6 +0,0 @@
|
||||
[infrastructure-tags-stg]
|
||||
name=Fedora Infrastructure tag $releasever - $basearch
|
||||
baseurl=https://kojipkgs.fedoraproject.org/repos-dist/epel$releasever-infra-stg/latest/$basearch/
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
gpgkey=https://infrastructure.fedoraproject.org/repo/infra/RPM-GPG-KEY-INFRA-TAGS
|
||||
@@ -1,6 +0,0 @@
|
||||
[infrastructure-tags]
|
||||
name=Fedora Infrastructure tag $releasever - $basearch
|
||||
baseurl=https://kojipkgs.fedoraproject.org/repos-dist/epel$releasever-infra/latest/$basearch/
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
gpgkey=https://infrastructure.fedoraproject.org/repo/infra/RPM-GPG-KEY-INFRA-TAGS
|
||||
@@ -1,4 +0,0 @@
|
||||
[rhel7-rhev]
|
||||
name = rhel7 rhev $basearch
|
||||
baseurl=http://infrastructure.fedoraproject.org/repo/rhel/rhel7/$basearch/rhel-7-for-rhev-power-agents-rpms
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
|
||||
@@ -1,24 +0,0 @@
|
||||
[rhel7-dvd]
|
||||
name = rhel7 base dvd
|
||||
baseurl=http://infrastructure.fedoraproject.org/repo/rhel/RHEL7-$basearch/
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
|
||||
|
||||
[rhel7-base]
|
||||
name = rhel7 base $basearch
|
||||
baseurl=http://infrastructure.fedoraproject.org/repo/rhel/rhel7/$basearch/rhel-7-server-rpms
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
|
||||
|
||||
[rhel7-optional]
|
||||
name = rhel7 optional $basearch
|
||||
baseurl=http://infrastructure.fedoraproject.org/repo/rhel/rhel7/$basearch/rhel-7-server-optional-rpms
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
|
||||
|
||||
[rhel7-extras]
|
||||
name = rhel7 extras $basearch
|
||||
baseurl=http://infrastructure.fedoraproject.org/repo/rhel/rhel7/$basearch/rhel-7-server-extras-rpms
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
|
||||
|
||||
[rhel7-ha]
|
||||
name = rhel7 ha $basearch
|
||||
baseurl=http://infrastructure.fedoraproject.org/repo/rhel/rhel7/$basearch/rhel-ha-for-rhel-7-server-rpms/
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
|
||||
@@ -1,4 +0,0 @@
|
||||
[rhel7-atomic-host]
|
||||
name = rhel7 Atomic Host $basearch
|
||||
baseurl=http://infrastructure.fedoraproject.org/repo/rhel/rhel7/$basearch/rhel-7-server-atomic-host-rpms
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
|
||||
@@ -1,7 +1,10 @@
|
||||
208.75.88.4
|
||||
216.93.242.12
|
||||
107.170.242.27
|
||||
108.166.189.70
|
||||
199.223.248.98
|
||||
# [clock.redhat.com]
|
||||
66.187.233.4
|
||||
# [time.nist.gov]
|
||||
192.43.244.18
|
||||
# [otc1.psu.edu]
|
||||
128.118.25.5
|
||||
# [clock.isc.org]
|
||||
204.152.184.72
|
||||
# [loopback]
|
||||
127.127.1.0
|
||||
|
||||
58
files/copr/copr-be.conf
Normal file
58
files/copr/copr-be.conf
Normal file
@@ -0,0 +1,58 @@
|
||||
[backend]
|
||||
|
||||
# URL where are results visible
|
||||
# default is http://copr
|
||||
results_baseurl=http://copr-be.cloud.fedoraproject.org/results
|
||||
|
||||
# ??? What is this
|
||||
# default is http://coprs/rest/api
|
||||
#frontend_url=http://copr-fe.cloud.fedoraproject.org/backend
|
||||
frontend_url=http://172.16.5.6/backend
|
||||
|
||||
# must have same value as BACKEND_PASSWORD from have frontend in /etc/copr/copr.conf
|
||||
# default is PASSWORDHERE but you really should change it. really.
|
||||
frontend_auth={{ copr_backend_password }}
|
||||
|
||||
# path to ansible playbook which spawns builder
|
||||
# see /usr/share/copr*/playbooks/ for examples
|
||||
# default is /etc/copr/builder_playbook.yml
|
||||
spawn_playbook=/home/copr/provision/builderpb.yml
|
||||
|
||||
# path to ansible playbook which terminate builder
|
||||
# default is /etc/copr/terminate_playbook.yml
|
||||
terminate_playbook=/home/copr/provision/terminatepb.yml
|
||||
|
||||
# directory where jobs are stored
|
||||
# no defaults
|
||||
jobsdir=/var/lib/copr/jobs
|
||||
|
||||
# directory where results are stored
|
||||
# should be accessible from web using 'results_baseurl' URL
|
||||
# no default
|
||||
destdir=/var/lib/copr/public_html/results
|
||||
|
||||
# default is 10
|
||||
sleeptime=30
|
||||
|
||||
# default is 8
|
||||
num_workers=8
|
||||
|
||||
# path to log file
|
||||
# default is /var/log/copr/backend.log
|
||||
logfile=/var/log/copr/backend.log
|
||||
|
||||
# default is /var/log/copr/workers/
|
||||
worker_logdir=/var/log/copr/workers/
|
||||
|
||||
# exit on worker failure
|
||||
# default is false
|
||||
#exit_on_worker=false
|
||||
|
||||
# publish fedmsg notifications from workers if true
|
||||
# default is false
|
||||
#fedmsg_enabled=false
|
||||
fedmsg_enabled=true
|
||||
|
||||
[builder]
|
||||
# default is 1800
|
||||
timeout=3600
|
||||
57
files/copr/copr-be.conf-dev
Normal file
57
files/copr/copr-be.conf-dev
Normal file
@@ -0,0 +1,57 @@
|
||||
[backend]
|
||||
|
||||
# URL where are results visible
|
||||
# default is http://copr
|
||||
results_baseurl=http://copr-be-dev.cloud.fedoraproject.org/results
|
||||
|
||||
# ??? What is this
|
||||
# default is http://coprs/rest/api
|
||||
frontend_url=http://copr-fe-dev.cloud.fedoraproject.org/backend
|
||||
|
||||
# must have same value as BACKEND_PASSWORD from have frontend in /etc/copr/copr.conf
|
||||
# default is PASSWORDHERE but you really should change it. really.
|
||||
frontend_auth=PASSWORDHERE
|
||||
|
||||
# path to ansible playbook which spawns builder
|
||||
# see /usr/share/copr*/playbooks/ for examples
|
||||
# default is /etc/copr/builder_playbook.yml
|
||||
spawn_playbook=/home/copr/provision/builderpb.yml
|
||||
|
||||
# path to ansible playbook which terminate builder
|
||||
# default is /etc/copr/terminate_playbook.yml
|
||||
terminate_playbook=/home/copr/provision/terminatepb.yml
|
||||
|
||||
# directory where jobs are stored
|
||||
# no defaults
|
||||
jobsdir=/var/lib/copr/jobs
|
||||
|
||||
# directory where results are stored
|
||||
# should be accessible from web using 'results_baseurl' URL
|
||||
# no default
|
||||
destdir=/var/lib/copr/public_html/results
|
||||
|
||||
# default is 10
|
||||
sleeptime=30
|
||||
|
||||
# default is 8
|
||||
num_workers=5
|
||||
|
||||
# path to log file
|
||||
# default is /var/log/copr/backend.log
|
||||
logfile=/var/log/copr/backend.log
|
||||
|
||||
# default is /var/log/copr/workers/
|
||||
worker_logdir=/var/log/copr/workers/
|
||||
|
||||
# exit on worker failure
|
||||
# default is false
|
||||
#exit_on_worker=false
|
||||
|
||||
# publish fedmsg notifications from workers if true
|
||||
# default is false
|
||||
#fedmsg_enabled=false
|
||||
|
||||
|
||||
[builder]
|
||||
# default is 1800
|
||||
timeout=3600
|
||||
1
files/copr/fe/README
Normal file
1
files/copr/fe/README
Normal file
@@ -0,0 +1 @@
|
||||
in this dir is where we put all the configs for the copr frontend
|
||||
30
files/copr/fe/copr.conf
Normal file
30
files/copr/fe/copr.conf
Normal file
@@ -0,0 +1,30 @@
|
||||
# Directory and files where is stored Copr database files
|
||||
DATA_DIR = '/var/lib/copr/data'
|
||||
DATABASE = '/var/lib/copr/data/copr.db'
|
||||
OPENID_STORE = '/var/lib/copr/data/openid_store'
|
||||
WHOOSHEE_DIR = '/var/lib/copr/data/whooshee'
|
||||
|
||||
SECRET_KEY = {{ copr_secret_key }}
|
||||
BACKEND_PASSWORD = {{ copr_backend_password }}
|
||||
|
||||
# restrict access to a set of users
|
||||
#USE_ALLOWED_USERS = False
|
||||
#ALLOWED_USERS = ['bonnie', 'clyde']
|
||||
|
||||
SQLALCHEMY_DATABASE_URI = {{ copr_database_uri }}
|
||||
|
||||
# Token length, defaults to 30 (max 255)
|
||||
#API_TOKEN_LENGTH = 30
|
||||
|
||||
# Expiration of API token in days
|
||||
#API_TOKEN_EXPIRATION = 180
|
||||
|
||||
# logging options
|
||||
#SEND_LOGS_TO = ['root@localhost']
|
||||
#LOGGING_LEVEL = logging.ERROR
|
||||
|
||||
DEBUG = False
|
||||
SQLALCHEMY_ECHO = False
|
||||
|
||||
CSRF_ENABLED = True
|
||||
WTF_CSRF_ENABLED = True
|
||||
64
files/copr/fe/httpd/coprs.conf
Normal file
64
files/copr/fe/httpd/coprs.conf
Normal file
@@ -0,0 +1,64 @@
|
||||
NameVirtualHost *:80
|
||||
LoadModule wsgi_module modules/mod_wsgi.so
|
||||
WSGISocketPrefix /var/run/wsgi
|
||||
|
||||
<VirtualHost *:80>
|
||||
ServerName copr-fe.cloud.fedoraproject.org
|
||||
|
||||
WSGIPassAuthorization On
|
||||
WSGIDaemonProcess 127.0.0.1 user=copr-fe group=copr-fe threads=5
|
||||
WSGIScriptAlias / /usr/share/copr/coprs_frontend/application
|
||||
WSGIProcessGroup 127.0.0.1
|
||||
|
||||
ErrorLog logs/error_coprs
|
||||
CustomLog logs/access_coprs common
|
||||
|
||||
<Directory /usr/share/copr>
|
||||
WSGIApplicationGroup %{GLOBAL}
|
||||
Require all granted
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:443>
|
||||
SSLEngine on
|
||||
SSLProtocol all -SSLv2
|
||||
#optimeize on speed
|
||||
SSLCipherSuite RC4-SHA:AES128-SHA:HIGH:!aNULL:!MD5
|
||||
SSLHonorCipherOrder on
|
||||
|
||||
SSLCertificateFile /etc/pki/tls/ca.crt
|
||||
SSLCertificateKeyFile /etc/pki/tls/private/ca.key
|
||||
ServerName copr-fe.cloud.fedoraproject.org:443
|
||||
|
||||
WSGIPassAuthorization On
|
||||
#WSGIDaemonProcess 127.0.0.1 user=copr-fe group=copr-fe threads=5
|
||||
WSGIScriptAlias / /usr/share/copr/coprs_frontend/application
|
||||
WSGIProcessGroup 127.0.0.1
|
||||
|
||||
ErrorLog logs/error_coprs
|
||||
CustomLog logs/access_coprs common
|
||||
|
||||
<Directory /usr/share/copr>
|
||||
WSGIApplicationGroup %{GLOBAL}
|
||||
Require all granted
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
|
||||
<IfModule mod_status.c>
|
||||
ExtendedStatus On
|
||||
|
||||
<Location /server-status>
|
||||
SetHandler server-status
|
||||
Require all denied
|
||||
Require host localhost .redhat.com
|
||||
</Location>
|
||||
</IfModule>
|
||||
|
||||
<IfModule mpm_prefork_module>
|
||||
StartServers 8
|
||||
MinSpareServers 8
|
||||
MaxSpareServers 20
|
||||
MaxClients 50
|
||||
MaxRequestsPerChild 10000
|
||||
</IfModule>
|
||||
|
||||
10
files/copr/fe/yum/copr.repo
Normal file
10
files/copr/fe/yum/copr.repo
Normal file
@@ -0,0 +1,10 @@
|
||||
[Copr]
|
||||
name=Copr
|
||||
failovermethod=priority
|
||||
#baseurl=http://copr-be.cloud.fedoraproject.org/results/msuchy/copr/fedora-19-x86_64/
|
||||
# 172.16.5.4 is copr-be.cloud.fedoraproject.org
|
||||
# see https://fedorahosted.org/fedora-infrastructure/ticket/4025
|
||||
baseurl=http://172.16.5.4/results/msuchy/copr/fedora-19-x86_64/
|
||||
enabled=1
|
||||
gpgcheck=0
|
||||
|
||||
4
files/copr/forward
Normal file
4
files/copr/forward
Normal file
@@ -0,0 +1,4 @@
|
||||
msuchy+coprmachine@redhat.com
|
||||
kevin@scrye.com
|
||||
nb@fedoraproject.org
|
||||
sgallagh@redhat.com
|
||||
@@ -75,21 +75,7 @@ var.socket_dir = home_dir + "/sockets"
|
||||
#######################################################################
|
||||
##
|
||||
## Load the modules.
|
||||
#include "modules.conf"
|
||||
server.modules = (
|
||||
"mod_access",
|
||||
"mod_setenv",
|
||||
"mod_redirect",
|
||||
"mod_indexfile",
|
||||
"mod_cgi"
|
||||
)
|
||||
|
||||
cgi.assign = ( ".pl" => "/usr/bin/perl",
|
||||
".cgi" => "/usr/bin/perl",
|
||||
".rb" => "/usr/bin/ruby",
|
||||
".erb" => "/usr/bin/eruby",
|
||||
".py" => "/usr/bin/python",
|
||||
".php" => "/usr/bin/php" )
|
||||
include "modules.conf"
|
||||
|
||||
##
|
||||
#######################################################################
|
||||
@@ -220,7 +206,7 @@ server.network-backend = "linux-sendfile"
|
||||
##
|
||||
## With SELinux enabled, this is denied by default and needs to be allowed
|
||||
## by running the following once : setsebool -P httpd_setrlimit on
|
||||
server.max-fds = 2048
|
||||
#server.max-fds = 2048
|
||||
|
||||
##
|
||||
## Stat() call caching.
|
||||
@@ -311,8 +297,8 @@ server.max-connections = 1024
|
||||
## index-file.names = ( "index.php", "index.rb", "index.html",
|
||||
## "index.htm", "default.htm" )
|
||||
##
|
||||
index-file.names = (
|
||||
"/dir-generator.php"
|
||||
index-file.names += (
|
||||
"index.xhtml", "index.html", "index.htm", "default.htm", "index.php"
|
||||
)
|
||||
|
||||
##
|
||||
@@ -462,19 +448,8 @@ server.upload-dirs = ( "/var/tmp" )
|
||||
|
||||
$SERVER["socket"] == ":443" {
|
||||
ssl.engine = "enable"
|
||||
ssl.pemfile = "/etc/lighttpd/copr.fedorainfracloud.org.pem"
|
||||
ssl.ca-file = "/etc/lighttpd/copr.fedorainfracloud.org.intermediate.crt"
|
||||
ssl.pemfile = "/etc/lighttpd/coprs-be.fedoraproject.org.pem"
|
||||
ssl.ca-file = "/etc/lighttpd/coprs-be.fedoraproject.org.crt"
|
||||
ssl.disable-client-renegotiation = "enable"
|
||||
ssl.use-sslv2 = "disable"
|
||||
ssl.use-sslv3 = "disable"
|
||||
ssl.cipher-list = "ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4-SHA:RC4:HIGH:!MD5:!aNULL:!EDH:!AESGCM"
|
||||
}
|
||||
|
||||
$HTTP["url"] =~ "\.log\.gz$" {
|
||||
setenv.add-response-header = ( "Content-Encoding" => "gzip")
|
||||
mimetype.assign = ("" => "text/plain" )
|
||||
}
|
||||
|
||||
url.redirect = ( "^/results/sgallagh/cockpit-preview/(.+)" => "/results/@cockpit/cockpit-preview/$1" )
|
||||
|
||||
url.redirect += ( "^/results/(.*)/(.*)/mageia-(.*)-i386(.*)" => "/results/$1/$2/mageia-$3-i586$4" )
|
||||
@@ -88,6 +88,6 @@ record_host_keys=False
|
||||
# will result in poor performance, so use transport=paramiko on older platforms rather than
|
||||
# removing it
|
||||
|
||||
ssh_args=-o PasswordAuthentication=no -o ControlMaster=auto -o ControlPersist=60s
|
||||
ssh_args=-o PasswordAuthentication=no -o ControlMaster=auto -o ControlPersist=60s -o ControlPath=/tmp/ansible-ssh-%h-%p-%r
|
||||
|
||||
|
||||
81
files/copr/provision/builderpb.yml
Normal file
81
files/copr/provision/builderpb.yml
Normal file
@@ -0,0 +1,81 @@
|
||||
---
|
||||
- name: check/create instance
|
||||
hosts: localhost
|
||||
user: copr
|
||||
gather_facts: False
|
||||
|
||||
vars:
|
||||
- keypair: buildsys
|
||||
- image: ami-0000000e
|
||||
- instance_type: m1.builder
|
||||
- security_group: builder
|
||||
|
||||
tasks:
|
||||
- name: spin it up
|
||||
local_action: ec2 keypair={{ keypair }} image={{ image }} type={{ instance_type }} wait=true group={{ security_group }}
|
||||
register: inst_res
|
||||
|
||||
- name: get its internal ip b/c openstack is sometimes stupid
|
||||
local_action: shell euca-describe-instances {{ inst_res.instances[0].id }} | grep INSTANCE | cut -f 18
|
||||
register: int_ip
|
||||
|
||||
- name: add it to the special group
|
||||
local_action: add_host hostname={{ int_ip.stdout }} groupname=builder_temp_group
|
||||
|
||||
- name: wait for the host to be hot
|
||||
local_action: wait_for host={{ int_ip.stdout }} port=22 delay=5 timeout=600
|
||||
|
||||
- debug: msg="IP={{ int_ip.stdout }}"
|
||||
|
||||
- hosts: builder_temp_group
|
||||
user: root
|
||||
vars:
|
||||
- files: files/
|
||||
|
||||
tasks:
|
||||
- name: edit hostname to be instance name
|
||||
action: shell hostname `curl -s http://169.254.169.254/2009-04-04/meta-data/instance-id`
|
||||
|
||||
- name: install pkgs
|
||||
action: yum state=present pkg={{ item }}
|
||||
with_items:
|
||||
- rsync
|
||||
- openssh-clients
|
||||
- libselinux-python
|
||||
- libsemanage-python
|
||||
|
||||
- name: add repos
|
||||
action: copy src={{ files }}/{{ item }} dest=/etc/yum.repos.d/{{ item }}
|
||||
with_items:
|
||||
- builder.repo
|
||||
- epel6.repo
|
||||
|
||||
- name: install additional pkgs
|
||||
action: yum state=present pkg={{ item }}
|
||||
with_items:
|
||||
- mock
|
||||
- createrepo
|
||||
- yum-utils
|
||||
|
||||
- name: make sure newest rpm
|
||||
action: yum name=rpm state=latest
|
||||
|
||||
- name: mockbuilder user
|
||||
action: user name=mockbuilder groups=mock
|
||||
|
||||
- name: mockbuilder .ssh
|
||||
action: file state=directory path=/home/mockbuilder/.ssh mode=0700 owner=mockbuilder group=mockbuilder
|
||||
|
||||
- name: mockbuilder authorized_keys
|
||||
action: authorized_key user=mockbuilder key='{{ lookup('file', '/home/copr/provision/files/buildsys.pub') }}'
|
||||
|
||||
- name: put updated mock configs into /etc/mock
|
||||
action: copy src={{ files }}/mock/{{ item }} dest=/etc/mock
|
||||
with_items:
|
||||
- site-defaults.cfg
|
||||
- epel-5-x86_64.cfg
|
||||
- epel-5-i386.cfg
|
||||
- fedora-20-x86_64.cfg
|
||||
- fedora-20-i386.cfg
|
||||
- epel-7-x86_64.cfg
|
||||
|
||||
23
files/copr/provision/files/builder.repo
Normal file
23
files/copr/provision/files/builder.repo
Normal file
@@ -0,0 +1,23 @@
|
||||
[builder-infrastructure]
|
||||
name=Builder Packages from Fedora Infrastructure $releasever - $basearch
|
||||
baseurl=http://infrastructure.fedoraproject.org/repo/builder-rpms/$releasever/$basearch/
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
gpgkey=http://infrastructure.fedoraproject.org/repo/RPM-GPG-KEY-INFRASTRUCTURE
|
||||
|
||||
[msuchy-Mock]
|
||||
name=Copr repo for Mock owned by msuchy
|
||||
description=Mock for RHEL6 with patch from https://bugzilla.redhat.com/show_bug.cgi?id=1028438 and https://bugzilla.redhat.com/show_bug.cgi?id=1034805
|
||||
baseurl=http://172.16.5.4/results/msuchy/Mock/epel-6-$basearch/
|
||||
skip_if_unavailable=True
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
|
||||
[msuchy-scl-utils]
|
||||
name=Copr repo for scl-utils owned by msuchy
|
||||
description=scl-utils with patch from https://bugzilla.redhat.com/show_bug.cgi?id=985233
|
||||
baseurl=http://172.16.5.4/results/msuchy/scl-utils/epel-6-$basearch/
|
||||
skip_if_unavailable=True
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
|
||||
13
files/copr/provision/files/epel6.repo
Normal file
13
files/copr/provision/files/epel6.repo
Normal file
@@ -0,0 +1,13 @@
|
||||
[epel]
|
||||
name=Extras Packages for Enterprise Linux $releasever - $basearch
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/epel/6/$basearch/
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
gpgkey=http://infrastructure.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6
|
||||
|
||||
[epel-testing]
|
||||
name=Extras Packages for Enterprise Linux $releasever - $basearch
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/epel/testing/6/$basearch/
|
||||
enabled=0
|
||||
gpgcheck=1
|
||||
gpgkey=http://infrastructure.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6
|
||||
60
files/copr/provision/files/mock/epel-5-i386.cfg
Normal file
60
files/copr/provision/files/mock/epel-5-i386.cfg
Normal file
@@ -0,0 +1,60 @@
|
||||
config_opts['root'] = 'epel-5-i386'
|
||||
config_opts['target_arch'] = 'i386'
|
||||
config_opts['legal_host_arches'] = ('i386', 'i586', 'i686', 'x86_64')
|
||||
config_opts['chroot_setup_cmd'] = 'install buildsys-build'
|
||||
config_opts['dist'] = 'el5' # only useful for --resultdir variable subst
|
||||
if not config_opts.has_key('macros'): config_opts['macros'] = {}
|
||||
config_opts['macros']['%__arch_install_post'] = '%{nil}'
|
||||
config_opts['macros']['%rhel'] = '5'
|
||||
config_opts['macros']['%dist'] = '.el5'
|
||||
config_opts['macros']['%el5'] = '1'
|
||||
config_opts['releasever'] = '5'
|
||||
|
||||
config_opts['yum.conf'] = """
|
||||
[main]
|
||||
cachedir=/var/cache/yum
|
||||
debuglevel=1
|
||||
logfile=/var/log/yum.log
|
||||
reposdir=/dev/null
|
||||
retries=20
|
||||
obsoletes=1
|
||||
gpgcheck=0
|
||||
assumeyes=1
|
||||
syslog_ident=mock
|
||||
syslog_device=
|
||||
|
||||
# repos
|
||||
|
||||
[core]
|
||||
name=base
|
||||
mirrorlist=http://mirrorlist.centos.org/?release=5&arch=i386&repo=os
|
||||
|
||||
[update]
|
||||
name=updates
|
||||
mirrorlist=http://mirrorlist.centos.org/?release=5&arch=i386&repo=updates
|
||||
|
||||
[groups]
|
||||
name=groups
|
||||
baseurl=http://buildsys.fedoraproject.org/buildgroups/rhel5/i386/
|
||||
|
||||
[extras]
|
||||
name=epel
|
||||
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-5&arch=i386
|
||||
|
||||
[testing]
|
||||
name=epel-testing
|
||||
enabled=0
|
||||
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=testing-epel5&arch=i386
|
||||
|
||||
[local]
|
||||
name=local
|
||||
baseurl=http://kojipkgs.fedoraproject.org/repos/dist-5E-epel-build/latest/i386/
|
||||
cost=2000
|
||||
enabled=0
|
||||
|
||||
[epel-debug]
|
||||
name=epel-debug
|
||||
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-debug-5&arch=i386
|
||||
failovermethod=priority
|
||||
enabled=0
|
||||
"""
|
||||
60
files/copr/provision/files/mock/epel-5-x86_64.cfg
Normal file
60
files/copr/provision/files/mock/epel-5-x86_64.cfg
Normal file
@@ -0,0 +1,60 @@
|
||||
config_opts['root'] = 'epel-5-x86_64'
|
||||
config_opts['target_arch'] = 'x86_64'
|
||||
config_opts['legal_host_arches'] = ('x86_64',)
|
||||
config_opts['chroot_setup_cmd'] = 'install buildsys-build'
|
||||
config_opts['dist'] = 'el5' # only useful for --resultdir variable subst
|
||||
if not config_opts.has_key('macros'): config_opts['macros'] = {}
|
||||
config_opts['macros']['%__arch_install_post'] = '%{nil}'
|
||||
config_opts['macros']['%rhel'] = '5'
|
||||
config_opts['macros']['%dist'] = '.el5'
|
||||
config_opts['macros']['%el5'] = '1'
|
||||
config_opts['releasever'] = '5'
|
||||
|
||||
config_opts['yum.conf'] = """
|
||||
[main]
|
||||
cachedir=/var/cache/yum
|
||||
debuglevel=1
|
||||
logfile=/var/log/yum.log
|
||||
reposdir=/dev/null
|
||||
retries=20
|
||||
obsoletes=1
|
||||
gpgcheck=0
|
||||
assumeyes=1
|
||||
syslog_ident=mock
|
||||
syslog_device=
|
||||
|
||||
# repos
|
||||
|
||||
[core]
|
||||
name=base
|
||||
mirrorlist=http://mirrorlist.centos.org/?release=5&arch=x86_64&repo=os
|
||||
|
||||
[update]
|
||||
name=updates
|
||||
mirrorlist=http://mirrorlist.centos.org/?release=5&arch=x86_64&repo=updates
|
||||
|
||||
[groups]
|
||||
name=groups
|
||||
baseurl=http://buildsys.fedoraproject.org/buildgroups/rhel5/x86_64/
|
||||
|
||||
[extras]
|
||||
name=epel
|
||||
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-5&arch=x86_64
|
||||
|
||||
[testing]
|
||||
name=epel-testing
|
||||
enabled=0
|
||||
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=testing-epel5&arch=x86_64
|
||||
|
||||
[local]
|
||||
name=local
|
||||
baseurl=http://kojipkgs.fedoraproject.org/repos/dist-5E-epel-build/latest/x86_64/
|
||||
cost=2000
|
||||
enabled=0
|
||||
|
||||
[epel-debug]
|
||||
name=epel-debug
|
||||
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-debug-5&arch=x86_64
|
||||
failovermethod=priority
|
||||
enabled=0
|
||||
"""
|
||||
45
files/copr/provision/files/mock/epel-7-x86_64.cfg
Normal file
45
files/copr/provision/files/mock/epel-7-x86_64.cfg
Normal file
@@ -0,0 +1,45 @@
|
||||
config_opts['chroothome'] = '/builddir'
|
||||
config_opts['basedir'] = '/var/lib/mock'
|
||||
config_opts['root'] = 'epel-7-x86_64'
|
||||
config_opts['target_arch'] = 'x86_64'
|
||||
config_opts['legal_host_arches'] = ('x86_64',)
|
||||
config_opts['chroot_setup_cmd'] = 'install bash bzip2 coreutils cpio diffutils findutils gawk gcc gcc-c++ grep gzip info make patch redhat-release-server redhat-rpm-config rpm-build sed shadow-utils tar unzip util-linux which xz'
|
||||
config_opts['dist'] = 'el7' # only useful for --resultdir variable subst
|
||||
config_opts['macros'] = {}
|
||||
config_opts['macros']['%dist'] = '.el7'
|
||||
config_opts['macros']['%rhel'] = '7'
|
||||
config_opts['macros']['%el7'] = '1'
|
||||
config_opts['macros']['%_topdir'] = '/builddir/build'
|
||||
config_opts['macros']['%_rpmfilename'] = '%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm'
|
||||
config_opts['releasever'] = '7'
|
||||
|
||||
config_opts['plugin_conf']['root_cache_enable'] = False
|
||||
config_opts['plugin_conf']['yum_cache_enable'] = False
|
||||
config_opts['plugin_conf']['ccache_enable'] = False
|
||||
|
||||
config_opts['yum.conf'] = """
|
||||
[main]
|
||||
cachedir=/var/cache/yum
|
||||
debuglevel=1
|
||||
logfile=/var/log/yum.log
|
||||
reposdir=/dev/null
|
||||
retries=20
|
||||
obsoletes=1
|
||||
gpgcheck=0
|
||||
assumeyes=1
|
||||
syslog_ident=mock
|
||||
syslog_device=
|
||||
|
||||
# repos
|
||||
|
||||
[beta]
|
||||
name=beta
|
||||
baseurl=http://ftp.redhat.com/redhat/rhel/beta/7/x86_64/os/
|
||||
|
||||
[epel]
|
||||
name=Extra Packages for Enterprise Linux 7 - $basearch
|
||||
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
|
||||
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
|
||||
failovermethod=priority
|
||||
enabled=1
|
||||
"""
|
||||
62
files/copr/provision/files/mock/fedora-20-i386.cfg
Normal file
62
files/copr/provision/files/mock/fedora-20-i386.cfg
Normal file
@@ -0,0 +1,62 @@
|
||||
config_opts['root'] = 'fedora-20-i386'
|
||||
config_opts['target_arch'] = 'i686'
|
||||
config_opts['legal_host_arches'] = ('i386', 'i586', 'i686', 'x86_64')
|
||||
config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build'
|
||||
config_opts['dist'] = 'fc20' # only useful for --resultdir variable subst
|
||||
config_opts['releasever'] = '20'
|
||||
|
||||
config_opts['yum.conf'] = """
|
||||
[main]
|
||||
cachedir=/var/cache/yum
|
||||
debuglevel=1
|
||||
reposdir=/dev/null
|
||||
logfile=/var/log/yum.log
|
||||
retries=20
|
||||
obsoletes=1
|
||||
gpgcheck=0
|
||||
assumeyes=1
|
||||
syslog_ident=mock
|
||||
syslog_device=
|
||||
|
||||
# repos
|
||||
|
||||
[fedora]
|
||||
name=fedora
|
||||
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-20&arch=i386
|
||||
failovermethod=priority
|
||||
|
||||
[updates]
|
||||
name=updates
|
||||
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f20&arch=i386
|
||||
failovermethod=priority
|
||||
|
||||
[updates-testing]
|
||||
name=updates-testing
|
||||
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f20&arch=i386
|
||||
failovermethod=priority
|
||||
enabled=0
|
||||
|
||||
[local]
|
||||
name=local
|
||||
baseurl=http://kojipkgs.fedoraproject.org/repos/f20-build/latest/i386/
|
||||
cost=2000
|
||||
enabled=0
|
||||
|
||||
[fedora-debuginfo]
|
||||
name=fedora-debuginfo
|
||||
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-debug-20&arch=i386
|
||||
failovermethod=priority
|
||||
enabled=0
|
||||
|
||||
[updates-debuginfo]
|
||||
name=updates-debuginfo
|
||||
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-debug-f20&arch=i386
|
||||
failovermethod=priority
|
||||
enabled=0
|
||||
|
||||
[updates-testing-debuginfo]
|
||||
name=updates-testing-debuginfo
|
||||
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-debug-f20&arch=i386
|
||||
failovermethod=priority
|
||||
enabled=0
|
||||
"""
|
||||
62
files/copr/provision/files/mock/fedora-20-x86_64.cfg
Normal file
62
files/copr/provision/files/mock/fedora-20-x86_64.cfg
Normal file
@@ -0,0 +1,62 @@
|
||||
config_opts['root'] = 'fedora-20-x86_64'
|
||||
config_opts['target_arch'] = 'x86_64'
|
||||
config_opts['legal_host_arches'] = ('x86_64',)
|
||||
config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build'
|
||||
config_opts['dist'] = 'fc20' # only useful for --resultdir variable subst
|
||||
config_opts['releasever'] = '20'
|
||||
|
||||
config_opts['yum.conf'] = """
|
||||
[main]
|
||||
cachedir=/var/cache/yum
|
||||
debuglevel=1
|
||||
reposdir=/dev/null
|
||||
logfile=/var/log/yum.log
|
||||
retries=20
|
||||
obsoletes=1
|
||||
gpgcheck=0
|
||||
assumeyes=1
|
||||
syslog_ident=mock
|
||||
syslog_device=
|
||||
|
||||
# repos
|
||||
|
||||
[fedora]
|
||||
name=fedora
|
||||
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-20&arch=x86_64
|
||||
failovermethod=priority
|
||||
|
||||
[updates]
|
||||
name=updates
|
||||
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f20&arch=x86_64
|
||||
failovermethod=priority
|
||||
|
||||
[updates-testing]
|
||||
name=updates-testing
|
||||
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f20&arch=x86_64
|
||||
failovermethod=priority
|
||||
enabled=0
|
||||
|
||||
[local]
|
||||
name=local
|
||||
baseurl=http://kojipkgs.fedoraproject.org/repos/f20-build/latest/x86_64/
|
||||
cost=2000
|
||||
enabled=0
|
||||
|
||||
[fedora-debuginfo]
|
||||
name=fedora-debuginfo
|
||||
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-debug-20&arch=x86_64
|
||||
failovermethod=priority
|
||||
enabled=0
|
||||
|
||||
[updates-debuginfo]
|
||||
name=updates-debuginfo
|
||||
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-debug-f20&arch=x86_64
|
||||
failovermethod=priority
|
||||
enabled=0
|
||||
|
||||
[updates-testing-debuginfo]
|
||||
name=updates-testing-debuginfo
|
||||
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-debug-f20&arch=x86_64
|
||||
failovermethod=priority
|
||||
enabled=0
|
||||
"""
|
||||
152
files/copr/provision/files/mock/site-defaults.cfg
Normal file
152
files/copr/provision/files/mock/site-defaults.cfg
Normal file
@@ -0,0 +1,152 @@
|
||||
# mock defaults
|
||||
# vim:tw=0:ts=4:sw=4:et:
|
||||
#
|
||||
# This config file is for site-specific default values that apply across all
|
||||
# configurations. Options specified in this config file can be overridden in
|
||||
# the individual mock config files.
|
||||
#
|
||||
# The site-defaults.cfg delivered by default has NO options set. Only set
|
||||
# options here if you want to override the defaults.
|
||||
#
|
||||
# Entries in this file follow the same format as other mock config files.
|
||||
# config_opts['foo'] = bar
|
||||
|
||||
#############################################################################
|
||||
#
|
||||
# Things that we recommend you set in site-defaults.cfg:
|
||||
#
|
||||
# config_opts['basedir'] = '/var/lib/mock/'
|
||||
# config_opts['cache_topdir'] = '/var/cache/mock'
|
||||
# Note: the path pointed to by basedir and cache_topdir must be owned
|
||||
# by group 'mock' and must have mode: g+rws
|
||||
# config_opts['rpmbuild_timeout'] = 0
|
||||
# config_opts['use_host_resolv'] = True
|
||||
|
||||
# You can configure log format to pull from logging.ini formats of these names:
|
||||
# config_opts['build_log_fmt_name'] = "unadorned"
|
||||
# config_opts['root_log_fmt_name'] = "detailed"
|
||||
# config_opts['state_log_fmt_name'] = "state"
|
||||
#
|
||||
# mock will normally set up a minimal chroot /dev.
|
||||
# If you want to use a pre-configured /dev, disable this and use the bind-mount
|
||||
# plugin to mount your special /dev
|
||||
# config_opts['internal_dev_setup'] = True
|
||||
#
|
||||
# internal_setarch defaults to 'True' if the python 'ctypes' package is
|
||||
# available. It is in the python std lib on >= python 2.5. On older versions,
|
||||
# it is available as an addon. On systems w/o ctypes, it will default to 'False'
|
||||
# config_opts['internal_setarch'] = False
|
||||
#
|
||||
# the cleanup_on_* options allow you to automatically clean and remove the
|
||||
# mock build directory, but only take effect if --resultdir is used.
|
||||
# config_opts provides fine-grained control. cmdline only has big hammer
|
||||
#
|
||||
# config_opts['cleanup_on_success'] = 1
|
||||
# config_opts['cleanup_on_failure'] = 1
|
||||
|
||||
# if you want mock to automatically run createrepo on the rpms in your
|
||||
# resultdir.
|
||||
# config_opts['createrepo_on_rpms'] = False
|
||||
# config_opts['createrepo_command'] = '/usr/bin/createrepo -d -q -x *.src.rpm'
|
||||
|
||||
#############################################################################
|
||||
#
|
||||
# plugin related. Below are the defaults. Change to suit your site
|
||||
# policy. site-defaults.cfg is a good place to do this.
|
||||
#
|
||||
# NOTE: Some of the caching options can theoretically affect build
|
||||
# reproducability. Change with care.
|
||||
#
|
||||
config_opts['plugin_conf']['package_state_enable'] = True
|
||||
# config_opts['plugin_conf']['ccache_enable'] = True
|
||||
# config_opts['plugin_conf']['ccache_opts']['max_cache_size'] = '4G'
|
||||
# config_opts['plugin_conf']['ccache_opts']['compress'] = None
|
||||
# config_opts['plugin_conf']['ccache_opts']['dir'] = "%(cache_topdir)s/%(root)s/ccache/"
|
||||
# config_opts['plugin_conf']['yum_cache_enable'] = True
|
||||
# config_opts['plugin_conf']['yum_cache_opts']['max_age_days'] = 30
|
||||
# config_opts['plugin_conf']['yum_cache_opts']['dir'] = "%(cache_topdir)s/%(root)s/yum_cache/"
|
||||
# config_opts['plugin_conf']['root_cache_enable'] = True
|
||||
# config_opts['plugin_conf']['root_cache_opts']['max_age_days'] = 15
|
||||
# config_opts['plugin_conf']['root_cache_opts']['dir'] = "%(cache_topdir)s/%(root)s/root_cache/"
|
||||
# config_opts['plugin_conf']['root_cache_opts']['compress_program'] = "pigz"
|
||||
# config_opts['plugin_conf']['root_cache_opts']['extension'] = ".gz"
|
||||
# config_opts['plugin_conf']['root_cache_opts']['exclude_dirs'] = ["./proc", "./sys", "./dev",
|
||||
# "./tmp/ccache", "./var/cache/yum" ]
|
||||
#
|
||||
# bind mount plugin is enabled by default but has no configured directories to
|
||||
# mount
|
||||
# config_opts['plugin_conf']['bind_mount_enable'] = True
|
||||
# config_opts['plugin_conf']['bind_mount_opts']['dirs'].append(('/host/path', '/bind/mount/path/in/chroot/' ))
|
||||
#
|
||||
# config_opts['plugin_conf']['tmpfs_enable'] = False
|
||||
# config_opts['plugin_conf']['tmpfs_opts']['required_ram_mb'] = 1024
|
||||
# config_opts['plugin_conf']['tmpfs_opts']['max_fs_size'] = '512m'
|
||||
|
||||
#############################################################################
|
||||
#
|
||||
# environment for chroot
|
||||
#
|
||||
# config_opts['environment']['TERM'] = 'vt100'
|
||||
# config_opts['environment']['SHELL'] = '/bin/bash'
|
||||
# config_opts['environment']['HOME'] = '/builddir'
|
||||
# config_opts['environment']['HOSTNAME'] = 'mock'
|
||||
# config_opts['environment']['PATH'] = '/usr/bin:/bin:/usr/sbin:/sbin'
|
||||
# config_opts['environment']['PROMPT_COMMAND'] = 'echo -n "<mock-chroot>"'
|
||||
# config_opts['environment']['LANG'] = os.environ.setdefault('LANG', 'en_US.UTF-8')
|
||||
# config_opts['environment']['TZ'] = os.environ.setdefault('TZ', 'EST5EDT')
|
||||
|
||||
#############################################################################
|
||||
#
|
||||
# Things that you can change, but we dont recommend it:
|
||||
# config_opts['chroothome'] = '/builddir'
|
||||
# config_opts['clean'] = True
|
||||
|
||||
#############################################################################
|
||||
#
|
||||
# Things that must be adjusted if SCM integration is used:
|
||||
#
|
||||
# config_opts['scm'] = True
|
||||
# config_opts['scm_opts']['method'] = 'git'
|
||||
# config_opts['scm_opts']['cvs_get'] = 'cvs -d /srv/cvs co SCM_BRN SCM_PKG'
|
||||
# config_opts['scm_opts']['git_get'] = 'git clone SCM_BRN git://localhost/SCM_PKG.git SCM_PKG'
|
||||
# config_opts['scm_opts']['svn_get'] = 'svn co file:///srv/svn/SCM_PKG/SCM_BRN SCM_PKG'
|
||||
# config_opts['scm_opts']['spec'] = 'SCM_PKG.spec'
|
||||
# config_opts['scm_opts']['ext_src_dir'] = '/dev/null'
|
||||
# config_opts['scm_opts']['write_tar'] = True
|
||||
# config_opts['scm_opts']['git_timestamps'] = True
|
||||
|
||||
# These options are also recognized but usually defined in cmd line
|
||||
# with --scm-option package=<pkg> --scm-option branch=<branch>
|
||||
# config_opts['scm_opts']['package'] = 'mypkg'
|
||||
# config_opts['scm_opts']['branch'] = 'master'
|
||||
|
||||
#############################################################################
|
||||
#
|
||||
# Things that are best suited for individual chroot config files:
|
||||
#
|
||||
# MUST SET (in individual chroot cfg file):
|
||||
# config_opts['root'] = 'name-of-yum-build-dir'
|
||||
# config_opts['target_arch'] = 'i386'
|
||||
# config_opts['yum.conf'] = ''
|
||||
# config_opts['yum_common_opts'] = []
|
||||
#
|
||||
# CAN SET, defaults usually work ok:
|
||||
# config_opts['chroot_setup_cmd'] = 'install buildsys-build'
|
||||
# config_opts['log_config_file'] = 'logging.ini'
|
||||
# config_opts['more_buildreqs']['srpm_name-version-release'] = 'dependencies'
|
||||
# config_opts['macros']['%Add_your_macro_name_here'] = "add macro value here"
|
||||
# config_opts['files']['path/name/no/leading/slash'] = "put file contents here."
|
||||
# config_opts['chrootuid'] = os.getuid()
|
||||
|
||||
# If you change chrootgid, you must also change "mock" to the correct group
|
||||
# name in this line of the mock PAM config:
|
||||
# auth sufficient pam_succeed_if.so user ingroup mock use_uid quiet
|
||||
# config_opts['chrootgid'] = grp.getgrnam("mock")[2]
|
||||
|
||||
# config_opts['useradd'] = '/usr/sbin/useradd -m -u %(uid)s -g %(gid)s -d %(home)s -n %(user)s' # Fedora/RedHat
|
||||
#
|
||||
# Security related
|
||||
# config_opts['no_root_shells'] = False
|
||||
#
|
||||
# Proxy settings (https_proxy, ftp_proxy, and no_proxy can also be set)
|
||||
# config_opts['http_proxy'] = 'http://localhost:3128'
|
||||
16
files/copr/provision/terminatepb.yml
Normal file
16
files/copr/provision/terminatepb.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
- name: terminate instance
|
||||
hosts: all
|
||||
user: root
|
||||
gather_facts: False
|
||||
|
||||
tasks:
|
||||
- name: find the instance id from the builder
|
||||
action: command curl -s http://169.254.169.254/latest/meta-data/instance-id
|
||||
register: instanceid
|
||||
|
||||
- name: terminate it
|
||||
local_action: command euca-terminate-instances {{ instanceid.stdout }}
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
# run twice daily rsync of download. but lock it
|
||||
MAILTO=smooge@gmail.com,root@fedoraproject.org
|
||||
00 11,23 * * * root /usr/local/bin/lock-wrapper sync-up-downloads "/usr/local/bin/sync-up-downloads"
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
# Run quick mirror fedora every 10minutes
|
||||
*/10 * * * * root flock -n -E0 /tmp/download-sync -c '/root/quick-fedora-mirror/quick-fedora-mirror -c /root/quick-fedora-mirror/quick-fedora-mirror.conf'
|
||||
@@ -1,162 +0,0 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
# Copyright (C) 2014 by Adrian Reber
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
# "Software"), to deal in the Software without restriction, including
|
||||
# without limitation the rights to use, copy, modify, merge, publish,
|
||||
# distribute, sublicense, and/or sell copies of the Software, and to
|
||||
# permit persons to whom the Software is furnished to do so, subject to
|
||||
# the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be
|
||||
# included in all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
import requests
|
||||
import time
|
||||
import sys
|
||||
import getopt
|
||||
|
||||
fedora = 'org.fedoraproject.prod.bodhi.updates.fedora.sync'
|
||||
epel = 'org.fedoraproject.prod.bodhi.updates.epel.sync'
|
||||
|
||||
branched = 'org.fedoraproject.prod.compose.branched.rsync.complete'
|
||||
rawhide = 'org.fedoraproject.prod.compose.rawhide.rsync.complete'
|
||||
|
||||
base_url = 'https://apps.fedoraproject.org/datagrepper/raw'
|
||||
|
||||
|
||||
topics = []
|
||||
# default time interval to query for syncs: 1 day
|
||||
delta = 86400
|
||||
# return 0 and no output if a sync happened during <delta>
|
||||
# if no sync happened 1 is returned
|
||||
quiet = False
|
||||
secondary = False
|
||||
rawtime = False
|
||||
|
||||
def usage():
|
||||
print
|
||||
print "last-sync queries the Fedora Message Bus if new data is available on the public servers"
|
||||
print
|
||||
print "Usage: last-sync [options]"
|
||||
print
|
||||
print "Options:"
|
||||
print " -a, --all query all possible releases (default)"
|
||||
print " (fedora, epel, branched, rawhide)"
|
||||
print " -f, --fedora only query if fedora has been updated during <delta>"
|
||||
print " -e, --epel only query if epel has been updated"
|
||||
print " -b, --branched only query if the branched off release"
|
||||
print " has been updated"
|
||||
print " -r, --rawhide only query if rawhide has been updated"
|
||||
print " -q, --quiet do not print out any informations"
|
||||
print " -t, --time print date in seconds since 1970-01-01"
|
||||
print " -d DELTA, --delta=DELTA specify the time interval which should be used"
|
||||
print " for the query (default: 86400)"
|
||||
|
||||
|
||||
# -a -f -e -b -r -s -q -d
|
||||
def parse_args():
|
||||
global topics
|
||||
global delta
|
||||
global quiet
|
||||
global secondary
|
||||
global rawtime
|
||||
try:
|
||||
opts, args = getopt.getopt(sys.argv[1:], "afhebrsqtd:", ["all", "fedora", "epel", "rawhide", "branched", "secondary", "quiet", "time", "delta="])
|
||||
except getopt.GetoptError as err:
|
||||
print str(err)
|
||||
usage()
|
||||
sys.exit(2)
|
||||
|
||||
for option, argument in opts:
|
||||
if option in ("-a", "--all"):
|
||||
topics = [ fedora, epel, branched, rawhide ]
|
||||
secondary = True
|
||||
if option in ("-f", "--fedora"):
|
||||
topics.append(fedora)
|
||||
if option in ("-e", "--epel"):
|
||||
topics.append(epel)
|
||||
if option in ("-r", "--rawhide"):
|
||||
topics.append(rawhide)
|
||||
if option in ("-b", "--branched"):
|
||||
topics.append(branched)
|
||||
if option in ("-s", "--secondary"):
|
||||
topics.append(rawhide)
|
||||
secondary = True
|
||||
if option in ("-q", "--quiet"):
|
||||
quiet = True
|
||||
if option in ("-t", "--time"):
|
||||
rawtime = True
|
||||
if option in ("-d", "--delta"):
|
||||
delta = argument
|
||||
if option in ("-h"):
|
||||
usage();
|
||||
sys.exit(0)
|
||||
|
||||
|
||||
|
||||
def getKey(item):
|
||||
return item[1]
|
||||
|
||||
def create_url(url, topics, delta):
|
||||
topic = ""
|
||||
for i in topics:
|
||||
topic += "&topic=%s" % i
|
||||
return '%s?delta=%s%s' % (url, delta, topic)
|
||||
|
||||
parse_args()
|
||||
|
||||
if topics == []:
|
||||
topics = [ fedora, epel, branched, rawhide ]
|
||||
secondary = True
|
||||
|
||||
i = 0
|
||||
data = None
|
||||
while i < 5:
|
||||
try:
|
||||
data = requests.get(create_url(base_url, topics, delta), timeout=1).json()
|
||||
break
|
||||
except:
|
||||
pass
|
||||
|
||||
if not data:
|
||||
sys.exit(1)
|
||||
|
||||
repos = []
|
||||
|
||||
for i in range(0, data['count']):
|
||||
try:
|
||||
repo = "%s-%s" % (data['raw_messages'][i]['msg']['repo'], data['raw_messages'][i]['msg']['release'])
|
||||
except:
|
||||
# the rawhide and branch sync message has no repo information
|
||||
arch = data['raw_messages'][i]['msg']['arch']
|
||||
if arch == '':
|
||||
arch = 'primary'
|
||||
elif not secondary:
|
||||
continue
|
||||
repo = "%s-%s" % (data['raw_messages'][i]['msg']['branch'], arch)
|
||||
|
||||
repos.append([repo, data['raw_messages'][i]['timestamp']])
|
||||
|
||||
if quiet == False:
|
||||
for repo, timestamp in sorted(repos, key=getKey):
|
||||
if rawtime == True:
|
||||
# this is useful if you want to compare the timestamp in seconds versus string
|
||||
print "%s: %s" % (repo, timestamp)
|
||||
else:
|
||||
print "%s: %s" % (repo, time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.gmtime(timestamp)))
|
||||
|
||||
if data['count'] > 0:
|
||||
sys.exit(0)
|
||||
else:
|
||||
sys.exit(1)
|
||||
@@ -1,27 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
##
|
||||
## This script is used to sync data from main download servers to
|
||||
## secondary server at ibiblio.
|
||||
##
|
||||
|
||||
RSYNC='/usr/bin/rsync'
|
||||
RS_OPT="-avSHP --numeric-ids"
|
||||
RS_DEADLY="--delete --delete-excluded --delete-delay --delay-updates"
|
||||
ALT_EXCLUDES="--exclude deltaisos/archive --exclude 22_Alpha* --exclude 22_Beta*"
|
||||
EPL_EXCLUDES=""
|
||||
FED_EXCLUDES=""
|
||||
|
||||
SERVER=dl.fedoraproject.org
|
||||
|
||||
# http://dl.fedoraproject.org/pub/alt/stage/
|
||||
${RSYNC} ${RS_OPT} ${RS_DEADLY} ${ALT_EXCLUDES} ${SERVER}::fedora-alt/stage/ /srv/pub/alt/stage/ | tail -n2 | logger -p local0.notice -t rsync_updates_alt_stg
|
||||
# http://dl.fedoraproject.org/pub/alt/bfo/
|
||||
${RSYNC} ${RS_OPT} ${RS_DEADLY} ${ALT_EXCLUDES} ${SERVER}::fedora-alt/bfo/ /srv/pub/alt/bfo/ | tail -n2 | logger -p local0.notice -t rsync_updates_alt_bfo
|
||||
# http://dl.fedoraproject.org/pub/epel/
|
||||
${RSYNC} ${RS_OPT} ${RS_DEADLY} ${EPL_EXCLUDES} ${SERVER}::fedora-epel/ /srv/pub/epel/ | tail -n2 | logger -p local0.notice -t rsync_updates_epel
|
||||
# http://dl.fedoraproject.org/pub/fedora/
|
||||
${RSYNC} ${RS_OPT} ${RS_DEADLY} ${FED_EXCLUDES} ${SERVER}::fedora-enchilada0/ /srv/pub/fedora/ | tail -n2 | logger -p local0.notice -t rsync_updates_fedora
|
||||
|
||||
# Let MM know I'm all up to date
|
||||
#/usr/bin/report_mirror
|
||||
@@ -1,66 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
##
|
||||
## This script is used to sync data from main download servers to
|
||||
## secondary server at ibiblio.
|
||||
##
|
||||
|
||||
RSYNC='/usr/bin/rsync'
|
||||
RS_OPT="-avSHP --numeric-ids "
|
||||
RS_DEADLY="--delete --delete-excluded --delete-delay --delay-updates"
|
||||
ALT_EXCLUDES=""
|
||||
EPL_EXCLUDES=""
|
||||
FED_EXCLUDES=""
|
||||
|
||||
DATE_EPEL='/root/last-epel-sync'
|
||||
DATE_FED='/root/last-fed-sync'
|
||||
DATE_ARCHIVE='/root/last-archive-sync'
|
||||
DATE_ALT='/root/last-alt-sync'
|
||||
DATE_SECOND='/root/last-second-sync'
|
||||
|
||||
for i in ${DATE_EPEL} ${DATE_FED} ${DATE_ARCHIVE} ${DATE_ALT} ${DATE_SECOND}; do
|
||||
touch ${i}
|
||||
done
|
||||
|
||||
LAST_SYNC='/usr/local/bin/last-sync'
|
||||
|
||||
SERVER=dl.fedoraproject.org
|
||||
|
||||
function sync_stuff() {
|
||||
if [[ $# -ne 5 ]]; then
|
||||
echo "Illegal number of arguments to sync_stuff: " $#
|
||||
exit 1
|
||||
fi
|
||||
DATE_FILE=$1
|
||||
LOGGER_NAME=$2
|
||||
RSYNC_FROM=$3
|
||||
RSYNC_TO=$4
|
||||
FLAG="$5"
|
||||
|
||||
CURDATE=$( date +%s )
|
||||
if [[ -s ${DATE_FILE} ]]; then
|
||||
LASTRUN=$( cat ${DATE_FILE} | awk '{print int($NF)}' )
|
||||
else
|
||||
LASTRUN=$( date +%s --date="Jan 1 00:00:00 UTC 2007" )
|
||||
fi
|
||||
DELTA=`echo ${CURDATE}-${LASTRUN} | bc`
|
||||
|
||||
${LAST_SYNC} -d ${DELTA} -q ${FLAG}
|
||||
|
||||
if [ "$?" -eq "0" ]; then
|
||||
${RSYNC} ${RS_OPT} ${RS_DEADLY} ${ALT_EXCLUDES} ${SERVER}::${RSYNC_FROM} ${RSYNC_TO} | tail -n2 | logger -p local0.notice -t ${LOGGER_NAME}
|
||||
echo ${CURDATE} > ${DATE_FILE}
|
||||
else
|
||||
logger -p local0.notice -t ${LOGGER_NAME} "No change found. Not syncing"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
sync_stuff ${DATE_EPEL} rsync_epel fedora-epel0 /srv/pub/epel/ "-e"
|
||||
sync_stuff ${DATE_FED} rsync_fedora fedora-enchilada0 /srv/pub/fedora/ "-f"
|
||||
sync_stuff ${DATE_ARCHIVE} rsync_archive fedora-archive0 /srv/pub/archive/ "-f"
|
||||
sync_stuff ${DATE_ALT} rsync_alt fedora-alt0 /srv/pub/alt/ "-f"
|
||||
sync_stuff ${DATE_SECOND} rsync_second fedora-secondary0 /srv/pub/fedora-secondary/ "-f"
|
||||
|
||||
# Let MM know I'm all up to date
|
||||
#/usr/bin/report_mirror
|
||||
@@ -1,28 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
##
|
||||
## This script is used to sync data from main download servers to
|
||||
## secondary server at ibiblio.
|
||||
##
|
||||
|
||||
RSYNC='/usr/bin/rsync'
|
||||
RS_OPT="-avSHP --numeric-ids"
|
||||
RS_DEADLY="--delete --delete-excluded --delete-delay --delay-updates"
|
||||
ALT_EXCLUDES=""
|
||||
EPL_EXCLUDES=""
|
||||
FED_EXCLUDES=""
|
||||
|
||||
LAST_SYNC='/usr/local/bin/last-sync'
|
||||
|
||||
SERVER=dl.fedoraproject.org
|
||||
|
||||
# Alt
|
||||
${RSYNC} ${RS_OPT} ${RS_DEADLY} ${ALT_EXCLUDES} ${SERVER}::fedora-alt0/ /srv/pub/alt/ | tail -n2 | logger -p local0.notice -t rsync_alt
|
||||
# Secondary
|
||||
${RSYNC} ${RS_OPT} ${RS_DEADLY} ${ALT_EXCLUDES} ${SERVER}::fedora-secondary/ /srv/pub/fedora-secondary/ | tail -n2 | logger -p local0.notice -t rsync_2nd
|
||||
# Archives
|
||||
${RSYNC} ${RS_OPT} ${RS_DEADLY} ${ALT_EXCLUDES} ${SERVER}::fedora-archive/ /srv/pub/archive/ | tail -n2 | logger -p local0.notice -t rsync_archive
|
||||
|
||||
|
||||
# Let MM know I'm all up to date
|
||||
#/usr/bin/report_mirror
|
||||
@@ -1,23 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIID2DCCAsACCQCxRWmzwjSj6TANBgkqhkiG9w0BAQUFADCBrTELMAkGA1UEBhMC
|
||||
VVMxCzAJBgNVBAgMAk5NMRAwDgYDVQQHDAdSYWxlaWdoMRAwDgYDVQQKDAdSZWQg
|
||||
SGF0MRcwFQYDVQQLDA5GZWRvcmEgUHJvamVjdDEsMCoGA1UEAwwjZmVkLWNsb3Vk
|
||||
MDkuY2xvdWQuZmVkb3JhcHJvamVjdC5vcmcxJjAkBgkqhkiG9w0BCQEWF2FkbWlu
|
||||
QGZlZG9yYXByb2plY3Qub3JnMB4XDTE0MDkxODEwMjMxMloXDTE1MDkxODEwMjMx
|
||||
Mlowga0xCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJOTTEQMA4GA1UEBwwHUmFsZWln
|
||||
aDEQMA4GA1UECgwHUmVkIEhhdDEXMBUGA1UECwwORmVkb3JhIFByb2plY3QxLDAq
|
||||
BgNVBAMMI2ZlZC1jbG91ZDA5LmNsb3VkLmZlZG9yYXByb2plY3Qub3JnMSYwJAYJ
|
||||
KoZIhvcNAQkBFhdhZG1pbkBmZWRvcmFwcm9qZWN0Lm9yZzCCASIwDQYJKoZIhvcN
|
||||
AQEBBQADggEPADCCAQoCggEBALFOYDRhow6sEyCvm4jNlIAxs9vYDF07q3sEHzVj
|
||||
zXy0NNlUgZPRCijWFyHRDwy383f7ZtRlqVCGXxm4l8ltQUU+jmXcnIY1xY2A1TPv
|
||||
nWv+f1dGSv+SfWGAjqgwyajr6wyPAOnpwui2v03/xalAx6Xl7padfdlAEsNjAvNb
|
||||
5uZkW7DLlDu3jSIroDSKsJUQW9kc1elT90W0mNgw3MpFA5zdj0QRxi2JpBth6PeT
|
||||
CewN4r7QZ5cP4EzfHMLKT21kJzm+j5jlaQEak4yKWDEeLh4+RxgTnmss4zYKTUit
|
||||
7H+j9KaxqVsneB8Sg7EtVnXafYLrSlr9fwOV5DWklLzvjBMCAwEAATANBgkqhkiG
|
||||
9w0BAQUFAAOCAQEAHToeNGFaGlybHICw1ncLCmdu6vikPPn/UShfS25U54Q9eIMn
|
||||
zqlhbbEyzuF4wKjV35W0BORWKJ+hQ2vpfk21jUMVOsdl7IMEXtIWotfO17ufWM28
|
||||
zhwcPAlrs/Pr5dF7ihbOGKAHhEYVopSH8OTFayAQKWWKGv52lZsgwfrnDDu0TjIo
|
||||
zmhCEmOWZf+CeEWT/AP7BJ6g4Apz9grUmaRvaQGft5y5sGC8tsV0im/C9WaMfVhF
|
||||
wemG2KcOuKJDXtvd7DHNBoHcDrB1cN1i0uKhj0nxXsXpeag9Xh4BmkgHMU8rnegK
|
||||
q7hOy15qVU/lOBZUtfx69aYHPpOGJ7Jc1xFIiQ==
|
||||
-----END CERTIFICATE-----
|
||||
@@ -1,2 +0,0 @@
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCv8WqXOuL78Rd7ZvDqoi84M7uRV3uueXTXtvlPdyNQBzIBmxh+spw9IhtoR+FlzgQQ1MN4B7YVLTGki6QDxWDM5jgTVfzxTh/HTg7kJ31HbM1/jDuBK7HMfay2BGx/HCqS2oxIBgIBwIMQAU93jBZUxNyYWvO+5TiU35IHEkYOtHyGYtTtuGCopYRQoAAOIVIIzzDbPvopojCBF5cMYglR/G02YgWM7hMpQ9IqEttLctLmpg6ckcp/sDTHV/8CbXbrSN6pOYxn1YutOgC9MHNmxC1joMH18qkwvSnzXaeVNh4PBWnm1f3KVTSZXKuewPThc3fk2sozgM9BH6KmZoKl
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
{{fed_cloud09_nova_public_key}}
|
||||
@@ -1 +0,0 @@
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA1sBKROSJ3rzI0IlBkM926Dvpiw3a4wYSys0ZeKRohWZg369ilZkUkRhsy0g4JU85lt6rxf5JLwURF+fWBEohauF1Uvklc25LdZpRS3IBQPaXvWeM8lygQQomFc0Df6iUbCYFWnEWMjKd7FGYX3DgOZLnG8tV2vX7jFjqitsh5LRAbmghUBRarw/ix4CFx7+VIeKCBkAybviQIW828N1IqJC6/e7v6/QStpblYpCFPqMflXhQ/KS2D043Yy/uUjmOjMWwOMFS6Qk+py1C0mDU0TUptFYwDP5o9IK/c5HaccmOl2IyUPB1/RCtTfOn6wXPRTMUU+5w+TcPH6MPvvuiSQ== root@lockbox01.phx2.fedoraproject.org
|
||||
@@ -1,135 +0,0 @@
|
||||
#---------------------------------------------------------------------
|
||||
# Example configuration for a possible web application. See the
|
||||
# full configuration options online.
|
||||
#
|
||||
# http://haproxy.1wt.eu/download/1.4/doc/configuration.txt
|
||||
#
|
||||
#---------------------------------------------------------------------
|
||||
|
||||
#---------------------------------------------------------------------
|
||||
# Global settings
|
||||
#---------------------------------------------------------------------
|
||||
global
|
||||
# to have these messages end up in /var/log/haproxy.log you will
|
||||
# need to:
|
||||
#
|
||||
# 1) configure syslog to accept network log events. This is done
|
||||
# by adding the '-r' option to the SYSLOGD_OPTIONS in
|
||||
# /etc/sysconfig/syslog
|
||||
#
|
||||
# 2) configure local2 events to go to the /var/log/haproxy.log
|
||||
# file. A line like the following can be added to
|
||||
# /etc/sysconfig/syslog
|
||||
#
|
||||
# local2.* /var/log/haproxy.log
|
||||
#
|
||||
log 127.0.0.1 local2
|
||||
|
||||
chroot /var/lib/haproxy
|
||||
pidfile /var/run/haproxy.pid
|
||||
maxconn 4000
|
||||
user haproxy
|
||||
group haproxy
|
||||
daemon
|
||||
|
||||
# turn on stats unix socket
|
||||
stats socket /var/lib/haproxy/stats
|
||||
|
||||
tune.ssl.default-dh-param 1024
|
||||
ssl-default-bind-ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK
|
||||
|
||||
|
||||
#---------------------------------------------------------------------
|
||||
# common defaults that all the 'listen' and 'backend' sections will
|
||||
# use if not designated in their block
|
||||
#---------------------------------------------------------------------
|
||||
defaults
|
||||
mode http
|
||||
log global
|
||||
option httplog
|
||||
option dontlognull
|
||||
option http-server-close
|
||||
option forwardfor except 127.0.0.0/8
|
||||
option redispatch
|
||||
retries 3
|
||||
timeout http-request 10s
|
||||
timeout queue 1m
|
||||
timeout connect 10s
|
||||
timeout client 1m
|
||||
timeout server 1m
|
||||
timeout http-keep-alive 10s
|
||||
timeout check 10s
|
||||
maxconn 3000
|
||||
|
||||
#frontend keystone_public *:5000
|
||||
# default_backend keystone_public
|
||||
#frontend keystone_admin *:35357
|
||||
# default_backend keystone_admin
|
||||
frontend neutron
|
||||
bind 0.0.0.0:9696 ssl no-sslv3 no-tlsv10 crt /etc/haproxy/fedorainfracloud.org.combined
|
||||
default_backend neutron
|
||||
# HSTS (31536000 seconds = 365 days)
|
||||
rspadd Strict-Transport-Security:\ max-age=31536000
|
||||
|
||||
frontend cinder
|
||||
bind 0.0.0.0:8776 ssl no-sslv3 no-tlsv10 crt /etc/haproxy/fedorainfracloud.org.combined
|
||||
default_backend cinder
|
||||
# HSTS (31536000 seconds = 365 days)
|
||||
rspadd Strict-Transport-Security:\ max-age=31536000
|
||||
|
||||
frontend swift
|
||||
bind 0.0.0.0:8080 ssl no-sslv3 no-tlsv10 crt /etc/haproxy/fedorainfracloud.org.combined
|
||||
default_backend swift
|
||||
# HSTS (31536000 seconds = 365 days)
|
||||
rspadd Strict-Transport-Security:\ max-age=31536000
|
||||
|
||||
frontend nova
|
||||
bind 0.0.0.0:8774 ssl no-sslv3 no-tlsv10 crt /etc/haproxy/fedorainfracloud.org.combined
|
||||
default_backend nova
|
||||
# HSTS (31536000 seconds = 365 days)
|
||||
rspadd Strict-Transport-Security:\ max-age=31536000
|
||||
|
||||
frontend ceilometer
|
||||
bind 0.0.0.0:8777 ssl no-sslv3 no-tlsv10 crt /etc/haproxy/fedorainfracloud.org.combined
|
||||
default_backend ceilometer
|
||||
# HSTS (31536000 seconds = 365 days)
|
||||
rspadd Strict-Transport-Security:\ max-age=31536000
|
||||
|
||||
frontend ec2
|
||||
bind 0.0.0.0:8773 ssl no-sslv3 no-tlsv10 crt /etc/haproxy/fedorainfracloud.org.combined
|
||||
default_backend ec2
|
||||
# HSTS (31536000 seconds = 365 days)
|
||||
rspadd Strict-Transport-Security:\ max-age=31536000
|
||||
|
||||
frontend glance
|
||||
bind 0.0.0.0:9292 ssl no-sslv3 no-tlsv10 crt /etc/haproxy/fedorainfracloud.org.combined
|
||||
default_backend glance
|
||||
# HSTS (31536000 seconds = 365 days)
|
||||
rspadd Strict-Transport-Security:\ max-age=31536000
|
||||
|
||||
backend neutron
|
||||
server neutron 127.0.0.1:8696 check
|
||||
|
||||
backend cinder
|
||||
server cinder 127.0.0.1:6776 check
|
||||
|
||||
backend swift
|
||||
server swift 127.0.0.1:7080 check
|
||||
|
||||
backend nova
|
||||
server nova 127.0.0.1:6774 check
|
||||
|
||||
backend ceilometer
|
||||
server ceilometer 127.0.0.1:6777 check
|
||||
|
||||
backend ec2
|
||||
server ec2 127.0.0.1:6773 check
|
||||
|
||||
backend glance
|
||||
server glance 127.0.0.1:7292 check
|
||||
|
||||
backend keystone_public
|
||||
server keystone_public 127.0.0.1:5000 check
|
||||
|
||||
backend keystone_admin
|
||||
server keystone_admin 127.0.0.1:35357 check
|
||||
@@ -1,24 +0,0 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
|
||||
# http://docs.openstack.org/icehouse/install-guide/install/yum/content/basics-neutron-networking-controller-node.html
|
||||
# controller
|
||||
{{ controller_public_ip }} controller
|
||||
|
||||
# network
|
||||
{{ network_public_ip }} network
|
||||
|
||||
# compute1
|
||||
{{ compute1_private_ip }} fed-cloud10.cloud.fedoraproject.org
|
||||
{{ compute2_private_ip }} fed-cloud11.cloud.fedoraproject.org
|
||||
{{ compute3_private_ip }} fed-cloud12.cloud.fedoraproject.org
|
||||
{{ compute4_private_ip }} fed-cloud13.cloud.fedoraproject.org
|
||||
{{ compute5_private_ip }} fed-cloud14.cloud.fedoraproject.org
|
||||
{{ compute6_private_ip }} fed-cloud15.cloud.fedoraproject.org
|
||||
#
|
||||
# This is needed for 2fa to work correctly.
|
||||
#
|
||||
209.132.181.6 infrastructure infrastructure.fedoraproject.org
|
||||
209.132.181.32 fas-all.phx2.fedoraproject.org
|
||||
|
||||
{{ controller_private_ip }} fed-cloud09.cloud.fedoraproject.org fedorainfracloud.org
|
||||
@@ -1,9 +0,0 @@
|
||||
DEVICE=br-ex
|
||||
DEVICETYPE=ovs
|
||||
TYPE=OVSBridge
|
||||
BOOTPROTO=static
|
||||
IPADDR={{ network_public_ip }}
|
||||
NETMASK={{ public_netmask }} # your netmask
|
||||
GATEWAY={{ public_gateway_ip }} # your gateway
|
||||
DNS1={{ public_dns }} # your nameserver
|
||||
ONBOOT=yes
|
||||
@@ -1,8 +0,0 @@
|
||||
DEVICE="eth0"
|
||||
NAME="eth0"
|
||||
ONBOOT=yes
|
||||
BOOTPROTO=none
|
||||
HWADDR="f0:1f:af:e3:5f:0c"
|
||||
DEVICETYPE=ovs
|
||||
TYPE=OVSPort
|
||||
OVS_BRIDGE=br-ex
|
||||
@@ -1,5 +0,0 @@
|
||||
export OS_USERNAME=msuchy
|
||||
export OS_TENANT_NAME=copr
|
||||
export OS_PASSWORD=TBD
|
||||
export OS_AUTH_URL=http://209.132.184.9:5000/v2.0/
|
||||
export PS1='[\u@\h \W(keystone_msuchy)]\$ '
|
||||
@@ -1,4 +0,0 @@
|
||||
[client]
|
||||
host=localhost
|
||||
user=root
|
||||
password={{ DBPASSWORD }}
|
||||
@@ -1 +0,0 @@
|
||||
StrictHostKeyChecking no
|
||||
@@ -1,2 +0,0 @@
|
||||
# You may specify other parameters to the nova-novncproxy here
|
||||
OPTIONS="--novncproxy_host 209.132.184.9 --ssl_only"
|
||||
@@ -1,512 +0,0 @@
|
||||
[general]
|
||||
|
||||
# Path to a Public key to install on servers. If a usable key has not
|
||||
# been installed on the remote servers the user will be prompted for a
|
||||
# password and this key will be installed so the password will not be
|
||||
# required again
|
||||
CONFIG_SSH_KEY=/root/.ssh/id_rsa.pub
|
||||
|
||||
# Set to 'y' if you would like Packstack to install MySQL
|
||||
CONFIG_MARIADB_INSTALL=y
|
||||
|
||||
# Set to 'y' if you would like Packstack to install OpenStack Image
|
||||
# Service (Glance)
|
||||
CONFIG_GLANCE_INSTALL=y
|
||||
|
||||
# Set to 'y' if you would like Packstack to install OpenStack Block
|
||||
# Storage (Cinder)
|
||||
CONFIG_CINDER_INSTALL=y
|
||||
|
||||
# Set to 'y' if you would like Packstack to install OpenStack Compute
|
||||
# (Nova)
|
||||
CONFIG_NOVA_INSTALL=y
|
||||
|
||||
# Set to 'y' if you would like Packstack to install OpenStack
|
||||
# Networking (Neutron)
|
||||
CONFIG_NEUTRON_INSTALL=y
|
||||
|
||||
# Set to 'y' if you would like Packstack to install OpenStack
|
||||
# Dashboard (Horizon)
|
||||
CONFIG_HORIZON_INSTALL=y
|
||||
|
||||
# Set to 'y' if you would like Packstack to install OpenStack Object
|
||||
# Storage (Swift)
|
||||
CONFIG_SWIFT_INSTALL=y
|
||||
|
||||
# Set to 'y' if you would like Packstack to install OpenStack
|
||||
# Metering (Ceilometer)
|
||||
CONFIG_CEILOMETER_INSTALL=y
|
||||
|
||||
# Set to 'y' if you would like Packstack to install OpenStack
|
||||
# Orchestration (Heat)
|
||||
CONFIG_HEAT_INSTALL=n
|
||||
|
||||
# Set to 'y' if you would like Packstack to install the OpenStack
|
||||
# Client packages. An admin "rc" file will also be installed
|
||||
CONFIG_CLIENT_INSTALL=y
|
||||
|
||||
# Comma separated list of NTP servers. Leave plain if Packstack
|
||||
# should not install ntpd on instances.
|
||||
CONFIG_NTP_SERVERS=
|
||||
|
||||
# Set to 'y' if you would like Packstack to install Nagios to monitor
|
||||
# OpenStack hosts
|
||||
CONFIG_NAGIOS_INSTALL=n
|
||||
|
||||
# Comma separated list of servers to be excluded from installation in
|
||||
# case you are running Packstack the second time with the same answer
|
||||
# file and don't want Packstack to touch these servers. Leave plain if
|
||||
# you don't need to exclude any server.
|
||||
EXCLUDE_SERVERS=
|
||||
|
||||
# Set to 'y' if you want to run OpenStack services in debug mode.
|
||||
# Otherwise set to 'n'.
|
||||
CONFIG_DEBUG_MODE=n
|
||||
|
||||
# Set to 'y' if you want to use VMware vCenter as hypervisor and
|
||||
# storageOtherwise set to 'n'.
|
||||
CONFIG_VMWARE_BACKEND=n
|
||||
|
||||
# The IP address of the server on which to install MySQL
|
||||
CONFIG_MARIADB_HOST={{ controller_public_ip }}
|
||||
|
||||
# Username for the MySQL admin user
|
||||
CONFIG_MARIADB_USER=root
|
||||
|
||||
# Password for the MySQL admin user
|
||||
CONFIG_MARIADB_PW={{ DBPASSWORD }}
|
||||
|
||||
# Set the server for the AMQP service
|
||||
CONFIG_AMQP_BACKEND=rabbitmq
|
||||
|
||||
# The IP address of the server on which to install the AMQP service
|
||||
CONFIG_AMQP_HOST={{ controller_public_ip }}
|
||||
|
||||
# Enable SSL for the AMQP service
|
||||
CONFIG_AMQP_ENABLE_SSL=n
|
||||
|
||||
# Enable Authentication for the AMQP service
|
||||
CONFIG_AMQP_ENABLE_AUTH=y
|
||||
|
||||
# The password for the NSS certificate database of the AMQP service
|
||||
CONFIG_AMQP_NSS_CERTDB_PW={{ CONFIG_AMQP_NSS_CERTDB_PW }}
|
||||
|
||||
# The port in which the AMQP service listens to SSL connections
|
||||
CONFIG_AMQP_SSL_PORT=5671
|
||||
|
||||
# The filename of the certificate that the AMQP service is going to
|
||||
# use
|
||||
CONFIG_AMQP_SSL_CERT_FILE=/etc/pki/tls/certs/fedorainfracloud.org.pem
|
||||
|
||||
# The filename of the private key that the AMQP service is going to
|
||||
# use
|
||||
CONFIG_AMQP_SSL_KEY_FILE=/etc/pki/tls/private/fedorainfracloud.org.key
|
||||
|
||||
# Auto Generates self signed SSL certificate and key
|
||||
CONFIG_AMQP_SSL_SELF_SIGNED=n
|
||||
|
||||
# User for amqp authentication
|
||||
CONFIG_AMQP_AUTH_USER=amqp_user
|
||||
|
||||
# Password for user authentication
|
||||
CONFIG_AMQP_AUTH_PASSWORD={{ CONFIG_AMQP_AUTH_PASSWORD }}
|
||||
|
||||
# The password to use for the Keystone to access DB
|
||||
CONFIG_KEYSTONE_DB_PW={{ KEYSTONE_DBPASS }}
|
||||
|
||||
# The token to use for the Keystone service api
|
||||
CONFIG_KEYSTONE_ADMIN_TOKEN={{ ADMIN_TOKEN }}
|
||||
|
||||
# The password to use for the Keystone admin user
|
||||
CONFIG_KEYSTONE_ADMIN_PW={{ ADMIN_PASS }}
|
||||
|
||||
# The password to use for the Keystone demo user
|
||||
CONFIG_KEYSTONE_DEMO_PW={{ DEMO_PASS }}
|
||||
|
||||
# Kestone token format. Use either UUID or PKI
|
||||
CONFIG_KEYSTONE_TOKEN_FORMAT=PKI
|
||||
|
||||
# The password to use for the Glance to access DB
|
||||
CONFIG_GLANCE_DB_PW={{ GLANCE_DBPASS }}
|
||||
|
||||
# The password to use for the Glance to authenticate with Keystone
|
||||
CONFIG_GLANCE_KS_PW={{ GLANCE_PASS }}
|
||||
|
||||
# The password to use for the Cinder to access DB
|
||||
CONFIG_CINDER_DB_PW={{ CINDER_DBPASS }}
|
||||
|
||||
# The password to use for the Cinder to authenticate with Keystone
|
||||
CONFIG_CINDER_KS_PW={{ CINDER_PASS }}
|
||||
|
||||
# The Cinder backend to use, valid options are: lvm, gluster, nfs,
|
||||
# vmdk
|
||||
CONFIG_CINDER_BACKEND=lvm
|
||||
|
||||
# Create Cinder's volumes group. This should only be done for testing
|
||||
# on a proof-of-concept installation of Cinder. This will create a
|
||||
# file-backed volume group and is not suitable for production usage.
|
||||
CONFIG_CINDER_VOLUMES_CREATE=n
|
||||
|
||||
# Cinder's volumes group size. Note that actual volume size will be
|
||||
# extended with 3% more space for VG metadata.
|
||||
CONFIG_CINDER_VOLUMES_SIZE=5G
|
||||
|
||||
# A single or comma separated list of gluster volume shares to mount,
|
||||
# eg: ip-address:/vol-name, domain:/vol-name
|
||||
CONFIG_CINDER_GLUSTER_MOUNTS=
|
||||
|
||||
# A single or comma seprated list of NFS exports to mount, eg: ip-
|
||||
# address:/export-name
|
||||
CONFIG_CINDER_NFS_MOUNTS=
|
||||
|
||||
# The IP address of the VMware vCenter datastore
|
||||
CONFIG_VCENTER_HOST=
|
||||
|
||||
# The username to authenticate to VMware vCenter datastore
|
||||
CONFIG_VCENTER_USER=
|
||||
|
||||
# The password to authenticate to VMware vCenter datastore
|
||||
CONFIG_VCENTER_PASSWORD=
|
||||
|
||||
# A comma separated list of IP addresses on which to install the Nova
|
||||
# Compute services
|
||||
CONFIG_COMPUTE_HOSTS={{ controller_public_ip }}
|
||||
|
||||
# The IP address of the server on which to install the Nova Conductor
|
||||
# service
|
||||
CONFIG_NOVA_CONDUCTOR_HOST={{ controller_public_ip }}
|
||||
|
||||
# The password to use for the Nova to access DB
|
||||
CONFIG_NOVA_DB_PW={{ NOVA_DBPASS }}
|
||||
|
||||
# The password to use for the Nova to authenticate with Keystone
|
||||
CONFIG_NOVA_KS_PW={{ NOVA_PASS }}
|
||||
|
||||
# The overcommitment ratio for virtual to physical CPUs. Set to 1.0
|
||||
# to disable CPU overcommitment
|
||||
CONFIG_NOVA_SCHED_CPU_ALLOC_RATIO=16.0
|
||||
|
||||
# The overcommitment ratio for virtual to physical RAM. Set to 1.0 to
|
||||
# disable RAM overcommitment
|
||||
CONFIG_NOVA_SCHED_RAM_ALLOC_RATIO=1.5
|
||||
|
||||
# Private interface for Flat DHCP on the Nova compute servers
|
||||
CONFIG_NOVA_COMPUTE_PRIVIF=lo
|
||||
|
||||
# The list of IP addresses of the server on which to install the Nova
|
||||
# Nova network manager
|
||||
CONFIG_NOVA_NETWORK_MANAGER=nova.network.manager.FlatDHCPManager
|
||||
|
||||
# Public interface on the Nova network server
|
||||
CONFIG_NOVA_NETWORK_PUBIF=eth0
|
||||
|
||||
# Private interface for network manager on the Nova network server
|
||||
CONFIG_NOVA_NETWORK_PRIVIF=eth1
|
||||
|
||||
# IP Range for network manager
|
||||
CONFIG_NOVA_NETWORK_FIXEDRANGE={{ internal_interface_cidr }}
|
||||
|
||||
# IP Range for Floating IP's
|
||||
CONFIG_NOVA_NETWORK_FLOATRANGE={{ public_interface_cidr }}
|
||||
|
||||
# Name of the default floating pool to which the specified floating
|
||||
# ranges are added to
|
||||
CONFIG_NOVA_NETWORK_DEFAULTFLOATINGPOOL=external
|
||||
|
||||
# Automatically assign a floating IP to new instances
|
||||
CONFIG_NOVA_NETWORK_AUTOASSIGNFLOATINGIP=n
|
||||
|
||||
# First VLAN for private networks
|
||||
CONFIG_NOVA_NETWORK_VLAN_START=100
|
||||
|
||||
# Number of networks to support
|
||||
CONFIG_NOVA_NETWORK_NUMBER=1
|
||||
|
||||
# Number of addresses in each private subnet
|
||||
CONFIG_NOVA_NETWORK_SIZE=255
|
||||
|
||||
# The IP address of the VMware vCenter server
|
||||
CONFIG_VCENTER_HOST=
|
||||
|
||||
# The username to authenticate to VMware vCenter server
|
||||
CONFIG_VCENTER_USER=
|
||||
|
||||
# The password to authenticate to VMware vCenter server
|
||||
CONFIG_VCENTER_PASSWORD=
|
||||
|
||||
# The name of the vCenter cluster
|
||||
CONFIG_VCENTER_CLUSTER_NAME=
|
||||
|
||||
# The password to use for Neutron to authenticate with Keystone
|
||||
CONFIG_NEUTRON_KS_PW={{ NEUTRON_PASS }}
|
||||
|
||||
# The password to use for Neutron to access DB
|
||||
CONFIG_NEUTRON_DB_PW={{ NEUTRON_DBPASS }}
|
||||
|
||||
# A comma separated list of IP addresses on which to install Neutron
|
||||
CONFIG_NETWORK_HOSTS={{ controller_public_ip }}
|
||||
|
||||
# The name of the bridge that the Neutron L3 agent will use for
|
||||
# external traffic, or 'provider' if using provider networks
|
||||
CONFIG_NEUTRON_L3_EXT_BRIDGE=provider
|
||||
|
||||
|
||||
# The name of the L2 plugin to be used with Neutron
|
||||
CONFIG_NEUTRON_L2_PLUGIN=ml2
|
||||
|
||||
# A comma separated list of IP addresses on which to install Neutron
|
||||
# metadata agent
|
||||
CONFIG_NEUTRON_METADATA_PW={{ NEUTRON_PASS }}
|
||||
|
||||
# Set to 'y' if you would like Packstack to install Neutron LBaaS
|
||||
CONFIG_LBAAS_INSTALL=y
|
||||
|
||||
# Set to 'y' if you would like Packstack to install Neutron L3
|
||||
# Metering agent
|
||||
CONFIG_NEUTRON_METERING_AGENT_INSTALL=y
|
||||
|
||||
# Whether to configure neutron Firewall as a Service
|
||||
CONFIG_NEUTRON_FWAAS=y
|
||||
|
||||
# A comma separated list of network type driver entrypoints to be
|
||||
# loaded from the neutron.ml2.type_drivers namespace.
|
||||
CONFIG_NEUTRON_ML2_TYPE_DRIVERS=local,flat,gre
|
||||
|
||||
# A comma separated ordered list of network_types to allocate as
|
||||
# tenant networks. The value 'local' is only useful for single-box
|
||||
# testing but provides no connectivity between hosts.
|
||||
CONFIG_NEUTRON_ML2_TENANT_NETWORK_TYPES=gre
|
||||
|
||||
# A comma separated ordered list of networking mechanism driver
|
||||
# entrypoints to be loaded from the neutron.ml2.mechanism_drivers
|
||||
# namespace.
|
||||
CONFIG_NEUTRON_ML2_MECHANISM_DRIVERS=openvswitch
|
||||
|
||||
# A comma separated list of physical_network names with which flat
|
||||
# networks can be created. Use * to allow flat networks with arbitrary
|
||||
# physical_network names.
|
||||
CONFIG_NEUTRON_ML2_FLAT_NETWORKS=*
|
||||
|
||||
# A comma separated list of <physical_network>:<vlan_min>:<vlan_max>
|
||||
# or <physical_network> specifying physical_network names usable for
|
||||
# VLAN provider and tenant networks, as well as ranges of VLAN tags on
|
||||
# each available for allocation to tenant networks.
|
||||
CONFIG_NEUTRON_ML2_VLAN_RANGES=
|
||||
|
||||
# A comma separated list of <tun_min>:<tun_max> tuples enumerating
|
||||
# ranges of GRE tunnel IDs that are available for tenant network
|
||||
# allocation. Should be an array with tun_max +1 - tun_min > 1000000
|
||||
CONFIG_NEUTRON_ML2_TUNNEL_ID_RANGES=1:1000
|
||||
|
||||
# Multicast group for VXLAN. If unset, disables VXLAN enable sending
|
||||
# allocate broadcast traffic to this multicast group. When left
|
||||
# unconfigured, will disable multicast VXLAN mode. Should be an
|
||||
# Multicast IP (v4 or v6) address.
|
||||
CONFIG_NEUTRON_ML2_VXLAN_GROUP=
|
||||
|
||||
# A comma separated list of <vni_min>:<vni_max> tuples enumerating
|
||||
# ranges of VXLAN VNI IDs that are available for tenant network
|
||||
# allocation. Min value is 0 and Max value is 16777215.
|
||||
CONFIG_NEUTRON_ML2_VNI_RANGES=
|
||||
|
||||
# The name of the L2 agent to be used with Neutron
|
||||
CONFIG_NEUTRON_L2_AGENT=openvswitch
|
||||
|
||||
# The type of network to allocate for tenant networks (eg. vlan,
|
||||
# local)
|
||||
CONFIG_NEUTRON_LB_TENANT_NETWORK_TYPE=gre
|
||||
|
||||
# A comma separated list of VLAN ranges for the Neutron linuxbridge
|
||||
# plugin (eg. physnet1:1:4094,physnet2,physnet3:3000:3999)
|
||||
CONFIG_NEUTRON_LB_VLAN_RANGES=
|
||||
|
||||
# A comma separated list of interface mappings for the Neutron
|
||||
# linuxbridge plugin (eg. physnet1:br-eth1,physnet2:br-eth2,physnet3
|
||||
# :br-eth3)
|
||||
CONFIG_NEUTRON_LB_INTERFACE_MAPPINGS=
|
||||
|
||||
# Type of network to allocate for tenant networks (eg. vlan, local,
|
||||
# gre, vxlan)
|
||||
CONFIG_NEUTRON_OVS_TENANT_NETWORK_TYPE=gre
|
||||
|
||||
# A comma separated list of VLAN ranges for the Neutron openvswitch
|
||||
# plugin (eg. physnet1:1:4094,physnet2,physnet3:3000:3999)
|
||||
CONFIG_NEUTRON_OVS_VLAN_RANGES=floatnet
|
||||
|
||||
# A comma separated list of bridge mappings for the Neutron
|
||||
# openvswitch plugin (eg. physnet1:br-eth1,physnet2:br-eth2,physnet3
|
||||
# :br-eth3)
|
||||
CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=floatnet:br-ex
|
||||
|
||||
# A comma separated list of colon-separated OVS bridge:interface
|
||||
# pairs. The interface will be added to the associated bridge.
|
||||
CONFIG_NEUTRON_OVS_BRIDGE_IFACES=
|
||||
|
||||
# A comma separated list of tunnel ranges for the Neutron openvswitch
|
||||
# plugin (eg. 1:1000)
|
||||
CONFIG_NEUTRON_OVS_TUNNEL_RANGES=1:1000
|
||||
|
||||
# The interface for the OVS tunnel. Packstack will override the IP
|
||||
# address used for tunnels on this hypervisor to the IP found on the
|
||||
# specified interface. (eg. eth1)
|
||||
CONFIG_NEUTRON_OVS_TUNNEL_IF=eth1
|
||||
|
||||
# VXLAN UDP port
|
||||
CONFIG_NEUTRON_OVS_VXLAN_UDP_PORT=4789
|
||||
|
||||
# To set up Horizon communication over https set this to "y"
|
||||
CONFIG_HORIZON_SSL=y
|
||||
|
||||
# PEM encoded certificate to be used for ssl on the https server,
|
||||
# leave blank if one should be generated, this certificate should not
|
||||
# require a passphrase
|
||||
CONFIG_SSL_CERT=/etc/pki/tls/certs/fedorainfracloud.org.pem
|
||||
|
||||
# PEM encoded CA certificates from which the certificate chain of the
|
||||
# # server certificate can be assembled.
|
||||
CONFIG_SSL_CACHAIN=/etc/pki/tls/certs/fedorainfracloud.org.digicert.pem
|
||||
|
||||
# Keyfile corresponding to the certificate if one was entered
|
||||
CONFIG_SSL_KEY=/etc/pki/tls/private/fedorainfracloud.key
|
||||
|
||||
# The password to use for the Swift to authenticate with Keystone
|
||||
CONFIG_SWIFT_KS_PW={{ SWIFT_PASS }}
|
||||
|
||||
# A comma separated list of IP addresses on which to install the
|
||||
# Swift Storage services, each entry should take the format
|
||||
# <ipaddress>[/dev], for example 127.0.0.1/vdb will install /dev/vdb
|
||||
# on 127.0.0.1 as a swift storage device(packstack does not create the
|
||||
# filesystem, you must do this first), if /dev is omitted Packstack
|
||||
# will create a loopback device for a test setup
|
||||
CONFIG_SWIFT_STORAGES={{ swift_storages }}
|
||||
|
||||
# Number of swift storage zones, this number MUST be no bigger than
|
||||
# the number of storage devices configured
|
||||
CONFIG_SWIFT_STORAGE_ZONES=1
|
||||
|
||||
# Number of swift storage replicas, this number MUST be no bigger
|
||||
# than the number of storage zones configured
|
||||
CONFIG_SWIFT_STORAGE_REPLICAS=1
|
||||
|
||||
# FileSystem type for storage nodes
|
||||
CONFIG_SWIFT_STORAGE_FSTYPE=ext4
|
||||
|
||||
# Shared secret for Swift
|
||||
CONFIG_SWIFT_HASH={{ SWIFT_HASH }}
|
||||
|
||||
# Size of the swift loopback file storage device
|
||||
CONFIG_SWIFT_STORAGE_SIZE=2G
|
||||
|
||||
# Whether to provision for demo usage and testing. Note that
|
||||
# provisioning is only supported for all-in-one installations.
|
||||
CONFIG_PROVISION_DEMO=n
|
||||
|
||||
# Whether to configure tempest for testing. Note that provisioning is
|
||||
# only supported for all-in-one installations.
|
||||
CONFIG_PROVISION_TEMPEST=n
|
||||
|
||||
# The CIDR network address for the floating IP subnet
|
||||
CONFIG_PROVISION_DEMO_FLOATRANGE=
|
||||
|
||||
# The uri of the tempest git repository to use
|
||||
CONFIG_PROVISION_TEMPEST_REPO_URI=https://github.com/openstack/tempest.git
|
||||
|
||||
# The revision of the tempest git repository to use
|
||||
CONFIG_PROVISION_TEMPEST_REPO_REVISION=master
|
||||
|
||||
# Whether to configure the ovs external bridge in an all-in-one
|
||||
# deployment
|
||||
CONFIG_PROVISION_ALL_IN_ONE_OVS_BRIDGE=n
|
||||
|
||||
# The password used by Heat user to authenticate against MySQL
|
||||
CONFIG_HEAT_DB_PW={{ HEAT_DBPASS }}
|
||||
|
||||
# The encryption key to use for authentication info in database
|
||||
CONFIG_HEAT_AUTH_ENC_KEY={{ HEAT_AUTH_ENC_KEY }}
|
||||
|
||||
# The password to use for the Heat to authenticate with Keystone
|
||||
CONFIG_HEAT_KS_PW={{ HEAT_PASS }}
|
||||
|
||||
# Set to 'y' if you would like Packstack to install Heat CloudWatch
|
||||
# API
|
||||
CONFIG_HEAT_CLOUDWATCH_INSTALL=n
|
||||
|
||||
# Set to 'y' if you would like Packstack to install Heat
|
||||
# CloudFormation API
|
||||
CONFIG_HEAT_CFN_INSTALL=n
|
||||
|
||||
# The IP address of the server on which to install Heat CloudWatch
|
||||
# API service
|
||||
CONFIG_HEAT_CLOUDWATCH_HOST={{ controller_public_ip }}
|
||||
|
||||
# The IP address of the server on which to install Heat
|
||||
# CloudFormation API service
|
||||
CONFIG_HEAT_CFN_HOST={{ controller_public_ip }}
|
||||
|
||||
# The IP address of the management node
|
||||
CONFIG_CONTROLLER_HOST={{ controller_public_ip }}
|
||||
|
||||
# Secret key for signing metering messages.
|
||||
CONFIG_CEILOMETER_SECRET={{ CEILOMETER_SECRET }}
|
||||
|
||||
# The password to use for Ceilometer to authenticate with Keystone
|
||||
CONFIG_CEILOMETER_KS_PW={{ CEILOMETER_PASS }}
|
||||
|
||||
# The IP address of the server on which to install mongodb
|
||||
CONFIG_MONGODB_HOST=127.0.0.1
|
||||
|
||||
# The password of the nagiosadmin user on the Nagios server
|
||||
CONFIG_NAGIOS_PW=
|
||||
|
||||
# To subscribe each server to EPEL enter "y"
|
||||
CONFIG_USE_EPEL=y
|
||||
|
||||
# A comma separated list of URLs to any additional yum repositories
|
||||
# to install
|
||||
CONFIG_REPO=
|
||||
|
||||
# To subscribe each server with Red Hat subscription manager, include
|
||||
# this with CONFIG_RH_PW
|
||||
CONFIG_RH_USER=
|
||||
|
||||
# To subscribe each server with Red Hat subscription manager, include
|
||||
# this with CONFIG_RH_USER
|
||||
CONFIG_RH_PW=
|
||||
|
||||
# To subscribe each server to Red Hat Enterprise Linux 6 Server Beta
|
||||
# channel (only needed for Preview versions of RHOS) enter "y"
|
||||
CONFIG_RH_BETA_REPO=n
|
||||
|
||||
# To subscribe each server with RHN Satellite,fill Satellite's URL
|
||||
# here. Note that either satellite's username/password or activation
|
||||
# key has to be provided
|
||||
CONFIG_SATELLITE_URL=
|
||||
|
||||
# Username to access RHN Satellite
|
||||
CONFIG_SATELLITE_USER=
|
||||
|
||||
# Password to access RHN Satellite
|
||||
CONFIG_SATELLITE_PW=
|
||||
|
||||
# Activation key for subscription to RHN Satellite
|
||||
CONFIG_SATELLITE_AKEY=
|
||||
|
||||
# Specify a path or URL to a SSL CA certificate to use
|
||||
CONFIG_SATELLITE_CACERT=
|
||||
|
||||
# If required specify the profile name that should be used as an
|
||||
# identifier for the system in RHN Satellite
|
||||
CONFIG_SATELLITE_PROFILE=
|
||||
|
||||
# Comma separated list of flags passed to rhnreg_ks. Valid flags are:
|
||||
# novirtinfo, norhnsd, nopackages
|
||||
CONFIG_SATELLITE_FLAGS=
|
||||
|
||||
# Specify a HTTP proxy to use with RHN Satellite
|
||||
CONFIG_SATELLITE_PROXY=
|
||||
|
||||
# Specify a username to use with an authenticated HTTP proxy
|
||||
CONFIG_SATELLITE_PROXY_USER=
|
||||
|
||||
# Specify a password to use with an authenticated HTTP proxy.
|
||||
CONFIG_SATELLITE_PROXY_PW=
|
||||
@@ -1,32 +0,0 @@
|
||||
# Warning! Dangerous step! Destroys VMs
|
||||
# if you do know what you are doing feel free to remove the line below to proceed
|
||||
exit 1
|
||||
# also if you really insist to remove VM, uncomment that vgremove near bottom
|
||||
|
||||
for x in $(virsh list --all | grep instance- | awk '{print $2}') ; do
|
||||
virsh destroy $x ;
|
||||
virsh undefine $x ;
|
||||
done ;
|
||||
|
||||
# Warning! Dangerous step! Removes lots of packages, including many
|
||||
# which may be unrelated to RDO.
|
||||
yum remove -y nrpe "*openstack*" \
|
||||
"*nova*" "*keystone*" "*glance*" "*cinder*" "*swift*" \
|
||||
mysql mysql-server httpd "*memcache*" ;
|
||||
|
||||
ps -ef | grep -i repli | grep swift | awk '{print $2}' | xargs kill ;
|
||||
|
||||
# Warning! Dangerous step! Deletes local application data
|
||||
rm -rf /etc/nagios /etc/yum.repos.d/packstack_* /root/.my.cnf \
|
||||
/var/lib/mysql/* /var/lib/glance /var/lib/nova /etc/nova /etc/swift \
|
||||
/srv/node/device*/* /var/lib/cinder/ /etc/rsync.d/frag* \
|
||||
/var/cache/swift /var/log/keystone ;
|
||||
|
||||
umount /srv/node/device* ;
|
||||
killall -9 dnsmasq tgtd httpd ;
|
||||
#vgremove -f cinder-volumes ;
|
||||
losetup -a | sed -e 's/:.*//g' | xargs losetup -d ;
|
||||
find /etc/pki/tls -name "ssl_ps*" | xargs rm -rf ;
|
||||
for x in $(df | grep "/lib/" | sed -e 's/.* //g') ; do
|
||||
umount $x ;
|
||||
done
|
||||
39
files/gnome/backup.sh
Normal file
39
files/gnome/backup.sh
Normal file
@@ -0,0 +1,39 @@
|
||||
#!/bin/bash
|
||||
# backup.sh will run FROM backup03 TO the various GNOME boxes on the set. (there's two set
|
||||
# of machines, one being the ones with a public IP and the others being the IP-less ones that
|
||||
# will forward their agent through bastion.gnome.org)
|
||||
|
||||
export PATH=$PATH:/bin:/usr/bin:/usr/local/bin
|
||||
|
||||
MACHINES='signal.gnome.org
|
||||
webapps2.gnome.org
|
||||
clutter.gnome.org
|
||||
blogs.gnome.org
|
||||
chooser.gnome.org
|
||||
git.gnome.org
|
||||
webapps.gnome.org
|
||||
socket.gnome.org
|
||||
bugzilla-web.gnome.org
|
||||
progress.gnome.org
|
||||
clipboard.gnome.org
|
||||
cloud-ssh.gnome.org
|
||||
bastion.gnome.org
|
||||
spinner.gnome.org
|
||||
master.gnome.org
|
||||
combobox.gnome.org
|
||||
restaurant.gnome.org
|
||||
expander.gnome.org
|
||||
live.gnome.org
|
||||
extensions.gnome.org
|
||||
view.gnome.org
|
||||
puppet.gnome.org
|
||||
accelerator.gnome.org
|
||||
range.gnome.org'
|
||||
|
||||
BACKUP_DIR='/fedora_backups/gnome/'
|
||||
LOGS_DIR='/fedora_backups/gnome/logs'
|
||||
|
||||
for MACHINE in $MACHINES; do
|
||||
rsync -avz -e 'ssh -F /usr/local/etc/gnome_ssh_config' --bwlimit=2000 $MACHINE:/etc/rsyncd/backup.exclude $BACKUP_DIR/excludes/$MACHINE.exclude
|
||||
rdiff-backup --remote-schema 'ssh -F /usr/local/etc/gnome_ssh_config %s rdiff-backup --server' --print-statistics --exclude-device-files --exclude /selinux --exclude /sys --exclude /proc --exclude-globbing-filelist $BACKUP_DIR/excludes/$MACHINE.exclude $MACHINE::/ $BACKUP_DIR/$MACHINE/ | mail -s "Daily backup: $MACHINE" backups@gnome.org
|
||||
done
|
||||
8
files/gnome/ssh_config
Normal file
8
files/gnome/ssh_config
Normal file
@@ -0,0 +1,8 @@
|
||||
Host live.gnome.org extensions.gnome.org puppet.gnome.org view.gnome.org drawable.gnome.org
|
||||
User root
|
||||
IdentityFile /usr/local/etc/gnome_backup_id.rsa
|
||||
ProxyCommand ssh -W %h:%p bastion.gnome.org -F /usr/local/etc/gnome_ssh_config
|
||||
|
||||
Host *.gnome.org
|
||||
User root
|
||||
IdentityFile /usr/local/etc/gnome_backup_id.rsa
|
||||
13
files/hosts/arm.fedoraproject.org-hosts
Normal file
13
files/hosts/arm.fedoraproject.org-hosts
Normal file
@@ -0,0 +1,13 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
10.5.125.63 koji.fedoraproject.org
|
||||
10.5.125.36 kojipkgs.fedoraproject.org
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
10.5.124.138 arm.koji.fedoraproject.org
|
||||
10.5.124.138 armpkgs.fedoraproject.org
|
||||
10.5.125.44 pkgs.fedoraproject.org pkgs
|
||||
#
|
||||
# This is proxy01.phx2.fedoraproject.org
|
||||
#
|
||||
10.5.126.52 mirrors.fedoraproject.org
|
||||
10.5.126.52 admin.fedoraproject.org
|
||||
7
files/hosts/ask01.phx2.fedoraproject.org-hosts
Normal file
7
files/hosts/ask01.phx2.fedoraproject.org-hosts
Normal file
@@ -0,0 +1,7 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
|
||||
10.5.126.52 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
|
||||
10.5.126.71 db-ask
|
||||
11
files/hosts/ask01.stg.phx2.fedoraproject.org-hosts
Normal file
11
files/hosts/ask01.stg.phx2.fedoraproject.org-hosts
Normal file
@@ -0,0 +1,11 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
|
||||
10.5.126.89 admin.fedoraproject.org
|
||||
10.5.126.88 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.86 fas01.phx2.fedoraproject.org fas1 fas2 fas01 fas02 fas03 fas-all
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
|
||||
10.5.126.81 memcached03 memcached03.stg app01 app01.stg
|
||||
|
||||
10.5.126.85 db-ask
|
||||
7
files/hosts/ask02.phx2.fedoraproject.org-hosts
Normal file
7
files/hosts/ask02.phx2.fedoraproject.org-hosts
Normal file
@@ -0,0 +1,7 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
|
||||
10.5.126.52 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
|
||||
10.5.126.71 db-ask
|
||||
@@ -0,0 +1,6 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
10.5.126.52 admin.fedoraproject.org
|
||||
10.5.126.109 db-datanommer db-datanommer
|
||||
10.5.126.71 db-tahrir db-tahrir
|
||||
@@ -0,0 +1,10 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
|
||||
10.5.126.89 admin.fedoraproject.org
|
||||
10.5.126.88 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.86 fas01.phx2.fedoraproject.org fas1 fas2 fas01 fas02 fas03 fas-all
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
|
||||
10.5.126.85 db-datanommer db-datanommer
|
||||
10.5.126.85 db-tahrir db-tahrir
|
||||
5
files/hosts/badges-web01.phx2.fedoraproject.org-hosts
Normal file
5
files/hosts/badges-web01.phx2.fedoraproject.org-hosts
Normal file
@@ -0,0 +1,5 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
10.5.126.52 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
10.5.126.71 db-tahrir db-tahrir
|
||||
11
files/hosts/badges-web01.stg.phx2.fedoraproject.org-hosts
Normal file
11
files/hosts/badges-web01.stg.phx2.fedoraproject.org-hosts
Normal file
@@ -0,0 +1,11 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
|
||||
10.5.126.89 admin.fedoraproject.org
|
||||
10.5.126.88 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.86 fas01.phx2.fedoraproject.org fas1 fas2 fas01 fas02 fas03 fas-all
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
|
||||
10.5.126.81 memcached03 memcached03.stg app01 app01.stg
|
||||
|
||||
10.5.126.85 db-tahrir db-tahrir
|
||||
5
files/hosts/badges-web02.phx2.fedoraproject.org-hosts
Normal file
5
files/hosts/badges-web02.phx2.fedoraproject.org-hosts
Normal file
@@ -0,0 +1,5 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
10.5.126.52 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
10.5.126.71 db-tahrir db-tahrir
|
||||
9
files/hosts/fedoauth01.stg.phx2.fedoraproject.org-hosts
Normal file
9
files/hosts/fedoauth01.stg.phx2.fedoraproject.org-hosts
Normal file
@@ -0,0 +1,9 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
|
||||
10.5.126.89 admin.fedoraproject.org
|
||||
10.5.126.88 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.86 fas01.phx2.fedoraproject.org fas1 fas2 fas01 fas02 fas03 fas-all
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
|
||||
10.5.126.81 memcached03 memcached03.stg app01 app01.stg
|
||||
11
files/hosts/fedocal01.phx2.fedoraproject.org-hosts
Normal file
11
files/hosts/fedocal01.phx2.fedoraproject.org-hosts
Normal file
@@ -0,0 +1,11 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
|
||||
10.5.126.89 admin.fedoraproject.org
|
||||
10.5.126.88 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.86 fas01.phx2.fedoraproject.org fas1 fas2 fas01 fas02 fas03 fas-all
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
|
||||
10.5.126.81 memcached03 memcached03.stg app01 app01.stg
|
||||
|
||||
10.5.126.71 db-fedocal db-fedocal
|
||||
11
files/hosts/fedocal01.stg.phx2.fedoraproject.org-hosts
Normal file
11
files/hosts/fedocal01.stg.phx2.fedoraproject.org-hosts
Normal file
@@ -0,0 +1,11 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
|
||||
10.5.126.89 admin.fedoraproject.org
|
||||
10.5.126.88 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.86 fas01.phx2.fedoraproject.org fas1 fas2 fas01 fas02 fas03 fas-all
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
|
||||
10.5.126.81 memcached03 memcached03.stg app01 app01.stg
|
||||
|
||||
10.5.126.85 db-fedocal db-fedocal
|
||||
11
files/hosts/fedocal02.phx2.fedoraproject.org-hosts
Normal file
11
files/hosts/fedocal02.phx2.fedoraproject.org-hosts
Normal file
@@ -0,0 +1,11 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
|
||||
10.5.126.89 admin.fedoraproject.org
|
||||
10.5.126.88 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.86 fas01.phx2.fedoraproject.org fas1 fas2 fas01 fas02 fas03 fas-all
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
|
||||
10.5.126.81 memcached03 memcached03.stg app01 app01.stg
|
||||
|
||||
10.5.126.71 db-fedocal db-fedocal
|
||||
8
files/hosts/kojibuilder-hosts
Normal file
8
files/hosts/kojibuilder-hosts
Normal file
@@ -0,0 +1,8 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
10.5.125.63 koji.fedoraproject.org
|
||||
10.5.125.36 kojipkgs.fedoraproject.org
|
||||
10.5.124.138 arm.koji.fedoraproject.org armpkgs.fedoraproject.org
|
||||
10.5.125.44 pkgs.fedoraproject.org pkgs
|
||||
10.5.126.52 mirrors.fedoraproject.org admin.fedoraproject.org
|
||||
@@ -0,0 +1,6 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
10.5.126.52 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
10.5.126.71 db-notifs db-notifs
|
||||
10.5.126.109 db-datanommer db-datanommer
|
||||
@@ -0,0 +1,12 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
|
||||
10.5.126.89 admin.fedoraproject.org
|
||||
10.5.126.88 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.86 fas01.phx2.fedoraproject.org fas1 fas2 fas01 fas02 fas03 fas-all
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
|
||||
10.5.126.81 memcached03 memcached03.stg app01 app01.stg
|
||||
|
||||
10.5.126.85 db-notifs db-notifs
|
||||
10.5.126.85 db-datanommer db-datanommer
|
||||
6
files/hosts/notifs-web01.phx2.fedoraproject.org-hosts
Normal file
6
files/hosts/notifs-web01.phx2.fedoraproject.org-hosts
Normal file
@@ -0,0 +1,6 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
10.5.126.52 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
10.5.126.71 db-notifs db-notifs
|
||||
10.5.126.109 db-datanommer db-datanommer
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user