loopabull roles added and loopabull playbook updated

Signed-off-by: Adam Miller <admiller@redhat.com>
This commit is contained in:
Adam Miller 2017-02-15 22:00:13 +00:00
parent f6e5e15889
commit 2d08776708
8 changed files with 394 additions and 0 deletions

View file

@ -29,3 +29,26 @@
handlers:
- include: "{{ handlers }}/restart_services.yml"
- name: Deploy and configure loopabull
hosts: loopabull-stg
user: root
gather_facts: True
vars_files:
- /srv/web/infra/ansible/vars/global.yml
- "/srv/private/ansible/vars.yml"
- /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml
roles:
- {
role: loopabull,
plugin: fedmsg,
routing_keys: [
"org.fedoraproject.prod.buildsys.build.state.change"
],
playbooks_dir: /usr/local/loopabull-playbooks/,
ansible_cfg_path: /etc/ansible/ansible.cfg,
playbook_cmd: /usr/bin/ansible-playbook
}

39
roles/loopabull/README.md Normal file
View file

@ -0,0 +1,39 @@
Loopabull
=========
Fedora's deployment of [loopabull](https://github.com/maxamillion/loopabull)
Role Variables
--------------
See defaults/main.yml for full docs on role variables
Example Playbook
----------------
Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too:
- hosts: servers
roles:
- {
role: loopabull,
plugin: fedmsg,
routing_keys: [
"org.fedoraproject.prod.buildsys.build.state.change"
],
playbooks_dir: /usr/local/loopabull-playbooks/,
ansible_cfg_path: /etc/ansible/ansible.cfg,
playbook_cmd: /usr/bin/ansible-playbook
}
License
-------
GPLv3+
Author Information
------------------
Adam Miller (maxamillion@fedoraproject.org)

View file

@ -0,0 +1,39 @@
---
# defaults file for loopabull
#
# playbooks git repo
#
# URL to the git repo to clone that contains loopabull playbooks
playbooks_repo: "https://pagure.io/releng-automation.git"
# plugin
#
# This is the selected plugin that will interface with your prefered origin of
# events (message bus or otherwise).
plugin: fedmsg
# routing_keys
#
# This is a list of routing keys that will be yielded by your selected plugin
# that should be acted upon (i.e. - these keys should trigger an ansible
# playbook by the same name).
routing_keys:
- org.fedoraproject.prod.buildsys.build.state.change
# playbooks_dir
#
# The full path location of the directory containing your playbooks that
# coorelate to the routing_keys
playbooks_dir: /usr/share/doc/loopabull/examples/playbooks/
# ansible_cfg_path
#
# Full path location of the ansible configuration to use
ansible_cfg_path: /etc/ansible/ansible.cfg
# playbook_cmd
#
# Command to use in place of ansible-playbook (for those that want to use
# Ansible Tower commands or custom wrappers of their own)
playbook_cmd: /usr/bin/rbac-playbook

View file

@ -0,0 +1,2 @@
---
# handlers file for loopabull

View file

@ -0,0 +1,222 @@
galaxy_info:
author: your name
description: your description
company: your company (optional)
# If the issue tracker for your role is not on github, uncomment the
# next line and provide a value
# issue_tracker_url: http://example.com/issue/tracker
# Some suggested licenses:
# - BSD (default)
# - MIT
# - GPLv2
# - GPLv3
# - Apache
# - CC-BY
license: license (GPLv2, CC-BY, etc)
min_ansible_version: 1.2
# Optionally specify the branch Galaxy will use when accessing the GitHub
# repo for this role. During role install, if no tags are available,
# Galaxy will use this branch. During import Galaxy will access files on
# this branch. If travis integration is cofigured, only notification for this
# branch will be accepted. Otherwise, in all cases, the repo's default branch
# (usually master) will be used.
#github_branch:
#
# Below are all platforms currently available. Just uncomment
# the ones that apply to your role. If you don't see your
# platform on this list, let us know and we'll get it added!
#
#platforms:
#- name: OpenBSD
# versions:
# - all
# - 5.6
# - 5.7
# - 5.8
# - 5.9
# - 6.0
#- name: Fedora
# versions:
# - all
# - 16
# - 17
# - 18
# - 19
# - 20
# - 21
# - 22
# - 23
# - 24
# - 25
#- name: DellOS
# versions:
# - all
# - 10
# - 6
# - 9
#- name: MacOSX
# versions:
# - all
# - 10.10
# - 10.11
# - 10.12
# - 10.7
# - 10.8
# - 10.9
#- name: Synology
# versions:
# - all
# - any
#- name: Junos
# versions:
# - all
# - any
#- name: GenericBSD
# versions:
# - all
# - any
#- name: Void Linux
# versions:
# - all
# - any
#- name: GenericLinux
# versions:
# - all
# - any
#- name: NXOS
# versions:
# - all
# - any
#- name: IOS
# versions:
# - all
# - any
#- name: Amazon
# versions:
# - all
# - 2013.03
# - 2013.09
# - 2016.03
# - 2016.09
#- name: ArchLinux
# versions:
# - all
# - any
#- name: FreeBSD
# versions:
# - all
# - 10.0
# - 10.1
# - 10.2
# - 10.3
# - 11.0
# - 8.0
# - 8.1
# - 8.2
# - 8.3
# - 8.4
# - 9.0
# - 9.1
# - 9.1
# - 9.2
# - 9.3
#- name: Ubuntu
# versions:
# - all
# - lucid
# - maverick
# - natty
# - oneiric
# - precise
# - quantal
# - raring
# - saucy
# - trusty
# - utopic
# - vivid
# - wily
# - xenial
# - yakkety
#- name: Debian
# versions:
# - all
# - etch
# - jessie
# - lenny
# - sid
# - squeeze
# - stretch
# - wheezy
#- name: Alpine
# versions:
# - all
# - any
#- name: EL
# versions:
# - all
# - 5
# - 6
# - 7
#- name: Windows
# versions:
# - all
# - 2012R2
#- name: SmartOS
# versions:
# - all
# - any
#- name: opensuse
# versions:
# - all
# - 12.1
# - 12.2
# - 12.3
# - 13.1
# - 13.2
#- name: SLES
# versions:
# - all
# - 10SP3
# - 10SP4
# - 11
# - 11SP1
# - 11SP2
# - 11SP3
# - 11SP4
# - 12
# - 12SP1
#- name: GenericUNIX
# versions:
# - all
# - any
#- name: Solaris
# versions:
# - all
# - 10
# - 11.0
# - 11.1
# - 11.2
# - 11.3
#- name: eos
# versions:
# - all
# - Any
galaxy_tags: []
# List tags for your role here, one per line. A tag is
# a keyword that describes and categorizes the role.
# Users find roles by searching for tags. Be sure to
# remove the '[]' above if you add tags to this list.
#
# NOTE: A tag is limited to a single word comprised of
# alphanumeric characters. Maximum 20 tags per role.
dependencies: []
# List your role dependencies here, one per line.
# Be sure to remove the '[]' above if you add dependencies
# to this list.

View file

@ -0,0 +1,27 @@
---
# tasks file for loopabull
- name: Install required packages
package: name="{{ item }}" state=installed
with_items:
- git
- name: install loopabull
dnf: name=loopabull state=latest
- name: configure loopabull
template:
src: loopabull.yml.j2
dest: {{ansible_cfg_path}}
- name: clone the playbooks repo into playbooks dir
git:
repo: "https://pagure.io/releng-automation.git"
dest: {{playbooks_dir}}
- name: start and enable loopabull
service:
name: loopabull
state: started
enabled: yes

View file

@ -0,0 +1,40 @@
# Loopabull (https://github.com/maxamillion/loopabull) config file
#
# There are three main definitions: ansible, routing_keys, plugin. These will be
# explained in comments above each section below.
# plugin
#
# This is the selected plugin that will interface with your prefered origin of
# events (message bus or otherwise).
plugin: {{plugin}}
# routing_keys
#
# This is a list of routing keys that will be yielded by your selected plugin
# that should be acted upon (i.e. - these keys should trigger an ansible
# playbook by the same name).
routing_keys:
{% for rkey in routing_keys %}
- {{ rkey }}
{% endfor %}
# ansible
#
# This section will tell Loopabull about information to pass to the
# ansible-playbook command.
#
# playbooks_dir
# The full path location of the directory containing your playbooks that
# coorelate to the routing_keys
#
# cfg_file_path
# Full path location of the ansible configuration to use
#
# playbook_cmd
# Command to use in place of ansible-playbook (for those that want to use
# Ansible Tower commands or custom wrappers of their own)
ansible:
playbooks_dir: {{ playbooks_dir }}
cfg_file_path: {{ cfg_file_path }}
playbook_cmd: {{ playbook_cmd }}

View file

@ -0,0 +1,2 @@
---
# vars file for loopabull